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

Reply via email to