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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list