@@ -510,6 +510,9 @@ func generateDeferredConstraintsSQL(deferred []*deferredConstraint, targetSchema
510510 for _ , col := range columns {
511511 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
512512 }
513+ if constraint .IsTemporal && len (columnNames ) > 0 {
514+ columnNames [len (columnNames )- 1 ] = "PERIOD " + columnNames [len (columnNames )- 1 ]
515+ }
513516
514517 tableName := getTableNameWithSchema (item .table .Schema , item .table .Name , targetSchema )
515518 sql := fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s FOREIGN KEY (%s) %s;" ,
@@ -816,6 +819,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
816819 for _ , col := range columns {
817820 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
818821 }
822+ if constraint .IsTemporal && len (columnNames ) > 0 {
823+ columnNames [len (columnNames )- 1 ] = columnNames [len (columnNames )- 1 ] + " WITHOUT OVERLAPS"
824+ }
819825 tableName := getTableNameWithSchema (td .Table .Schema , td .Table .Name , targetSchema )
820826 sql := fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s UNIQUE (%s);" ,
821827 tableName , ir .QuoteIdentifier (constraint .Name ), strings .Join (columnNames , ", " ))
@@ -852,6 +858,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
852858 for _ , col := range columns {
853859 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
854860 }
861+ if constraint .IsTemporal && len (columnNames ) > 0 {
862+ columnNames [len (columnNames )- 1 ] = "PERIOD " + columnNames [len (columnNames )- 1 ]
863+ }
855864
856865 tableName := getTableNameWithSchema (td .Table .Schema , td .Table .Name , targetSchema )
857866 canonicalSQL := fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s FOREIGN KEY (%s) %s;" ,
@@ -875,6 +884,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
875884 for _ , col := range columns {
876885 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
877886 }
887+ if constraint .IsTemporal && len (columnNames ) > 0 {
888+ columnNames [len (columnNames )- 1 ] = columnNames [len (columnNames )- 1 ] + " WITHOUT OVERLAPS"
889+ }
878890 tableName := getTableNameWithSchema (td .Table .Schema , td .Table .Name , targetSchema )
879891 sql := fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s PRIMARY KEY (%s);" ,
880892 tableName , ir .QuoteIdentifier (constraint .Name ), strings .Join (columnNames , ", " ))
@@ -930,6 +942,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
930942 for _ , col := range columns {
931943 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
932944 }
945+ if constraint .IsTemporal && len (columnNames ) > 0 {
946+ columnNames [len (columnNames )- 1 ] = columnNames [len (columnNames )- 1 ] + " WITHOUT OVERLAPS"
947+ }
933948 addSQL = fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s UNIQUE (%s);" ,
934949 tableName , ir .QuoteIdentifier (constraint .Name ), strings .Join (columnNames , ", " ))
935950
@@ -945,6 +960,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
945960 for _ , col := range columns {
946961 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
947962 }
963+ if constraint .IsTemporal && len (columnNames ) > 0 {
964+ columnNames [len (columnNames )- 1 ] = "PERIOD " + columnNames [len (columnNames )- 1 ]
965+ }
948966
949967 addSQL = fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s FOREIGN KEY (%s) %s;" ,
950968 tableName , ir .QuoteIdentifier (constraint .Name ),
@@ -958,6 +976,9 @@ func (td *tableDiff) generateAlterTableStatements(targetSchema string, collector
958976 for _ , col := range columns {
959977 columnNames = append (columnNames , ir .QuoteIdentifier (col .Name ))
960978 }
979+ if constraint .IsTemporal && len (columnNames ) > 0 {
980+ columnNames [len (columnNames )- 1 ] = columnNames [len (columnNames )- 1 ] + " WITHOUT OVERLAPS"
981+ }
961982 addSQL = fmt .Sprintf ("ALTER TABLE %s\n ADD CONSTRAINT %s PRIMARY KEY (%s);" ,
962983 tableName , ir .QuoteIdentifier (constraint .Name ), strings .Join (columnNames , ", " ))
963984
@@ -1462,6 +1483,9 @@ func generateForeignKeyClause(constraint *ir.Constraint, targetSchema string, in
14621483 for _ , col := range refColumns {
14631484 refColumnNames = append (refColumnNames , col .Name )
14641485 }
1486+ if constraint .IsTemporal && len (refColumnNames ) > 0 {
1487+ refColumnNames [len (refColumnNames )- 1 ] = "PERIOD " + refColumnNames [len (refColumnNames )- 1 ]
1488+ }
14651489 clause += fmt .Sprintf (" (%s)" , strings .Join (refColumnNames , ", " ))
14661490 }
14671491 }
0 commit comments