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