Changeset: a2702977c833 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a2702977c833
Modified Files:
        sql/backends/monet5/sql_scenario.c
        sql/server/sql_mvc.c
        sql/storage/store.c
        sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql
        sql/test/pg_regress/Tests/date.sql
        sql/test/pg_regress/Tests/date.stable.err
        sql/test/pg_regress/Tests/date.stable.out
        sql/test/pg_regress/Tests/time.sql
        sql/test/pg_regress/Tests/time.stable.err
        sql/test/pg_regress/Tests/time.stable.out
        sql/test/pg_regress/Tests/timestamp.sql
        sql/test/pg_regress/Tests/timestamp.stable.err
        sql/test/pg_regress/Tests/timestamp.stable.out
        sql/test/pg_regress/Tests/timestamptz.sql
        sql/test/pg_regress/Tests/timestamptz.stable.err
        sql/test/pg_regress/Tests/timestamptz.stable.out
        sql/test/pg_regress/Tests/timetz.sql
        sql/test/pg_regress/Tests/timetz.stable.err
        sql/test/pg_regress/Tests/timetz.stable.out
        sql/test/pg_regress/postgresql2sql99.sh
Branch: default
Log Message:

Merge with default.


diffs (truncated from 7116 to 300 lines):

diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -856,6 +856,18 @@ sql_update_default(Client c)
 
        pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
 
+       /* cleanup columns of dropped views */
+       pos += snprintf(buf + pos, bufsize - pos, "delete from _columns where 
table_id not in (select id from _tables);\n");
+
+       /* add new columns */
+       pos += snprintf(buf + pos, bufsize - pos, "insert into _columns values( 
(select max(id)+1 from _columns), 'system', 'boolean', 1, 0, (select id from 
_tables where name = 'schemas'), NULL, true, 4, NULL);\n");
+       pos += snprintf(buf + pos, bufsize - pos, "insert into _columns values( 
(select max(id)+1 from _columns), 'varres', 'boolean', 1, 0, (select id from 
_tables where name = 'functions'), NULL, true, 7, NULL);\n");
+       pos += snprintf(buf + pos, bufsize - pos, "insert into _columns values( 
(select max(id)+1 from _columns), 'vararg', 'boolean', 1, 0, (select id from 
_tables where name = 'functions'), NULL, true, 8, NULL);\n");
+       pos += snprintf(buf + pos, bufsize - pos, "insert into _columns values( 
(select max(id)+1 from _columns), 'inout', 'tinyint', 8, 0, (select id from 
_tables where name = 'args'), NULL, true, 6, NULL);\n");
+       /* correct column numbers */
+       pos += snprintf(buf + pos, bufsize - pos, "update _columns set 
number='9' where name = 'schema_id' and table_id in (select id from _tables 
where name = 'functions');\n");
+       pos += snprintf(buf + pos, bufsize - pos, "update _columns set 
number='7' where name = 'number' and table_id in (select id from _tables where 
name = 'args');\n");
+
        /* remove table return types (#..), ie tt_generated from
         * _tables/_columns */
        pos += snprintf(buf + pos, bufsize - pos, "delete from _columns where 
table_id in (select id from _tables where name like '#%%');\n");
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -65,7 +65,7 @@ mvc_init(int debug, store_type store, in
                s = m->session->schema = mvc_bind_schema(m, "sys");
                assert(m->session->schema != NULL);
 
-               if (catalog_version) {
+               if (!first) {
                        t = mvc_bind_table(m, s, "tables");
                        mvc_drop_table(m, s, t, 0);
                        t = mvc_bind_table(m, s, "columns");
@@ -83,7 +83,7 @@ mvc_init(int debug, store_type store, in
                mvc_create_column_(m, t, "readonly", "boolean", 1);
                mvc_create_column_(m, t, "temporary", "smallint", 16);
 
-               if (catalog_version) {
+               if (!first) {
                        int pub = ROLE_PUBLIC;
                        int p = PRIV_SELECT;
                        int zero = 0;
@@ -103,15 +103,13 @@ mvc_init(int debug, store_type store, in
                mvc_create_column_(m, t, "number", "int", 32);
                mvc_create_column_(m, t, "storage", "varchar", 2048);
 
-               if (catalog_version) {
+               if (!first) {
                        int pub = ROLE_PUBLIC;
                        int p = PRIV_SELECT;
                        int zero = 0;
                        sql_table *privs = find_sql_table(s, "privileges");
                        table_funcs.table_insert(m->session->tr, privs, 
&t->base.id, &pub, &p, &zero, &zero);
-               }
-
-               if (!catalog_version) {
+               } else { 
                        sql_create_env(m, s);
                        sql_create_privileges(m, s);
                }
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -871,11 +871,9 @@ load_schema(sql_trans *tr, sqlid id, oid
                s = SA_ZNEW(tr->sa, sql_schema);
                v = table_funcs.column_find_value(tr, find_sql_column(ss, 
"name"), rid);
                base_init(tr->sa, &s->base, sid, TR_OLD, v); _DELETE(v);
-               v = table_funcs.column_find_value(tr, 
-                       find_sql_column(ss, "authorization"), rid);
+               v = table_funcs.column_find_value(tr, find_sql_column(ss, 
"authorization"), rid);
                s->auth_id = *(sqlid *)v;       _DELETE(v);
-               v = table_funcs.column_find_value(tr, 
-                       find_sql_column(tables, "system"), rid);
+               v = table_funcs.column_find_value(tr, find_sql_column(ss, 
"system"), rid);
                s->system = *(bit *)v;          _DELETE(v);
                v = table_funcs.column_find_value(tr, find_sql_column(ss, 
"owner"), rid);
                s->owner = *(sqlid *)v;         _DELETE(v);
diff --git a/sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql 
b/sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql
--- a/sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql
+++ b/sql/test/BugTracker-2014/Tests/stringfloatshtcompare.Bug-3512.sql
@@ -1,6 +1,18 @@
 START TRANSACTION;
 CREATE TABLE bug3512 (a VARCHAR(100) ) ;
+
+INSERT INTO bug3512 (a) VALUES ('9999') ; 
+INSERT INTO bug3512 (a) VALUES ('32767') ; 
+INSERT INTO bug3512 (a) VALUES ('32768') ; 
+INSERT INTO bug3512 (a) VALUES ('327670') ; 
+-- this fails because values > 32767 cannot be represented as short
+-- and MonetDB tries to cast the col to short
+SELECT * FROM bug3512 WHERE a > 8888;
+
+INSERT INTO bug3512 (a) VALUES ('0.0');
 INSERT INTO bug3512 (a) VALUES ('0.10');
 INSERT INTO bug3512 (a) VALUES ('9999.00') ; 
-UPDATE bug3512 SET a = NULL WHERE a IN ( 9999 ) ;
+
+-- this fails because decimal numbers cannot be cast to short
+SELECT * FROM bug3512 WHERE a = 9999;
 ROLLBACK;
diff --git a/sql/test/pg_regress/Tests/date.sql 
b/sql/test/pg_regress/Tests/date.sql
--- a/sql/test/pg_regress/Tests/date.sql
+++ b/sql/test/pg_regress/Tests/date.sql
@@ -31,9 +31,9 @@ SELECT f1 AS "Three" FROM DATE_TBL
 --
 -- Check all the documented input formats
 --
-SET datestyle TO iso;  -- display results in ISO
+/* SET datestyle TO iso; */ -- display results in ISO
 
-SET datestyle TO ymd;
+/* SET datestyle TO ymd; */
 
 SELECT date 'January 8, 1999';
 SELECT date '1999-01-08';
@@ -84,7 +84,7 @@ SELECT date '01 08 1999';
 SELECT date '99 08 01';
 SELECT date '1999 08 01';
 
-SET datestyle TO dmy;
+/* SET datestyle TO dmy; */
 
 SELECT date 'January 8, 1999';
 SELECT date '1999-01-08';
@@ -135,7 +135,7 @@ SELECT date '01 08 1999';
 SELECT date '99 08 01';
 SELECT date '1999 08 01';
 
-SET datestyle TO mdy;
+/* SET datestyle TO mdy; */
 
 SELECT date 'January 8, 1999';
 SELECT date '1999-01-08';
@@ -186,7 +186,7 @@ SELECT date '01 08 1999';
 SELECT date '99 08 01';
 SELECT date '1999 08 01';
 
-RESET datestyle;
+/* RESET datestyle; */
 
 --
 -- Simple math
diff --git a/sql/test/pg_regress/Tests/date.stable.err 
b/sql/test/pg_regress/Tests/date.stable.err
--- a/sql/test/pg_regress/Tests/date.stable.err
+++ b/sql/test/pg_regress/Tests/date.stable.err
@@ -29,153 +29,376 @@ stderr of test 'date` in directory 'sql/
 # 17:11:19 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-1142" "--port=38959"
 # 17:11:19 >  
 
-#--
-#-- DATE
-#--
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = INSERT INTO DATE_TBL VALUES ('1997-02-29');
-ERROR = date/time field value out of range: "1997-02-29"
-#--
-#-- Check all the documented input formats
-#--
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '1/8/1999';
-ERROR = date/time field value out of range: "1/8/1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '1/18/1999';
-ERROR = date/time field value out of range: "1/18/1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '18/1/1999';
-ERROR = date/time field value out of range: "18/1/1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
-QUERY = SELECT date 'January 8, 99 BC';
-ERROR = date/time field value out of range: "January 8, 99 BC"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '19990108';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '990108';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '1999.008';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date 'J2451187';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08-Jan-99';
-ERROR = date/time field value out of range: "08-Jan-99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '08-Jan-1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date 'Jan-08-99';
-ERROR = date/time field value out of range: "Jan-08-99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date 'Jan-08-1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '99-08-Jan';
-ERROR = invalid input syntax for type date: "99-08-Jan"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '1999-08-Jan';
-ERROR = invalid input syntax for type date: "1999-08-Jan"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08 Jan 99';
-ERROR = date/time field value out of range: "08 Jan 99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '08 Jan 1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date 'Jan 08 99';
-ERROR = date/time field value out of range: "Jan 08 99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date 'Jan 08 1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '99 08 Jan';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '1999 08 Jan';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08-01-99';
-ERROR = date/time field value out of range: "08-01-99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08-01-1999';
-ERROR = date/time field value out of range: "08-01-1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '01-08-99';
-ERROR = date/time field value out of range: "01-08-99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '01-08-1999';
-ERROR = date/time field value out of range: "01-08-1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08 01 99';
-ERROR = date/time field value out of range: "08 01 99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '08 01 1999';
-ERROR = date/time field value out of range: "08 01 1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '01 08 99';
-ERROR = date/time field value out of range: "01 08 99"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '01 08 1999';
-ERROR = date/time field value out of range: "01 08 1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '1/8/1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
 QUERY = SELECT date '1/18/1999';
-ERROR = date/time field value out of range: "1/18/1999"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
-QUERY = SELECT date '99-Jan-08';
-ERROR = date/time field value out of range: "99-Jan-08"
-MAPI = (monetdb) /var/tmp/mtest-12345/.s.monetdb.54321
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '18/1/1999';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '19990108';
+
+MAPI  = (monetdb) /var/tmp/mtest-14259/.s.monetdb.38398
+QUERY = SELECT date '990108';
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to