Changeset: a3820230b7b7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a3820230b7b7
Removed Files:
sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.sql
sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.err
sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.out
Modified Files:
sql/server/rel_schema.c
sql/server/rel_updates.c
sql/server/sql_parser.y
sql/test/BugTracker-2017/Tests/All
Branch: Dec2016
Log Message:
Backed out changes to add DEFAULT keyword to INSERT INTO query.
These changes belong in the default branch.
Backed out changesets f4b67f9daddb, 955f7a5b847c, 24d1f738cf7c.
diffs (truncated from 319 to 300 lines):
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -408,16 +408,17 @@ column_option(
if (e && is_atom(e->type)) {
atom *a = exp_value(sql, e, sql->args,
sql->argc);
- if(!atom_cast(sql->sa, a, &cs->type)) {
- (void) sql_error(sql, 02, "42000!could
not cast the default value to the column type\n");
- return SQL_ERR;
+ if (atom_null(a)) {
+ mvc_default(sql, cs, NULL);
+ res = SQL_OK;
+ break;
}
}
/* reset error */
sql->session->status = 0;
sql->errstr[0] = '\0';
}
- r = symbol2string(sql, s->data.sym, &err);
+ r = symbol2string(sql, s->data.sym, &err);
if (!r) {
(void) sql_error(sql, 02, "42000!incorrect default
value '%s'\n", err?err:"");
if (err) _DELETE(err);
@@ -736,25 +737,14 @@ table_element(mvc *sql, symbol *s, sql_s
char *cname = l->h->data.sval;
symbol *sym = l->h->next->data.sym;
sql_column *c = mvc_bind_column(sql, t, cname);
- sql_exp *e = NULL;
if (!c) {
sql_error(sql, 02, "42S22!ALTER TABLE: no such column
'%s'\n", cname);
return SQL_ERR;
}
- e = rel_logical_value_exp(sql, NULL, sym, sql_sel);
-
- if (e && is_atom(e->type)) {
- atom *a = exp_value(sql, e, sql->args, sql->argc);
-
- if(!atom_cast(sql->sa, a, &c->type)) {
- (void) sql_error(sql, 02, "42S22!ALTER TABLE:
could not cast the default value to the column type\n");
- return SQL_ERR;
- }
- }
r = symbol2string(sql, sym, &err);
if (!r) {
- (void) sql_error(sql, 02, "42S22!ALTER TABLE: incorrect
default value '%s'\n", err?err:"");
+ (void) sql_error(sql, 02, "42000!incorrect default
value '%s'\n", err?err:"");
if (err) _DELETE(err);
return SQL_ERR;
}
diff --git a/sql/server/rel_updates.c b/sql/server/rel_updates.c
--- a/sql/server/rel_updates.c
+++ b/sql/server/rel_updates.c
@@ -23,12 +23,6 @@ insert_value(mvc *sql, sql_column *c, sq
{
if (s->token == SQL_NULL) {
return exp_atom(sql->sa, atom_general(sql->sa, &c->type, NULL));
- } else if (s->token == SQL_DEFAULT) {
- if (c->def) {
- return rel_parse_val(sql, sa_message(sql->sa, "select
CAST(%s AS %s);", c->def, c->type.type->sqlname), sql->emode);
- } else {
- return sql_error(sql, 02, "INSERT INTO: column '%s' has
no valid default value", c->base.name);
- }
} else {
int is_last = 0;
exp_kind ek = {type_value, card_value, FALSE};
@@ -977,19 +971,11 @@ update_table(mvc *sql, dlist *qname, dli
int status = sql->session->status;
exp_kind ek = {type_value,
(single)?card_column:card_relation, FALSE};
- if(single && a->token == SQL_DEFAULT) {
- char *colname =
assignment->h->next->data.sval;
- sql_column *col = mvc_bind_column(sql,
t, colname);
- if (col->def) {
- v = rel_parse_val(sql,
sa_message(sql->sa, "select CAST(%s AS %s);", col->def,
col->type.type->sqlname), sql->emode);
- } else {
- return sql_error(sql, 02,
"UPDATE: column '%s' has no valid default value", col->base.name);
- }
- } else if (single) {
+ if (single)
v = rel_value_exp(sql, &rel_val, a,
sql_sel, ek);
- } else {
+ else
rel_val = rel_subquery(sql, NULL, a,
ek, APPLY_JOIN);
- }
+
if (!v) {
sql->errstr[0] = 0;
sql->session->status = status;
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -1517,7 +1517,7 @@ default:
;
default_value:
- atom { $$ = $1; }
+ simple_scalar_exp { $$ = $1; }
;
column_constraint:
@@ -2822,7 +2822,6 @@ simple_atom:
insert_atom:
simple_atom
- | DEFAULT { $$ = _symbol_create(SQL_DEFAULT, NULL ); }
;
value:
@@ -2843,12 +2842,7 @@ assignment_commalist:
;
assignment:
- column '=' DEFAULT
- { dlist *l = L();
- append_symbol(l, _symbol_create(SQL_DEFAULT, NULL ) );
- append_string(l, $1);
- $$ = _symbol_create_list( SQL_ASSIGN, l); }
- | column '=' search_condition
+ column '=' search_condition
{ dlist *l = L();
append_symbol(l, $3 );
append_string(l, $1);
diff --git a/sql/test/BugTracker-2017/Tests/All
b/sql/test/BugTracker-2017/Tests/All
--- a/sql/test/BugTracker-2017/Tests/All
+++ b/sql/test/BugTracker-2017/Tests/All
@@ -21,7 +21,6 @@ HAVE_NETCDF?rel2bin_project-assert.Bug-6
str2decimal.Bug-6206
integer_addition_overflow.Bug-6205
dce_bug-6177
-default-insert-update.Bug-6249
crash_on_NULL_ptr.Bug-6130
prepare.Bug-6133
null-quantile.Bug-6218
diff --git a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.sql
b/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.sql
deleted file mode 100644
--- a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-CREATE TABLE test1 (a INT DEFAULT -1);
-
-INSERT INTO test1 VALUES (1);
-INSERT INTO test1 VALUES (DEFAULT);
-INSERT INTO test1 VALUES (2), (DEFAULT), (3), (DEFAULT), (4);
-
-SELECT * FROM test1;
-
-UPDATE test1 SET a = DEFAULT WHERE a = 4;
-
-SELECT * FROM test1;
-
-DROP TABLE test1;
-
-CREATE TABLE test2 (a INT DEFAULT 0, b CLOB, c INT, d CLOB DEFAULT 'astring');
-
-INSERT INTO test2 VALUES (1, 'a', 1, 'a');
-INSERT INTO test2 VALUES (DEFAULT, 'a', 1, DEFAULT);
-INSERT INTO test2 VALUES (2, 'b', 2, 'b'), (100, 'other', -1, DEFAULT), (3,
'c', 3, 'c'), (DEFAULT, 'd', 4, 'd');
-
-SELECT * FROM test2;
-
-UPDATE test2 SET d = DEFAULT, b = 'bbb' WHERE a = 1;
-
-SELECT * FROM test2;
-
-INSERT INTO test2 VALUES (1, 'a', DEFAULT, 'a'); --throw an error
-UPDATE test2 SET b = DEFAULT; --throw an error
-
-DROP TABLE test2;
diff --git
a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.err
b/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.err
deleted file mode 100644
--- a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.err
+++ /dev/null
@@ -1,41 +0,0 @@
-stderr of test 'default-insert-update.Bug-6249` in directory
'sql/test/BugTracker-2017` itself:
-
-
-# 11:11:43 >
-# 11:11:43 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=39704" "--set"
"mapi_usock=/var/tmp/mtest-21586/.s.monetdb.39704" "--set" "monet_prompt="
"--forcemito"
"--dbpath=/home/ferreira/MonetDB-Dec2016/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2017"
-# 11:11:43 >
-
-# builtin opt gdk_dbpath =
/home/ferreira/MonetDB-Dec2016/BUILD/var/monetdb5/dbfarm/demo
-# builtin opt gdk_debug = 0
-# builtin opt gdk_vmtrim = no
-# builtin opt monet_prompt = >
-# builtin opt monet_daemon = no
-# builtin opt mapi_port = 50000
-# builtin opt mapi_open = false
-# builtin opt mapi_autosense = false
-# builtin opt sql_optimizer = default_pipe
-# builtin opt sql_debug = 0
-# cmdline opt gdk_nr_threads = 0
-# cmdline opt mapi_open = true
-# cmdline opt mapi_port = 39704
-# cmdline opt mapi_usock = /var/tmp/mtest-21586/.s.monetdb.39704
-# cmdline opt monet_prompt =
-# cmdline opt gdk_dbpath =
/home/ferreira/MonetDB-Dec2016/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2017
-# cmdline opt gdk_debug = 536870922
-
-# 11:11:43 >
-# 11:11:43 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-21586" "--port=39704"
-# 11:11:43 >
-
-MAPI = (monetdb) /var/tmp/mtest-21586/.s.monetdb.39704
-QUERY = INSERT INTO test2 VALUES (1, 'a', DEFAULT, 'a'); --throw an error
-ERROR = !INSERT INTO: column 'c' has no valid default value
-MAPI = (monetdb) /var/tmp/mtest-23398/.s.monetdb.31464
-QUERY = UPDATE test2 SET b = DEFAULT; --throw an error
-ERROR = !UPDATE: column 'b' has no valid default value
-
-
-# 11:11:43 >
-# 11:11:43 > "Done."
-# 11:11:43 >
-
diff --git
a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.out
b/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.out
deleted file mode 100644
--- a/sql/test/BugTracker-2017/Tests/default-insert-update.Bug-6249.stable.out
+++ /dev/null
@@ -1,97 +0,0 @@
-stdout of test 'default-insert-update.Bug-6249` in directory
'sql/test/BugTracker-2017` itself:
-
-
-# 11:11:43 >
-# 11:11:43 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=39704" "--set"
"mapi_usock=/var/tmp/mtest-21586/.s.monetdb.39704" "--set" "monet_prompt="
"--forcemito"
"--dbpath=/home/ferreira/MonetDB-Dec2016/BUILD/var/MonetDB/mTests_sql_test_BugTracker-2017"
-# 11:11:43 >
-
-# MonetDB 5 server v11.25.24
-# This is an unreleased version
-# Serving database 'mTests_sql_test_BugTracker-2017', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
-# Found 15.499 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2017 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on
mapi:monetdb://dhcp-120.eduroam.cwi.nl:39704/
-# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-21586/.s.monetdb.39704
-# MonetDB/GIS module loaded
-# MonetDB/SQL module loaded
-
-Ready.
-
-# 11:11:43 >
-# 11:11:43 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-21586" "--port=39704"
-# 11:11:43 >
-
-#CREATE TABLE test1 (a INT DEFAULT -1);
-#INSERT INTO test1 VALUES (1);
-[ 1 ]
-#INSERT INTO test1 VALUES (DEFAULT);
-[ 1 ]
-#INSERT INTO test1 VALUES (2), (DEFAULT), (3), (DEFAULT), (4);
-[ 5 ]
-#SELECT * FROM test1;
-% sys.test1 # table_name
-% a # name
-% int # type
-% 2 # length
-[ 1 ]
-[ -1 ]
-[ 2 ]
-[ -1 ]
-[ 3 ]
-[ -1 ]
-[ 4 ]
-#UPDATE test1 SET a = DEFAULT WHERE a = 4;
-[ 1 ]
-#SELECT * FROM test1;
-% sys.test1 # table_name
-% a # name
-% int # type
-% 2 # length
-[ 1 ]
-[ -1 ]
-[ 2 ]
-[ -1 ]
-[ 3 ]
-[ -1 ]
-[ -1 ]
-#DROP TABLE test1;
-#CREATE TABLE test2 (a INT DEFAULT 0, b CLOB, c INT, d CLOB DEFAULT 'astring');
-#INSERT INTO test2 VALUES (1, 'a', 1, 'a');
-[ 1 ]
-#INSERT INTO test2 VALUES (DEFAULT, 'a', 1, DEFAULT);
-[ 1 ]
-#INSERT INTO test2 VALUES (2, 'b', 2, 'b'), (100, 'other', -1, DEFAULT), (3,
'c', 3, 'c'), (DEFAULT, 'd', 4, 'd');
-[ 4 ]
-#SELECT * FROM test2;
-% sys.test2, sys.test2, sys.test2, sys.test2 # table_name
-% a, b, c, d # name
-% int, clob, int, clob # type
-% 3, 5, 2, 7 # length
-[ 1, "a", 1, "a" ]
-[ 0, "a", 1, "astring" ]
-[ 2, "b", 2, "b" ]
-[ 100, "other", -1, "astring" ]
-[ 3, "c", 3, "c" ]
-[ 0, "d", 4, "d" ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list