Changeset: 38e0f2d9456b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/38e0f2d9456b
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.ppc64
        
sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.ppc64.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.32bit
        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-hge/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
        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.32bit
        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.32bit
        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.32bit
        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.32bit
        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.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Jan2022
Log Message:

Fix upgrade code and test output.


diffs (truncated from 5078 to 300 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2954,16 +2954,8 @@ sql_update_jul2021(Client c, mvc *sql, c
                                        "        'CREATE SEQUENCE ' || 
sys.FQN(sch, seq) || ' AS BIGINT ' ||\n"
                                        "        CASE WHEN \"s\" <> 0 THEN 
'START WITH ' || \"rs\" ELSE '' END ||\n"
                                        "        CASE WHEN \"inc\" <> 1 THEN ' 
INCREMENT BY ' || \"inc\" ELSE '' END ||\n"
-                                       "        CASE\n"
-                                       "            WHEN nomin THEN ' NO 
MINVALUE'\n"
-                                       "            WHEN rmi IS NOT NULL THEN 
' MINVALUE ' || rmi\n"
-                                       "            ELSE ''\n"
-                                       "        END ||\n"
-                                       "        CASE\n"
-                                       "            WHEN nomax THEN ' NO 
MAXVALUE'\n"
-                                       "            WHEN rma IS NOT NULL THEN 
' MAXVALUE ' || rma\n"
-                                       "            ELSE ''\n"
-                                       "        END ||\n"
+                                       "        CASE WHEN \"mi\" <> 0 THEN ' 
MINVALUE ' || \"mi\" ELSE '' END ||\n"
+                                       "        CASE WHEN \"ma\" <> 0 THEN ' 
MAXVALUE ' || \"ma\" ELSE '' END ||\n"
                                        "        CASE WHEN \"cache\" <> 1 THEN 
' CACHE ' || \"cache\" ELSE '' END ||\n"
                                        "        CASE WHEN \"cycle\" THEN ' 
CYCLE' ELSE '' END || ';' stmt\n"
                                        "    FROM sys.describe_sequences;\n"
@@ -3537,6 +3529,7 @@ sql_update_jan2022(Client c, mvc *sql, c
                                        "drop view sys.describe_privileges;\n"
                                        "drop view sys.describe_comments;\n"
                                        "drop view sys.describe_tables;\n"
+                                       "drop view sys.describe_sequences;\n"
                                        "drop function sys.schema_guard(string, 
string, string);\n"
                                        "drop function 
sys.get_remote_table_expressions(string, string);\n"
                                        "drop function 
sys.get_merge_table_partition_expressions(int);\n"
@@ -3774,6 +3767,41 @@ sql_update_jan2022(Client c, mvc *sql, c
                                        "               JOIN sys.function_types 
ft ON f.type = ft.function_type_id\n"
                                        "               LEFT OUTER JOIN 
sys.function_languages fl ON f.language = fl.language_id\n"
                                        "       WHERE s.name <> 'tmp' AND NOT 
f.system;\n"
+                                       "CREATE VIEW sys.describe_sequences 
AS\n"
+                                       "       SELECT\n"
+                                       "               s.name sch,\n"
+                                       "               seq.name seq,\n"
+                                       "               seq.\"start\" s,\n"
+                                       "               
peak_next_value_for(s.name, seq.name) rs,\n"
+                                       "               CASE WHEN 
seq.\"minvalue\" = -9223372036854775807 AND seq.\"increment\" > 0 AND 
seq.\"start\" =  1 THEN TRUE ELSE FALSE END nomin,\n"
+                                       "               CASE WHEN 
seq.\"maxvalue\" =  9223372036854775807 AND seq.\"increment\" < 0 AND 
seq.\"start\" = -1 THEN TRUE ELSE FALSE END nomax,\n"
+                                       "               CASE\n"
+                                       "                       WHEN 
seq.\"minvalue\" = 0 AND seq.\"increment\" > 0 THEN NULL\n"
+                                       "                       WHEN 
seq.\"minvalue\" <> -9223372036854775807 THEN seq.\"minvalue\"\n"
+                                       "                       ELSE\n"
+                                       "                               CASE\n"
+                                       "                                       
WHEN seq.\"increment\" < 0  THEN NULL\n"
+                                       "                                       
ELSE CASE WHEN seq.\"start\" = 1 THEN NULL ELSE seq.\"maxvalue\" END\n"
+                                       "                               END\n"
+                                       "               END rmi,\n"
+                                       "               CASE\n"
+                                       "                       WHEN 
seq.\"maxvalue\" = 0 AND seq.\"increment\" < 0 THEN NULL\n"
+                                       "                       WHEN 
seq.\"maxvalue\" <> 9223372036854775807 THEN seq.\"maxvalue\"\n"
+                                       "                       ELSE\n"
+                                       "                               CASE\n"
+                                       "                                       
WHEN seq.\"increment\" > 0  THEN NULL\n"
+                                       "                                       
ELSE CASE WHEN seq.\"start\" = -1 THEN NULL ELSE seq.\"maxvalue\" END\n"
+                                       "                               END\n"
+                                       "               END rma,\n"
+                                       "               seq.\"minvalue\" mi,\n"
+                                       "               seq.\"maxvalue\" ma,\n"
+                                       "               seq.\"increment\" 
inc,\n"
+                                       "               seq.\"cacheinc\" 
cache,\n"
+                                       "               seq.\"cycle\" cycle\n"
+                                       "       FROM sys.sequences seq, 
sys.schemas s\n"
+                                       "       WHERE s.id = seq.schema_id\n"
+                                       "       AND s.name <> 'tmp'\n"
+                                       "       ORDER BY s.name, seq.name;\n"
                                        "GRANT SELECT ON 
sys.describe_constraints TO PUBLIC;\n"
                                        "GRANT SELECT ON sys.describe_indices 
TO PUBLIC;\n"
                                        "GRANT SELECT ON 
sys.describe_column_defaults TO PUBLIC;\n"
@@ -3959,12 +3987,21 @@ sql_update_jan2022(Client c, mvc *sql, c
                                        "CREATE VIEW sys.dump_sequences AS\n"
                                        "  SELECT\n"
                                        "    'CREATE SEQUENCE ' || sys.FQN(sch, 
seq) || ' AS BIGINT ' ||\n"
-                                       "      CASE WHEN \"s\" <> 0 THEN 'START 
WITH ' || \"rs\" ELSE '' END ||\n"
-                                       "      CASE WHEN \"inc\" <> 1 THEN ' 
INCREMENT BY ' || \"inc\" ELSE '' END ||\n"
-                                       "      CASE WHEN \"mi\" <> 0 THEN ' 
MINVALUE ' || \"mi\" ELSE '' END ||\n"
-                                       "      CASE WHEN \"ma\" <> 0 THEN ' 
MAXVALUE ' || \"ma\" ELSE '' END ||\n"
-                                       "      CASE WHEN \"cache\" <> 1 THEN ' 
CACHE ' || \"cache\" ELSE '' END ||\n"
-                                       "      CASE WHEN \"cycle\" THEN ' 
CYCLE' ELSE '' END || ';' stmt,\n"
+                                       "    CASE WHEN  \"s \" <> 0 THEN 'START 
WITH ' ||  \"rs \" ELSE '' END ||\n"
+                                       "    CASE WHEN  \"inc \" <> 1 THEN ' 
INCREMENT BY ' ||  \"inc \" ELSE '' END ||\n"
+                                       "    CASE\n"
+                                       "      WHEN nomin THEN ' NO MINVALUE'\n"
+                                       "      WHEN rmi IS NOT NULL THEN ' 
MINVALUE ' || rmi\n"
+                                       "      ELSE ''\n"
+                                       "    END ||\n"
+                                       "    CASE\n"
+                                       "      WHEN nomax THEN ' NO MAXVALUE'\n"
+                                       "      WHEN rma IS NOT NULL THEN ' 
MAXVALUE ' || rma\n"
+                                       "      ELSE ''\n"
+                                       "    END ||\n"
+                                       "    CASE WHEN  \"cache \" <> 1 THEN ' 
CACHE ' ||  \"cache \" ELSE '' END ||\n"
+                                       "    CASE WHEN  \"cycle \" THEN ' 
CYCLE' ELSE '' END ||\n"
+                                       "    ';' stmt,\n"
                                        "    sch schema_name,\n"
                                        "    seq seqname\n"
                                        "    FROM sys.describe_sequences;\n"
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
@@ -4677,20 +4677,40 @@ CREATE VIEW sys.describe_partition_table
         subq LEFT OUTER JOIN tp
         ON subq.m_tid = tp.table_id) AS tmp_pi;
 CREATE VIEW sys.describe_sequences AS
-    SELECT
-        s.name as sch,
-        seq.name as seq,
-        seq."start" s,
-        sys.peak_next_value_for(s.name, seq.name) AS rs,
-        seq."minvalue" mi,
-        seq."maxvalue" ma,
-        seq."increment" inc,
-        seq."cacheinc" cache,
-        seq."cycle" cycle
-    FROM sys.sequences seq, sys.schemas s
-    WHERE s.id = seq.schema_id
-    AND s.name <> 'tmp'
-    ORDER BY s.name, seq.name;
+       SELECT
+               s.name sch,
+               seq.name seq,
+               seq."start" s,
+               peak_next_value_for(s.name, seq.name) rs,
+               CASE WHEN seq."minvalue" = -9223372036854775807 AND 
seq."increment" > 0 AND seq."start" =  1 THEN TRUE ELSE FALSE END nomin,
+               CASE WHEN seq."maxvalue" =  9223372036854775807 AND 
seq."increment" < 0 AND seq."start" = -1 THEN TRUE ELSE FALSE END nomax,
+               CASE
+                       WHEN seq."minvalue" = 0 AND seq."increment" > 0 THEN 
NULL
+                       WHEN seq."minvalue" <> -9223372036854775807 THEN 
seq."minvalue"
+                       ELSE
+                               CASE
+                                       WHEN seq."increment" < 0  THEN NULL
+                                       ELSE CASE WHEN seq."start" = 1 THEN 
NULL ELSE seq."maxvalue" END
+                               END
+               END rmi,
+               CASE
+                       WHEN seq."maxvalue" = 0 AND seq."increment" < 0 THEN 
NULL
+                       WHEN seq."maxvalue" <> 9223372036854775807 THEN 
seq."maxvalue"
+                       ELSE
+                               CASE
+                                       WHEN seq."increment" > 0  THEN NULL
+                                       ELSE CASE WHEN seq."start" = -1 THEN 
NULL ELSE seq."maxvalue" END
+                               END
+               END rma,
+               seq."minvalue" mi,
+               seq."maxvalue" ma,
+               seq."increment" inc,
+               seq."cacheinc" cache,
+               seq."cycle" cycle
+       FROM sys.sequences seq, sys.schemas s
+       WHERE s.id = seq.schema_id
+       AND s.name <> 'tmp'
+       ORDER BY s.name, seq.name;
 CREATE VIEW sys.describe_functions AS
     SELECT
         f.id o,
@@ -4834,8 +4854,16 @@ CREATE VIEW sys.dump_sequences AS
         'CREATE SEQUENCE ' || sys.FQN(sch, seq) || ' AS BIGINT ' ||
         CASE WHEN "s" <> 0 THEN 'START WITH ' || "rs" ELSE '' END ||
         CASE WHEN "inc" <> 1 THEN ' INCREMENT BY ' || "inc" ELSE '' END ||
-        CASE WHEN "mi" <> 0 THEN ' MINVALUE ' || "mi" ELSE '' END ||
-        CASE WHEN "ma" <> 0 THEN ' MAXVALUE ' || "ma" ELSE '' END ||
+        CASE
+            WHEN nomin THEN ' NO MINVALUE'
+            WHEN rmi IS NOT NULL THEN ' MINVALUE ' || rmi
+            ELSE ''
+        END ||
+        CASE
+            WHEN nomax THEN ' NO MAXVALUE'
+            WHEN rma IS NOT NULL THEN ' MAXVALUE ' || rma
+            ELSE ''
+        END ||
         CASE WHEN "cache" <> 1 THEN ' CACHE ' || "cache" ELSE '' END ||
         CASE WHEN "cycle" THEN ' CYCLE' ELSE '' END || ';' stmt
     FROM sys.describe_sequences;
@@ -5214,6 +5242,7 @@ drop view sys.describe_partition_tables;
 drop view sys.describe_privileges;
 drop view sys.describe_comments;
 drop view sys.describe_tables;
+drop view sys.describe_sequences;
 drop function sys.schema_guard(string, string, string);
 drop function sys.get_remote_table_expressions(string, string);
 drop function sys.get_merge_table_partition_expressions(int);
@@ -5450,6 +5479,54 @@ CREATE VIEW sys.describe_functions AS
                JOIN sys.function_types ft ON f.type = ft.function_type_id
                LEFT OUTER JOIN sys.function_languages fl ON f.language = 
fl.language_id
        WHERE s.name <> 'tmp' AND NOT f.system;
+CREATE VIEW sys.describe_sequences AS
+       SELECT
+               s.name sch,
+               seq.name seq,
+               seq."start" s,
+               peak_next_value_for(s.name, seq.name) rs,
+               CASE WHEN seq."minvalue" = -9223372036854775807 AND 
seq."increment" > 0 AND seq."start" =  1 THEN TRUE ELSE FALSE END nomin,
+               CASE WHEN seq."maxvalue" =  9223372036854775807 AND 
seq."increment" < 0 AND seq."start" = -1 THEN TRUE ELSE FALSE END nomax,
+               CASE
+                       WHEN seq."minvalue" = 0 AND seq."increment" > 0 THEN 
NULL
+                       WHEN seq."minvalue" <> -9223372036854775807 THEN 
seq."minvalue"
+                       ELSE
+                               CASE
+                                       WHEN seq."increment" < 0  THEN NULL
+                                       ELSE CASE WHEN seq."start" = 1 THEN 
NULL ELSE seq."maxvalue" END
+                               END
+               END rmi,
+               CASE
+                       WHEN seq."maxvalue" = 0 AND seq."increment" < 0 THEN 
NULL
+                       WHEN seq."maxvalue" <> 9223372036854775807 THEN 
seq."maxvalue"
+                       ELSE
+                               CASE
+                                       WHEN seq."increment" > 0  THEN NULL
+                                       ELSE CASE WHEN seq."start" = -1 THEN 
NULL ELSE seq."maxvalue" END
+                               END
+               END rma,
+               seq."minvalue" mi,
+               seq."maxvalue" ma,
+               seq."increment" inc,
+               seq."cacheinc" cache,
+               seq."cycle" cycle
+       FROM sys.sequences seq, sys.schemas s
+       WHERE s.id = seq.schema_id
+       AND s.name <> 'tmp'
+       ORDER BY s.name, seq.name;
+GRANT SELECT ON sys.describe_constraints TO PUBLIC;
+GRANT SELECT ON sys.describe_indices TO PUBLIC;
+GRANT SELECT ON sys.describe_column_defaults TO PUBLIC;
+GRANT SELECT ON sys.describe_foreign_keys TO PUBLIC;
+GRANT SELECT ON sys.describe_tables TO PUBLIC;
+GRANT SELECT ON sys.describe_triggers TO PUBLIC;
+GRANT SELECT ON sys.describe_comments TO PUBLIC;
+GRANT SELECT ON sys.fully_qualified_functions TO PUBLIC;
+GRANT SELECT ON sys.describe_privileges TO PUBLIC;
+GRANT SELECT ON sys.describe_user_defined_types TO PUBLIC;
+GRANT SELECT ON sys.describe_partition_tables TO PUBLIC;
+GRANT SELECT ON sys.describe_sequences TO PUBLIC;
+GRANT SELECT ON sys.describe_functions TO PUBLIC;
 update sys.functions set system = true where system <> true and name in ('sq', 
'fqn', 'get_merge_table_partition_expressions', 'get_remote_table_expressions', 
'schema_guard') and schema_id = 2000 and type = 1;
 update sys._tables set system = true where name in ('describe_constraints', 
'describe_tables', 'describe_comments', 'describe_privileges', 
'describe_partition_tables', 'describe_functions') AND schema_id = 2000;
 CREATE VIEW sys.dump_create_roles AS
@@ -5617,12 +5694,21 @@ CREATE VIEW sys.dump_partition_tables AS
 CREATE VIEW sys.dump_sequences AS
   SELECT
     'CREATE SEQUENCE ' || sys.FQN(sch, seq) || ' AS BIGINT ' ||
-      CASE WHEN "s" <> 0 THEN 'START WITH ' || "rs" ELSE '' END ||
-      CASE WHEN "inc" <> 1 THEN ' INCREMENT BY ' || "inc" ELSE '' END ||
-      CASE WHEN "mi" <> 0 THEN ' MINVALUE ' || "mi" ELSE '' END ||
-      CASE WHEN "ma" <> 0 THEN ' MAXVALUE ' || "ma" ELSE '' END ||
-      CASE WHEN "cache" <> 1 THEN ' CACHE ' || "cache" ELSE '' END ||
-      CASE WHEN "cycle" THEN ' CYCLE' ELSE '' END || ';' stmt,
+    CASE WHEN "s" <> 0 THEN 'START WITH ' || "rs" ELSE '' END ||
+    CASE WHEN "inc" <> 1 THEN ' INCREMENT BY ' || "inc" ELSE '' END ||
+    CASE
+      WHEN nomin THEN ' NO MINVALUE'
+      WHEN rmi IS NOT NULL THEN ' MINVALUE ' || rmi
+      ELSE ''
+    END ||
+    CASE
+      WHEN nomax THEN ' NO MAXVALUE'
+      WHEN rma IS NOT NULL THEN ' MAXVALUE ' || rma
+      ELSE ''
+    END ||
+    CASE WHEN "cache" <> 1 THEN ' CACHE ' || "cache" ELSE '' END ||
+    CASE WHEN "cycle" THEN ' CYCLE' ELSE '' END ||
+    ';' stmt,
     sch schema_name,
     seq seqname
     FROM sys.describe_sequences;
diff --git 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
--- 
a/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
+++ 
b/sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
@@ -4677,20 +4677,40 @@ CREATE VIEW sys.describe_partition_table
         subq LEFT OUTER JOIN tp
         ON subq.m_tid = tp.table_id) AS tmp_pi;
 CREATE VIEW sys.describe_sequences AS
-    SELECT
-        s.name as sch,
-        seq.name as seq,
-        seq."start" s,
-        sys.peak_next_value_for(s.name, seq.name) AS rs,
-        seq."minvalue" mi,
-        seq."maxvalue" ma,
-        seq."increment" inc,
-        seq."cacheinc" cache,
-        seq."cycle" cycle
-    FROM sys.sequences seq, sys.schemas s
-    WHERE s.id = seq.schema_id
-    AND s.name <> 'tmp'
-    ORDER BY s.name, seq.name;
+       SELECT
+               s.name sch,
+               seq.name seq,
+               seq."start" s,
+               peak_next_value_for(s.name, seq.name) rs,
+               CASE WHEN seq."minvalue" = -9223372036854775807 AND 
seq."increment" > 0 AND seq."start" =  1 THEN TRUE ELSE FALSE END nomin,
+               CASE WHEN seq."maxvalue" =  9223372036854775807 AND 
seq."increment" < 0 AND seq."start" = -1 THEN TRUE ELSE FALSE END nomax,
+               CASE
+                       WHEN seq."minvalue" = 0 AND seq."increment" > 0 THEN 
NULL
+                       WHEN seq."minvalue" <> -9223372036854775807 THEN 
seq."minvalue"
+                       ELSE
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to