Changeset: 344b0c2c61eb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=344b0c2c61eb
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: Jul2017
Log Message:

Merge with Dec2016 branch.


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
@@ -409,16 +409,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);
@@ -737,25 +738,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
@@ -1550,7 +1550,7 @@ default:
  ;
 
 default_value:
-    atom       { $$ = $1; }
+    simple_scalar_exp  { $$ = $1; }
  ;
 
 column_constraint:
@@ -2888,7 +2888,6 @@ simple_atom:
 
 insert_atom:
     simple_atom
- |  DEFAULT            { $$ = _symbol_create(SQL_DEFAULT, NULL ); }
  ;
 
 value:
@@ -2909,12 +2908,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
 HAVE_SAMTOOLS?sqlsmith01
 HAVE_NETCDF?sqlsmith02
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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to