Changeset: c339da3f307c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c339da3f307c
Modified Files:
        sql/storage/bat/bat_logger.c
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/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:

Fixed upgrade from Oct2014-SP3.


diffs (145 lines):

diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -17,8 +17,13 @@ static int
 bl_preversion( int oldversion, int newversion)
 {
 #define CATALOG_OCT2014 52100
+#define CATALOG_OCT2014SP3 52101
 
        (void)newversion;
+       if (oldversion == CATALOG_OCT2014SP3) {
+               catalog_version = oldversion;
+               return 0;
+       }
        if (oldversion == CATALOG_OCT2014) {
                catalog_version = oldversion;
                return 0;
@@ -73,8 +78,39 @@ bl_postversion( void *lg)
                logger_add_bat(lg, tne, N(n, NULL, s, "types_eclass"));
                bat_destroy(te);
                bat_destroy(tn);
+       } else if (catalog_version == CATALOG_OCT2014SP3) {
+               BAT *te, *tn, *tne;
+               BATiter tei, tni;
+               char *s = "sys", n[64];
+               BUN p,q;
+
+               te = temp_descriptor(logger_find_bat(lg, N(n, NULL, s, 
"types_eclass")));
+               tn = temp_descriptor(logger_find_bat(lg, N(n, NULL, s, 
"types_sqlname")));
+               if (!te || !tn)
+                       return;
+               tei = bat_iterator(te);
+               tni = bat_iterator(tn);
+               tne = BATnew(TYPE_void, TYPE_int, BATcount(te), PERSISTENT);
+               if (!tne)
+                       return;
+               BATseqbase(tne, te->hseqbase);
+               for(p=BUNfirst(te), q=BUNlast(te); p<q; p++) {
+                       int eclass = *(int*)BUNtail(tei, p);
+                       char *name = BUNtail(tni, p);
+
+                       if (eclass == EC_MONTH)         /* old EC_INTERVAL */
+                               eclass = strcmp(name, "sec_interval") == 0 ? 
EC_SEC : EC_MONTH;
+                       else if (eclass >= EC_SEC)      /* old EC_DEC */
+                               eclass += 1;
+                       BUNappend(tne, &eclass, TRUE);
+               }
+               BATsetaccess(tne, BAT_READ);
+               logger_add_bat(lg, tne, N(n, NULL, s, "types_eclass"));
+               bat_destroy(te);
+               bat_destroy(tn);
        }
-       if (catalog_version == CATALOG_OCT2014) {
+       if (catalog_version == CATALOG_OCT2014 ||
+           catalog_version == CATALOG_OCT2014SP3) {
                /* we need to replace tables.readonly by tables.access column */
                BAT *b, *b1;
                BATiter bi;
diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
@@ -21,15 +21,6 @@ stdout of test 'upgrade` in directory 's
 Ready.
 Running database upgrade commands:
 set schema "sys";
-CREATE FUNCTION "left_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet."<<";
-CREATE FUNCTION "right_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet.">>";
-CREATE FUNCTION "left_shift_assign"(i1 inet, i2 inet) RETURNS boolean EXTERNAL 
NAME inet."<<=";
-CREATE FUNCTION "right_shift_assign"(i1 inet, i2 inet) RETURNS boolean 
EXTERNAL NAME inet.">>=";
-insert into sys.systemfunctions (select id from sys.functions where name in 
('left_shift', 'right_shift', 'left_shift_assign', 'right_shift_assign') and 
schema_id = (select id from sys.schemas where name = 'sys') and id not in 
(select function_id from sys.systemfunctions));
-set schema "testschema";
-
-Running database upgrade commands:
-set schema "sys";
 drop filter function sys."like";
 create filter function sys."like"(val string, pat string, esc string) external 
name algebra."like";
 create filter function sys."like"(val string, pat string) external name 
algebra."like";
diff --git a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -21,15 +21,6 @@ stdout of test 'upgrade` in directory 's
 Ready.
 Running database upgrade commands:
 set schema "sys";
-CREATE FUNCTION "left_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet."<<";
-CREATE FUNCTION "right_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet.">>";
-CREATE FUNCTION "left_shift_assign"(i1 inet, i2 inet) RETURNS boolean EXTERNAL 
NAME inet."<<=";
-CREATE FUNCTION "right_shift_assign"(i1 inet, i2 inet) RETURNS boolean 
EXTERNAL NAME inet.">>=";
-insert into sys.systemfunctions (select id from sys.functions where name in 
('left_shift', 'right_shift', 'left_shift_assign', 'right_shift_assign') and 
schema_id = (select id from sys.schemas where name = 'sys') and id not in 
(select function_id from sys.systemfunctions));
-set schema "testschema";
-
-Running database upgrade commands:
-set schema "sys";
 create function sys.fuse(one bigint, two bigint)
 returns hugeint
 external name udf.fuse;
@@ -75,8 +66,8 @@ from sys.storagemodel() group by "schema
 insert into sys.systemfunctions (select id from sys.functions where name in 
('fuse', 'generate_series', 'stddev_samp', 'stddev_pop', 'var_samp', 'var_pop', 
'median', 'quantile', 'corr') and schema_id = (select id from sys.schemas where 
name = 'sys') and id not in (select function_id from sys.systemfunctions));
 insert into sys.systemfunctions (select id from sys.functions where name = 
'filter' and schema_id = (select id from sys.schemas where name = 'json') and 
id not in (select function_id from sys.systemfunctions));
 update sys._tables set system = true where name = 'tablestoragemodel' and 
schema_id = (select id from sys.schemas where name = 'sys');
-insert into sys.types values(7284, 'hge', 'hugeint', 128, 1, 2, 6, 0);
-insert into sys.types values(7285, 'hge', 'decimal', 39, 1, 10, 8, 0);
+insert into sys.types values(7305, 'hge', 'hugeint', 128, 1, 2, 6, 0);
+insert into sys.types values(7306, 'hge', 'decimal', 39, 1, 10, 8, 0);
 update sys.types set digits = 18 where systemname = 'lng' and sqlname = 
'decimal';
 set schema "testschema";
 
diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out 
b/sql/test/testdb-upgrade/Tests/upgrade.stable.out
--- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out
@@ -18,15 +18,6 @@ stdout of test 'upgrade` in directory 's
 Ready.
 Running database upgrade commands:
 set schema "sys";
-CREATE FUNCTION "left_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet."<<";
-CREATE FUNCTION "right_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet.">>";
-CREATE FUNCTION "left_shift_assign"(i1 inet, i2 inet) RETURNS boolean EXTERNAL 
NAME inet."<<=";
-CREATE FUNCTION "right_shift_assign"(i1 inet, i2 inet) RETURNS boolean 
EXTERNAL NAME inet.">>=";
-insert into sys.systemfunctions (select id from sys.functions where name in 
('left_shift', 'right_shift', 'left_shift_assign', 'right_shift_assign') and 
schema_id = (select id from sys.schemas where name = 'sys') and id not in 
(select function_id from sys.systemfunctions));
-set schema "testschema";
-
-Running database upgrade commands:
-set schema "sys";
 drop filter function sys."like";
 create filter function sys."like"(val string, pat string, esc string) external 
name algebra."like";
 create filter function sys."like"(val string, pat string) external name 
algebra."like";
diff --git a/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128 
b/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
--- a/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
+++ b/sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
@@ -18,15 +18,6 @@ stdout of test 'upgrade` in directory 's
 Ready.
 Running database upgrade commands:
 set schema "sys";
-CREATE FUNCTION "left_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet."<<";
-CREATE FUNCTION "right_shift"(i1 inet, i2 inet) RETURNS boolean EXTERNAL NAME 
inet.">>";
-CREATE FUNCTION "left_shift_assign"(i1 inet, i2 inet) RETURNS boolean EXTERNAL 
NAME inet."<<=";
-CREATE FUNCTION "right_shift_assign"(i1 inet, i2 inet) RETURNS boolean 
EXTERNAL NAME inet.">>=";
-insert into sys.systemfunctions (select id from sys.functions where name in 
('left_shift', 'right_shift', 'left_shift_assign', 'right_shift_assign') and 
schema_id = (select id from sys.schemas where name = 'sys') and id not in 
(select function_id from sys.systemfunctions));
-set schema "testschema";
-
-Running database upgrade commands:
-set schema "sys";
 create function sys.fuse(one bigint, two bigint)
 returns hugeint
 external name udf.fuse;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to