Changeset: 546e048a5ca0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/546e048a5ca0
Modified Files:
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:

Approve upgrade output.


diffs (truncated from 2800 to 300 lines):

diff --git 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -530,7 +530,6 @@ CREATE VIEW INFORMATION_SCHEMA.SCHEMATA 
   cast(NULL AS varchar(1)) AS DEFAULT_CHARACTER_SET_SCHEMA,
   cast('UTF-8' AS varchar(16)) AS DEFAULT_CHARACTER_SET_NAME,
   cast(NULL AS varchar(1)) AS SQL_PATH,
-  -- MonetDB column extensions
   s."id" AS schema_id,
   s."system" AS is_system,
   cm."remark" AS comments
@@ -552,7 +551,6 @@ CREATE VIEW INFORMATION_SCHEMA.TABLES AS
   cast(sys.ifthenelse((t."type" IN (0, 3, 7, 20, 30) AND t."access" IN (0, 
2)), 'YES', 'NO') AS varchar(3)) AS IS_INSERTABLE_INTO,
   cast('NO' AS varchar(3)) AS IS_TYPED,
   cast((CASE t."commit_action" WHEN 1 THEN 'DELETE' WHEN 2 THEN 'PRESERVE' 
WHEN 3 THEN 'DROP' ELSE NULL END) AS varchar(10)) AS COMMIT_ACTION,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   t."type" AS table_type_id,
@@ -579,7 +577,6 @@ CREATE VIEW INFORMATION_SCHEMA.VIEWS AS 
   cast('NO' AS varchar(3)) AS IS_TRIGGER_UPDATABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_DELETABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_INSERTABLE_INTO,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   cast(sys.ifthenelse(t."system", t."type" + 10 , t."type") AS smallint) AS 
table_type_id,
@@ -605,7 +602,7 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_digits", NULL) AS int) AS NUMERIC_PRECISION,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c."type" IN ('decimal','numeric'), 10, NULL)) AS int) AS 
NUMERIC_PRECISION_RADIX,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_scale", NULL) AS int) AS NUMERIC_SCALE,
-  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), c."type_scale" -1, NULL) AS 
int) AS DATETIME_PRECISION,
+  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale" -1, 0), NULL) AS int) AS 
DATETIME_PRECISION,
   cast(CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN 
'month_interval' THEN (CASE c."type_digits" WHEN 1 THEN 'interval year' WHEN 2 
THEN 'interval year to month' WHEN 3 THEN 'interval month' ELSE NULL END) WHEN 
'sec_interval' THEN (CASE c."type_digits" WHEN 5 THEN 'interval day to hour' 
WHEN 6 THEN 'interval day to minute' WHEN 7 THEN 'interval day to second' WHEN 
8 THEN 'interval hour' WHEN 9 THEN 'interval hour to minute' WHEN 10 THEN 
'interval hour to second' WHEN 11 THEN 'interval minute' WHEN 12 THEN 'interval 
minute to second' WHEN 13 THEN 'interval second' ELSE NULL END) ELSE NULL END 
AS varchar(40)) AS INTERVAL_TYPE,
   cast(CASE c."type" WHEN 'day_interval' THEN 0 WHEN 'month_interval' THEN 0 
WHEN 'sec_interval' THEN (sys.ifthenelse(c."type_digits" IN (7, 10, 12, 13), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale", 3), 0)) ELSE NULL END AS 
int) AS INTERVAL_PRECISION,
   cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
@@ -626,15 +623,15 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS int) AS MAXIMUM_CARDINALITY,
   cast(NULL AS varchar(1)) AS DTD_IDENTIFIER,
   cast('NO' AS varchar(3)) AS IS_SELF_REFERENCING,
-  cast(CASE WHEN c."default" LIKE 'next value for %' THEN 'YES' ELSE 'NO' END 
AS varchar(3)) AS IS_IDENTITY,
-  cast(NULL AS varchar(10)) AS IDENTITY_GENERATION,
-  cast(NULL AS int) AS IDENTITY_START,
-  cast(NULL AS int) AS IDENTITY_INCREMENT,
-  cast(NULL AS int) AS IDENTITY_MAXIMUM,
-  cast(NULL AS int) AS IDENTITY_MINIMUM,
-  cast(NULL AS varchar(3)) AS IDENTITY_CYCLE,
-  cast('NO' AS varchar(3)) AS IS_GENERATED,
-  cast(NULL AS varchar(1)) AS GENERATION_EXPRESSION,
+  cast(sys.ifthenelse(seq."name" IS NULL OR c."null", 'NO', 'YES') AS 
varchar(3)) AS IS_IDENTITY,
+  seq."name" AS IDENTITY_GENERATION,
+  seq."start" AS IDENTITY_START,
+  seq."increment" AS IDENTITY_INCREMENT,
+  seq."maxvalue" AS IDENTITY_MAXIMUM,
+  seq."minvalue" AS IDENTITY_MINIMUM,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, sys.ifthenelse(seq."cycle", 
'YES', 'NO')) AS varchar(3)) AS IDENTITY_CYCLE,
+  cast(sys.ifthenelse(seq."name" IS NULL, 'NO', 'YES') AS varchar(3)) AS 
IS_GENERATED,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, c."default") AS varchar(1024)) 
AS GENERATION_EXPRESSION,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_START,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_END,
   cast('NO' AS varchar(3)) AS SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION,
@@ -642,16 +639,17 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS varchar(1)) AS DECLARED_DATA_TYPE,
   cast(NULL AS int) AS DECLARED_NUMERIC_PRECISION,
   cast(NULL AS int) AS DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   c."table_id" AS table_id,
   c."id" AS column_id,
+  seq."id" AS sequence_id,
   t."system" AS is_system,
   cm."remark" AS comments
  FROM sys."columns" c
  INNER JOIN sys."tables" t ON c."table_id" = t."id"
  INNER JOIN sys."schemas" s ON t."schema_id" = s."id"
  LEFT OUTER JOIN sys."comments" cm ON c."id" = cm."id"
+ LEFT OUTER JOIN sys."sequences" seq ON ((seq."name"||'"') = 
substring(c."default", 3 + sys."locate"('"."seq_',c."default",14)))
  ORDER BY s."name", t."name", c."number";
 GRANT SELECT ON TABLE INFORMATION_SCHEMA.COLUMNS TO PUBLIC WITH GRANT OPTION;
 CREATE VIEW INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS SELECT
@@ -672,7 +670,6 @@ CREATE VIEW INFORMATION_SCHEMA.TABLE_CON
   cast('NO' AS varchar(3)) AS IS_DEFERRABLE,
   cast('NO' AS varchar(3)) AS INITIALLY_DEFERRED,
   cast('YES' AS varchar(3)) AS ENFORCED,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   k."id" AS key_id,
@@ -693,7 +690,6 @@ CREATE VIEW INFORMATION_SCHEMA.REFERENTI
   cast('FULL' AS varchar(7)) AS MATCH_OPTION,
   fk."update_action" AS UPDATE_RULE,
   fk."delete_action" AS DELETE_RULE,
-  -- MonetDB column extensions
   t."schema_id" AS fk_schema_id,
   t."id" AS fk_table_id,
   t."name" AS fk_table_name,
@@ -799,7 +795,6 @@ CREATE VIEW INFORMATION_SCHEMA.ROUTINES 
   cast(NULL AS varchar(1)) AS RESULT_CAST_FROM_DECLARED_DATA_TYPE,
   cast(NULL AS int) AS RESULT_CAST_DECLARED_NUMERIC_PRECISION,
   cast(NULL AS int) AS RESULT_CAST_DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   f."schema_id" AS schema_id,
   f."id" AS function_id,
   f."type" AS function_type,
@@ -831,7 +826,6 @@ CREATE VIEW INFORMATION_SCHEMA.SEQUENCES
   cast(NULL AS varchar(16)) AS DECLARED_DATA_TYPE,
   cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_PRECISION,
   cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   sq."schema_id" AS schema_id,
   sq."id" AS sequence_id,
   get_value_for(s."name", sq."name") AS current_value,
diff --git a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
@@ -530,7 +530,6 @@ CREATE VIEW INFORMATION_SCHEMA.SCHEMATA 
   cast(NULL AS varchar(1)) AS DEFAULT_CHARACTER_SET_SCHEMA,
   cast('UTF-8' AS varchar(16)) AS DEFAULT_CHARACTER_SET_NAME,
   cast(NULL AS varchar(1)) AS SQL_PATH,
-  -- MonetDB column extensions
   s."id" AS schema_id,
   s."system" AS is_system,
   cm."remark" AS comments
@@ -552,7 +551,6 @@ CREATE VIEW INFORMATION_SCHEMA.TABLES AS
   cast(sys.ifthenelse((t."type" IN (0, 3, 7, 20, 30) AND t."access" IN (0, 
2)), 'YES', 'NO') AS varchar(3)) AS IS_INSERTABLE_INTO,
   cast('NO' AS varchar(3)) AS IS_TYPED,
   cast((CASE t."commit_action" WHEN 1 THEN 'DELETE' WHEN 2 THEN 'PRESERVE' 
WHEN 3 THEN 'DROP' ELSE NULL END) AS varchar(10)) AS COMMIT_ACTION,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   t."type" AS table_type_id,
@@ -579,7 +577,6 @@ CREATE VIEW INFORMATION_SCHEMA.VIEWS AS 
   cast('NO' AS varchar(3)) AS IS_TRIGGER_UPDATABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_DELETABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_INSERTABLE_INTO,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   cast(sys.ifthenelse(t."system", t."type" + 10 , t."type") AS smallint) AS 
table_type_id,
@@ -605,7 +602,7 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_digits", NULL) AS int) AS NUMERIC_PRECISION,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c."type" IN ('decimal','numeric'), 10, NULL)) AS int) AS 
NUMERIC_PRECISION_RADIX,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_scale", NULL) AS int) AS NUMERIC_SCALE,
-  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), c."type_scale" -1, NULL) AS 
int) AS DATETIME_PRECISION,
+  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale" -1, 0), NULL) AS int) AS 
DATETIME_PRECISION,
   cast(CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN 
'month_interval' THEN (CASE c."type_digits" WHEN 1 THEN 'interval year' WHEN 2 
THEN 'interval year to month' WHEN 3 THEN 'interval month' ELSE NULL END) WHEN 
'sec_interval' THEN (CASE c."type_digits" WHEN 5 THEN 'interval day to hour' 
WHEN 6 THEN 'interval day to minute' WHEN 7 THEN 'interval day to second' WHEN 
8 THEN 'interval hour' WHEN 9 THEN 'interval hour to minute' WHEN 10 THEN 
'interval hour to second' WHEN 11 THEN 'interval minute' WHEN 12 THEN 'interval 
minute to second' WHEN 13 THEN 'interval second' ELSE NULL END) ELSE NULL END 
AS varchar(40)) AS INTERVAL_TYPE,
   cast(CASE c."type" WHEN 'day_interval' THEN 0 WHEN 'month_interval' THEN 0 
WHEN 'sec_interval' THEN (sys.ifthenelse(c."type_digits" IN (7, 10, 12, 13), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale", 3), 0)) ELSE NULL END AS 
int) AS INTERVAL_PRECISION,
   cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
@@ -626,15 +623,15 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS int) AS MAXIMUM_CARDINALITY,
   cast(NULL AS varchar(1)) AS DTD_IDENTIFIER,
   cast('NO' AS varchar(3)) AS IS_SELF_REFERENCING,
-  cast(CASE WHEN c."default" LIKE 'next value for %' THEN 'YES' ELSE 'NO' END 
AS varchar(3)) AS IS_IDENTITY,
-  cast(NULL AS varchar(10)) AS IDENTITY_GENERATION,
-  cast(NULL AS int) AS IDENTITY_START,
-  cast(NULL AS int) AS IDENTITY_INCREMENT,
-  cast(NULL AS int) AS IDENTITY_MAXIMUM,
-  cast(NULL AS int) AS IDENTITY_MINIMUM,
-  cast(NULL AS varchar(3)) AS IDENTITY_CYCLE,
-  cast('NO' AS varchar(3)) AS IS_GENERATED,
-  cast(NULL AS varchar(1)) AS GENERATION_EXPRESSION,
+  cast(sys.ifthenelse(seq."name" IS NULL OR c."null", 'NO', 'YES') AS 
varchar(3)) AS IS_IDENTITY,
+  seq."name" AS IDENTITY_GENERATION,
+  seq."start" AS IDENTITY_START,
+  seq."increment" AS IDENTITY_INCREMENT,
+  seq."maxvalue" AS IDENTITY_MAXIMUM,
+  seq."minvalue" AS IDENTITY_MINIMUM,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, sys.ifthenelse(seq."cycle", 
'YES', 'NO')) AS varchar(3)) AS IDENTITY_CYCLE,
+  cast(sys.ifthenelse(seq."name" IS NULL, 'NO', 'YES') AS varchar(3)) AS 
IS_GENERATED,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, c."default") AS varchar(1024)) 
AS GENERATION_EXPRESSION,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_START,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_END,
   cast('NO' AS varchar(3)) AS SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION,
@@ -642,16 +639,17 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS varchar(1)) AS DECLARED_DATA_TYPE,
   cast(NULL AS int) AS DECLARED_NUMERIC_PRECISION,
   cast(NULL AS int) AS DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   c."table_id" AS table_id,
   c."id" AS column_id,
+  seq."id" AS sequence_id,
   t."system" AS is_system,
   cm."remark" AS comments
  FROM sys."columns" c
  INNER JOIN sys."tables" t ON c."table_id" = t."id"
  INNER JOIN sys."schemas" s ON t."schema_id" = s."id"
  LEFT OUTER JOIN sys."comments" cm ON c."id" = cm."id"
+ LEFT OUTER JOIN sys."sequences" seq ON ((seq."name"||'"') = 
substring(c."default", 3 + sys."locate"('"."seq_',c."default",14)))
  ORDER BY s."name", t."name", c."number";
 GRANT SELECT ON TABLE INFORMATION_SCHEMA.COLUMNS TO PUBLIC WITH GRANT OPTION;
 CREATE VIEW INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS SELECT
@@ -672,7 +670,6 @@ CREATE VIEW INFORMATION_SCHEMA.TABLE_CON
   cast('NO' AS varchar(3)) AS IS_DEFERRABLE,
   cast('NO' AS varchar(3)) AS INITIALLY_DEFERRED,
   cast('YES' AS varchar(3)) AS ENFORCED,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   k."id" AS key_id,
@@ -693,7 +690,6 @@ CREATE VIEW INFORMATION_SCHEMA.REFERENTI
   cast('FULL' AS varchar(7)) AS MATCH_OPTION,
   fk."update_action" AS UPDATE_RULE,
   fk."delete_action" AS DELETE_RULE,
-  -- MonetDB column extensions
   t."schema_id" AS fk_schema_id,
   t."id" AS fk_table_id,
   t."name" AS fk_table_name,
@@ -799,7 +795,6 @@ CREATE VIEW INFORMATION_SCHEMA.ROUTINES 
   cast(NULL AS varchar(1)) AS RESULT_CAST_FROM_DECLARED_DATA_TYPE,
   cast(NULL AS int) AS RESULT_CAST_DECLARED_NUMERIC_PRECISION,
   cast(NULL AS int) AS RESULT_CAST_DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   f."schema_id" AS schema_id,
   f."id" AS function_id,
   f."type" AS function_type,
@@ -831,7 +826,6 @@ CREATE VIEW INFORMATION_SCHEMA.SEQUENCES
   cast(NULL AS varchar(16)) AS DECLARED_DATA_TYPE,
   cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_PRECISION,
   cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   sq."schema_id" AS schema_id,
   sq."id" AS sequence_id,
   get_value_for(s."name", sq."name") AS current_value,
diff --git 
a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -599,7 +599,6 @@ CREATE VIEW INFORMATION_SCHEMA.SCHEMATA 
   cast(NULL AS varchar(1)) AS DEFAULT_CHARACTER_SET_SCHEMA,
   cast('UTF-8' AS varchar(16)) AS DEFAULT_CHARACTER_SET_NAME,
   cast(NULL AS varchar(1)) AS SQL_PATH,
-  -- MonetDB column extensions
   s."id" AS schema_id,
   s."system" AS is_system,
   cm."remark" AS comments
@@ -621,7 +620,6 @@ CREATE VIEW INFORMATION_SCHEMA.TABLES AS
   cast(sys.ifthenelse((t."type" IN (0, 3, 7, 20, 30) AND t."access" IN (0, 
2)), 'YES', 'NO') AS varchar(3)) AS IS_INSERTABLE_INTO,
   cast('NO' AS varchar(3)) AS IS_TYPED,
   cast((CASE t."commit_action" WHEN 1 THEN 'DELETE' WHEN 2 THEN 'PRESERVE' 
WHEN 3 THEN 'DROP' ELSE NULL END) AS varchar(10)) AS COMMIT_ACTION,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   t."type" AS table_type_id,
@@ -648,7 +646,6 @@ CREATE VIEW INFORMATION_SCHEMA.VIEWS AS 
   cast('NO' AS varchar(3)) AS IS_TRIGGER_UPDATABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_DELETABLE,
   cast('NO' AS varchar(3)) AS IS_TRIGGER_INSERTABLE_INTO,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   t."id" AS table_id,
   cast(sys.ifthenelse(t."system", t."type" + 10 , t."type") AS smallint) AS 
table_type_id,
@@ -674,7 +671,7 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_digits", NULL) AS int) AS NUMERIC_PRECISION,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c."type" IN ('decimal','numeric'), 10, NULL)) AS int) AS 
NUMERIC_PRECISION_RADIX,
   cast(sys.ifthenelse(c."type" IN 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c."type_scale", NULL) AS int) AS NUMERIC_SCALE,
-  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), c."type_scale" -1, NULL) AS 
int) AS DATETIME_PRECISION,
+  cast(sys.ifthenelse(c."type" IN 
('date','timestamp','timestamptz','time','timetz'), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale" -1, 0), NULL) AS int) AS 
DATETIME_PRECISION,
   cast(CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN 
'month_interval' THEN (CASE c."type_digits" WHEN 1 THEN 'interval year' WHEN 2 
THEN 'interval year to month' WHEN 3 THEN 'interval month' ELSE NULL END) WHEN 
'sec_interval' THEN (CASE c."type_digits" WHEN 5 THEN 'interval day to hour' 
WHEN 6 THEN 'interval day to minute' WHEN 7 THEN 'interval day to second' WHEN 
8 THEN 'interval hour' WHEN 9 THEN 'interval hour to minute' WHEN 10 THEN 
'interval hour to second' WHEN 11 THEN 'interval minute' WHEN 12 THEN 'interval 
minute to second' WHEN 13 THEN 'interval second' ELSE NULL END) ELSE NULL END 
AS varchar(40)) AS INTERVAL_TYPE,
   cast(CASE c."type" WHEN 'day_interval' THEN 0 WHEN 'month_interval' THEN 0 
WHEN 'sec_interval' THEN (sys.ifthenelse(c."type_digits" IN (7, 10, 12, 13), 
sys.ifthenelse(c."type_scale" > 0, c."type_scale", 3), 0)) ELSE NULL END AS 
int) AS INTERVAL_PRECISION,
   cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
@@ -695,15 +692,15 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS int) AS MAXIMUM_CARDINALITY,
   cast(NULL AS varchar(1)) AS DTD_IDENTIFIER,
   cast('NO' AS varchar(3)) AS IS_SELF_REFERENCING,
-  cast(CASE WHEN c."default" LIKE 'next value for %' THEN 'YES' ELSE 'NO' END 
AS varchar(3)) AS IS_IDENTITY,
-  cast(NULL AS varchar(10)) AS IDENTITY_GENERATION,
-  cast(NULL AS int) AS IDENTITY_START,
-  cast(NULL AS int) AS IDENTITY_INCREMENT,
-  cast(NULL AS int) AS IDENTITY_MAXIMUM,
-  cast(NULL AS int) AS IDENTITY_MINIMUM,
-  cast(NULL AS varchar(3)) AS IDENTITY_CYCLE,
-  cast('NO' AS varchar(3)) AS IS_GENERATED,
-  cast(NULL AS varchar(1)) AS GENERATION_EXPRESSION,
+  cast(sys.ifthenelse(seq."name" IS NULL OR c."null", 'NO', 'YES') AS 
varchar(3)) AS IS_IDENTITY,
+  seq."name" AS IDENTITY_GENERATION,
+  seq."start" AS IDENTITY_START,
+  seq."increment" AS IDENTITY_INCREMENT,
+  seq."maxvalue" AS IDENTITY_MAXIMUM,
+  seq."minvalue" AS IDENTITY_MINIMUM,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, sys.ifthenelse(seq."cycle", 
'YES', 'NO')) AS varchar(3)) AS IDENTITY_CYCLE,
+  cast(sys.ifthenelse(seq."name" IS NULL, 'NO', 'YES') AS varchar(3)) AS 
IS_GENERATED,
+  cast(sys.ifthenelse(seq."name" IS NULL, NULL, c."default") AS varchar(1024)) 
AS GENERATION_EXPRESSION,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_START,
   cast('NO' AS varchar(3)) AS IS_SYSTEM_TIME_PERIOD_END,
   cast('NO' AS varchar(3)) AS SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION,
@@ -711,16 +708,17 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
   cast(NULL AS varchar(1)) AS DECLARED_DATA_TYPE,
   cast(NULL AS int) AS DECLARED_NUMERIC_PRECISION,
   cast(NULL AS int) AS DECLARED_NUMERIC_SCALE,
-  -- MonetDB column extensions
   t."schema_id" AS schema_id,
   c."table_id" AS table_id,
   c."id" AS column_id,
+  seq."id" AS sequence_id,
   t."system" AS is_system,
   cm."remark" AS comments
  FROM sys."columns" c
  INNER JOIN sys."tables" t ON c."table_id" = t."id"
  INNER JOIN sys."schemas" s ON t."schema_id" = s."id"
  LEFT OUTER JOIN sys."comments" cm ON c."id" = cm."id"
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to