Changeset: 186a8b4fad56 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=186a8b4fad56 Removed Files: ChangeLog.sqlextra Modified Files: sql/ChangeLog sql/backends/monet5/rel_bin.c sql/server/rel_psm.c sql/test/Tests/create-or-replace-triggers.stable.err sql/test/pg_regress/Tests/create_view.stable.err sql/test/pg_regress/Tests/float8.stable.err sql/test/pg_regress/Tests/float8.stable.err.Windows sql/test/pg_regress/Tests/float8.stable.err.int128 Branch: sqlextra Log Message:
Compilation fixes and more tests approval diffs (215 lines): diff --git a/ChangeLog.sqlextra b/ChangeLog.sqlextra deleted file mode 100644 --- a/ChangeLog.sqlextra +++ /dev/null @@ -1,14 +0,0 @@ -# ChangeLog file for MonetDB-sqlextra -# This file is updated with Maddlog - -* Wed Aug 30 2017 Pedro Ferreira <pedro.ferre...@monetdbsolutions.com> -- A column default value can be used in a UPDATE statement: UPDATE tname - SET cname = DEFAULT, and INSERT statements: INSERT INTO tname VALUES - (..., DEFAULT, ...) -- Added TRUNCATE statements into the SQL catalog, conforming to the SQL - standard. In a TRUNCATE statement a 'CONTINUE IDENTITY' or 'RESTART - IDENTITY' clause can be passed mrestart or not, being the former the - default one. The options 'RESTRICT' and 'CASCADE' tell if the table has - foreign key references, the referencing tables should be truncated as - well. This happens on 'CASCADE' and 'RESTRICT' is the default behavior. - diff --git a/sql/ChangeLog b/sql/ChangeLog --- a/sql/ChangeLog +++ b/sql/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog file for sql # This file is updated with Maddlog +* Wed Aug 30 2017 Pedro Ferreira <pedro.ferre...@monetdbsolutions.com> +- A column default value can be used in a UPDATE statement: UPDATE tname + SET cname = DEFAULT, and INSERT statements: INSERT INTO tname VALUES + (..., DEFAULT, ...) +- Added TRUNCATE statements into the SQL catalog, conforming to the SQL + standard. In a TRUNCATE statement a 'CONTINUE IDENTITY' or 'RESTART + IDENTITY' clause can be passed mrestart or not, being the former the + default one. The options 'RESTRICT' and 'CASCADE' tell if the table has + foreign key references, the referencing tables should be truncated as + well. This happens on 'CASCADE' and 'RESTRICT' is the default behavior. + * Tue Aug 1 2017 Sjoerd Mullender <sjo...@acm.org> - Lots of changes to streamline the internal error handling. In principle, all errors should now include a SQLSTATE error code diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -4456,7 +4456,7 @@ static stmt * sql_delete(backend *be, sql_table *t, stmt *rows) { mvc *sql = be->mvc; - stmt *v, *s = NULL; + stmt *v = NULL, *s = NULL; list *l = sa_list(sql->sa); if (rows) { @@ -4495,7 +4495,7 @@ static stmt * rel2bin_delete(backend *be, sql_rel *rel, list *refs) { mvc *sql = be->mvc; - stmt *rows = NULL, *delete; + stmt *rows = NULL, *stdelete = NULL; sql_rel *tr = rel->l; sql_table *t = NULL; @@ -4513,10 +4513,10 @@ rel2bin_delete(backend *be, sql_rel *rel stmt *s = rows; rows = s->op4.lval->h->data; } - delete = sql_delete(be, t, rows); + stdelete = sql_delete(be, t, rows); if (sql->cascade_action) sql->cascade_action = NULL; - return delete; + return stdelete; } struct tablelist { @@ -4576,16 +4576,16 @@ sql_truncate(backend *be, sql_table *t, { mvc *sql = be->mvc; list *l = sa_list(sql->sa); - stmt *v, *error = NULL, *ret, *other; + stmt *v, *error = NULL, *ret = NULL, *other = NULL; const char *next_value_for = "next value for \"sys\".\"seq_"; - char *seq_name; + char *seq_name = NULL; str seq_pos = NULL; - sql_column *col; - sql_sequence *seq; - sql_schema *sche; - sql_table *next; + sql_column *col = NULL; + sql_sequence *seq = NULL; + sql_schema *sche = NULL; + sql_table *next = NULL; sql_trans *tr = sql->session->tr; - node *n; + node *n = NULL; struct tablelist* new_list = (struct tablelist*) GDKmalloc(sizeof(struct tablelist)), *list_node, *aux; new_list->table = t; @@ -4650,17 +4650,17 @@ sql_truncate(backend *be, sql_table *t, return ret; } -#define E_ATOM_INT(e) ((atom*)((sql_exp*)e)->l)->data.val.lval +#define E_ATOM_INT(e) ((atom*)((sql_exp*)e)->l)->data.val.ival #define E_ATOM_STRING(e) ((atom*)((sql_exp*)e)->l)->data.val.sval static stmt * rel2bin_truncate(backend *be, sql_rel *rel) { mvc *sql = be->mvc; - stmt *truncate; + stmt *truncate = NULL; sql_rel *tr = rel->l; sql_table *t = NULL; - node *n; + node *n = NULL; int restart_sequences, cascade; if (tr->op == op_basetable) diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c --- a/sql/server/rel_psm.c +++ b/sql/server/rel_psm.c @@ -1176,9 +1176,6 @@ create_trigger(mvc *sql, dlist *qname, i if (create && !mvc_schema_privs(sql, ss)) return sql_error(sql, 02, SQLSTATE(42000) "%s TRIGGER: access denied for %s to schema ;'%s'", base, stack_get_string(sql, "current_user"), ss->base.name); - if (create && mvc_bind_trigger(sql, ss, triggername) != NULL) - return sql_error(sql, 02, SQLSTATE(42000) "CREATE TRIGGER: name '%s' already in use", triggername); - if (create && !(t = mvc_bind_table(sql, ss, tname))) return sql_error(sql, 02, SQLSTATE(42000) "%s TRIGGER: unknown table '%s'", base, tname); if (create && isView(t)) diff --git a/sql/test/Tests/create-or-replace-triggers.stable.err b/sql/test/Tests/create-or-replace-triggers.stable.err --- a/sql/test/Tests/create-or-replace-triggers.stable.err +++ b/sql/test/Tests/create-or-replace-triggers.stable.err @@ -30,6 +30,8 @@ stderr of test 'create-or-replace-trigge MAPI = (monetdb) /var/tmp/mtest-15975/.s.monetdb.38017 QUERY = CREATE OR REPLACE TRIGGER failedtrigger AFTER INSERT ON testing3 FOR EACH STATEMENT BEGIN ATOMIC INSERT INTO testing8 VALUES (3); END; --error +ERROR = !CREATE OR REPLACE TRIGGER: unknown table 'testing3' +CODE = 42000 # 12:24:46 > diff --git a/sql/test/pg_regress/Tests/create_view.stable.err b/sql/test/pg_regress/Tests/create_view.stable.err --- a/sql/test/pg_regress/Tests/create_view.stable.err +++ b/sql/test/pg_regress/Tests/create_view.stable.err @@ -29,31 +29,6 @@ stderr of test 'create_view` in director # 17:11:19 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-1142" "--port=38959" # 17:11:19 > -MAPI = (monetdb) /var/tmp/mtest-27483/.s.monetdb.35395 -QUERY = CREATE OR REPLACE VIEW viewtest AS - SELECT * FROM viewtest_tbl WHERE a > 10; -ERROR = !syntax error, unexpected VIEW in: "create or replace view" -CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 -QUERY = CREATE OR REPLACE VIEW viewtest AS - SELECT a, b FROM viewtest_tbl WHERE a > 5 ORDER BY b DESC; -ERROR = !syntax error, unexpected VIEW in: "create or replace view" -CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 -QUERY = CREATE OR REPLACE VIEW viewtest AS - SELECT a FROM viewtest_tbl WHERE a <> 20; -ERROR = !syntax error, unexpected VIEW in: "create or replace view" -CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 -QUERY = CREATE OR REPLACE VIEW viewtest AS - SELECT 1, * FROM viewtest_tbl; -ERROR = !syntax error, unexpected VIEW in: "create or replace view" -CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 -QUERY = CREATE OR REPLACE VIEW viewtest AS - SELECT a, cast(b as numeric) FROM viewtest_tbl; -ERROR = !syntax error, unexpected VIEW in: "create or replace view" -CODE = 42000 # 17:11:19 > diff --git a/sql/test/pg_regress/Tests/float8.stable.err b/sql/test/pg_regress/Tests/float8.stable.err --- a/sql/test/pg_regress/Tests/float8.stable.err +++ b/sql/test/pg_regress/Tests/float8.stable.err @@ -92,7 +92,7 @@ ERROR = !conversion of string 'nan' to t MAPI = (monetdb) /var/tmp/mtest-30808/.s.monetdb.35989 QUERY = SELECT '' AS five, f.f1, truncate(f1) AS trunc_f1 FROM FLOAT8_TBL f; -ERROR = !SELECT: no such unary operator 'truncate(double)' +ERROR = !syntax error, unexpected TRUNCATE in: "select '' as five, f.f1, truncate" MAPI = (monetdb) /var/tmp/mtest-30808/.s.monetdb.35989 QUERY = SELECT |/ cast('64' as double) AS eight; ERROR = !syntax error, unexpected '|' in: "select |" diff --git a/sql/test/pg_regress/Tests/float8.stable.err.Windows b/sql/test/pg_regress/Tests/float8.stable.err.Windows --- a/sql/test/pg_regress/Tests/float8.stable.err.Windows +++ b/sql/test/pg_regress/Tests/float8.stable.err.Windows @@ -92,7 +92,7 @@ ERROR = !conversion of string 'nan' to t MAPI = (monetdb) /var/tmp/mtest-30808/.s.monetdb.35989 QUERY = SELECT '' AS five, f.f1, truncate(f1) AS trunc_f1 FROM FLOAT8_TBL f; -ERROR = !SELECT: no such unary operator 'truncate(double)' +ERROR = !syntax error, unexpected TRUNCATE in: "select '' as five, f.f1, truncate" MAPI = (monetdb) /var/tmp/mtest-30808/.s.monetdb.35989 QUERY = SELECT |/ cast('64' as double) AS eight; ERROR = !syntax error, unexpected '|' in: "select |" diff --git a/sql/test/pg_regress/Tests/float8.stable.err.int128 b/sql/test/pg_regress/Tests/float8.stable.err.int128 --- a/sql/test/pg_regress/Tests/float8.stable.err.int128 +++ b/sql/test/pg_regress/Tests/float8.stable.err.int128 @@ -112,7 +112,7 @@ CODE = 22018 MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 QUERY = SELECT '' AS five, f.f1, truncate(f1) AS trunc_f1 FROM FLOAT8_TBL f; -ERROR = !SELECT: no such unary operator 'truncate(double)' +ERROR = !syntax error, unexpected TRUNCATE in: "select '' as five, f.f1, truncate" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685 QUERY = SELECT |/ cast('64' as double) AS eight; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list