Changeset: 2ba8d95ea10e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2ba8d95ea10e
Modified Files:
        sql/server/rel_sequence.c
        sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.sql
        sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.stable.out
        sql/test/Tests/seq-default.stable.out
        sql/test/seq-default.sql
Branch: default
Log Message:

Merge with Aug2018 branch.


diffs (truncated from 487 to 300 lines):

diff --git a/sql/server/rel_sequence.c b/sql/server/rel_sequence.c
--- a/sql/server/rel_sequence.c
+++ b/sql/server/rel_sequence.c
@@ -17,10 +17,10 @@ char*
 sql_next_seq_name(mvc *m)
 {
        int id = store_next_oid();
-       oid len = 5 + ((id+7)>>3);
+       size_t len = 5 + 10;    /* max nr of digits of (4 bytes) int is 10 */
        char *msg = sa_alloc(m->sa, len);
 
-       snprintf(msg, len, "seq_%d", store_next_oid());
+       snprintf(msg, len, "seq_%d", id);
        return msg;
 }
 
@@ -96,7 +96,7 @@ rel_create_seq(
                s = ss;
        (void) tpe;
        if (find_sql_sequence(s, name)) {
-               return sql_error(sql, 02, SQLSTATE(42000) "CREATE SEQUENCE: " 
"name '%s' already in use", name);
+               return sql_error(sql, 02, SQLSTATE(42000) "CREATE SEQUENCE: 
name '%s' already in use", name);
        } else if (!mvc_schema_privs(sql, s)) {
                return sql_error(sql, 02, SQLSTATE(42000) "CREATE SEQUENCE: 
insufficient privileges "
                                "for '%s' in schema '%s'", 
stack_get_string(sql, "current_user"), s->base.name);
@@ -109,7 +109,7 @@ rel_create_seq(
        if (max < 0) max = 0;
        if (cache <= 0) cache = 1;
 
-       seq = create_sql_sequence(sql->sa, s, name, start, min, max, inc, 
cache, cycle);  
+       seq = create_sql_sequence(sql->sa, s, name, start, min, max, inc, 
cache, cycle);
        seq->bedropped = bedropped;
        res = rel_seq(sql->sa, DDL_CREATE_SEQ, s->base.name, seq, NULL, NULL);
        /* for multi statements we keep the sequence around */
@@ -148,43 +148,43 @@ list_create_seq(
 
                switch(s->token) {
                case SQL_TYPE:
-                       if ((used&(1<<SEQ_TYPE))) 
+                       if ((used&(1<<SEQ_TYPE)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: AS type found should be used as most once");
                        used |= (1<<SEQ_TYPE);
                        t = &s->data.lval->h->data.typeval;
                        break;
                case SQL_START:
-                       if ((used&(1<<SEQ_START))) 
+                       if ((used&(1<<SEQ_START)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: START value should be passed as most once");
                        used |= (1<<SEQ_START);
                        start = s->data.l_val;
                        break;
                case SQL_INC:
-                       if ((used&(1<<SEQ_INC))) 
+                       if ((used&(1<<SEQ_INC)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: INCREMENT value should be passed as most once");
                        used |= (1<<SEQ_INC);
                        inc = s->data.l_val;
                        break;
                case SQL_MINVALUE:
-                       if ((used&(1<<SEQ_MIN))) 
+                       if ((used&(1<<SEQ_MIN)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: MINVALUE or NO MINVALUE should be passed as most once");
                        used |= (1<<SEQ_MIN);
                        min = s->data.l_val;
                        break;
                case SQL_MAXVALUE:
-                       if ((used&(1<<SEQ_MAX))) 
+                       if ((used&(1<<SEQ_MAX)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: MAXVALUE or NO MAXVALUE should be passed as most once");
                        used |= (1<<SEQ_MAX);
                        max = s->data.l_val;
                        break;
                case SQL_CYCLE:
-                       if ((used&(1<<SEQ_CYCLE))) 
+                       if ((used&(1<<SEQ_CYCLE)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: CYCLE or NO CYCLE should be passed as most once");
                        used |= (1<<SEQ_CYCLE);
                        cycle = s->data.i_val;
                        break;
                case SQL_CACHE:
-                       if ((used&(1<<SEQ_CACHE))) 
+                       if ((used&(1<<SEQ_CACHE)))
                                return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: CACHE value should be passed as most once");
                        used |= (1<<SEQ_CACHE);
                        cache = s->data.l_val;
@@ -220,12 +220,12 @@ rel_alter_seq(
 
        assert(start_list->h->type == type_int);
        if (sname && !(s = mvc_bind_schema(sql, sname)))
-               return sql_error(sql, 02, SQLSTATE(3F000) "CREATE SEQUENCE: no 
such schema '%s'", sname);
+               return sql_error(sql, 02, SQLSTATE(3F000) "ALTER SEQUENCE: no 
such schema '%s'", sname);
        if (!s)
                s = ss;
        (void) tpe;
        if (!(seq = find_sql_sequence(s, name))) {
-               return sql_error(sql, 02, SQLSTATE(42000) "ALTER SEQUENCE: " 
"no such sequence '%s'", name);
+               return sql_error(sql, 02, SQLSTATE(42000) "ALTER SEQUENCE: no 
such sequence '%s'", name);
        }
        if (!mvc_schema_privs(sql, s)) {
                return sql_error(sql, 02, SQLSTATE(42000) "ALTER SEQUENCE: 
insufficient privileges "
@@ -233,10 +233,10 @@ rel_alter_seq(
        }
 
        /* first alter the known values */
-       seq = create_sql_sequence(sql->sa, s, name, seq->start, min, max, inc, 
cache, cycle);  
+       seq = create_sql_sequence(sql->sa, s, name, seq->start, min, max, inc, 
cache, cycle);
 
-       /* restart may be a query, i.e. we create a statement 
-          restart(ssname,seqname,value) */ 
+       /* restart may be a query, i.e. we create a statement
+          restart(ssname,seqname,value) */
 
        if (start_type == 0) {
                val = exp_atom_lng(sql->sa, seq->start);
@@ -250,7 +250,7 @@ rel_alter_seq(
                if (!val || !(val = rel_check_type(sql, lng_t, val, 
type_equal)))
                        return NULL;
        } else if (start_type == 2) {
-               assert (start_list->h->next->type == type_lng); 
+               assert (start_list->h->next->type == type_lng);
                val = exp_atom_lng(sql->sa, start_list->h->next->data.l_val);
        }
        return rel_seq(sql->sa, DDL_ALTER_SEQ, s->base.name, seq, r, val);
@@ -275,44 +275,44 @@ list_alter_seq(
 
                switch(s->token) {
                case SQL_TYPE:
-                       if ((used&(1<<SEQ_TYPE))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: AS type found should be used as most once");
+                       if ((used&(1<<SEQ_TYPE)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: AS type found should be used as most once");
                        used |= (1<<SEQ_TYPE);
                        t = &s->data.lval->h->data.typeval;
                        break;
                case SQL_START:
-                       if ((used&(1<<SEQ_START))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: START value should be passed as most once");
+                       if ((used&(1<<SEQ_START)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: START value should be passed as most once");
                        used |= (1<<SEQ_START);
                        start = s->data.lval;
                        break;
                case SQL_INC:
-                       if ((used&(1<<SEQ_INC))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: INCREMENT value should be passed as most once");
+                       if ((used&(1<<SEQ_INC)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: INCREMENT value should be passed as most once");
                        used |= (1<<SEQ_INC);
                        inc = s->data.l_val;
                        break;
                case SQL_MINVALUE:
-                       if ((used&(1<<SEQ_MIN))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: MINVALUE or NO MINVALUE should be passed as most once");
+                       if ((used&(1<<SEQ_MIN)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: MINVALUE or NO MINVALUE should be passed as most once");
                        used |= (1<<SEQ_MIN);
                        min = s->data.l_val;
                        break;
                case SQL_MAXVALUE:
-                       if ((used&(1<<SEQ_MAX))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: MAXVALUE or NO MAXVALUE should be passed as most once");
+                       if ((used&(1<<SEQ_MAX)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: MAXVALUE or NO MAXVALUE should be passed as most once");
                        used |= (1<<SEQ_MAX);
                        max = s->data.l_val;
                        break;
                case SQL_CYCLE:
-                       if ((used&(1<<SEQ_CYCLE))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: CYCLE or NO CYCLE should be passed as most once");
+                       if ((used&(1<<SEQ_CYCLE)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: CYCLE or NO CYCLE should be passed as most once");
                        used |= (1<<SEQ_CYCLE);
                        cycle = s->data.i_val;
                        break;
                case SQL_CACHE:
-                       if ((used&(1<<SEQ_CACHE))) 
-                               return sql_error(sql, 02, SQLSTATE(3F000) 
"CREATE SEQUENCE: CACHE value should be passed as most once");
+                       if ((used&(1<<SEQ_CACHE)))
+                               return sql_error(sql, 02, SQLSTATE(3F000) 
"ALTER SEQUENCE: CACHE value should be passed as most once");
                        used |= (1<<SEQ_CACHE);
                        cache = s->data.l_val;
                        break;
@@ -335,20 +335,20 @@ rel_sequences(mvc *sql, symbol *s)
 
                        res = list_create_seq(
 /* mvc* sql */         sql,
-/* sql_schema* s */    cur_schema(sql), 
-/* dlist* qname */     l->h->data.lval, 
-/* dlist* options */   l->h->next->data.lval, 
-/* int bedropped */    l->h->next->next->data.i_val); 
+/* sql_schema* s */    cur_schema(sql),
+/* dlist* qname */     l->h->data.lval,
+/* dlist* options */   l->h->next->data.lval,
+/* int bedropped */    l->h->next->next->data.i_val);
                }
                break;
                case SQL_ALTER_SEQ:
                {
                        dlist* l = s->data.lval;
-                       
+
                        res = list_alter_seq(
 /* mvc* sql */         sql,
-/* sql_schema* s */    cur_schema(sql), 
-/* dlist* qname */     l->h->data.lval, 
+/* sql_schema* s */    cur_schema(sql),
+/* dlist* qname */     l->h->data.lval,
 /* dlist* options */   l->h->next->data.lval);
                }
                break;
@@ -369,6 +369,6 @@ rel_sequences(mvc *sql, symbol *s)
                default:
                        return sql_error(sql, 01, SQLSTATE(42000) "sql_stmt 
Symbol(%p)->token = %s", s, token2string(s->token));
        }
-       sql->type = Q_SCHEMA; 
+       sql->type = Q_SCHEMA;
        return res;
 }
diff --git a/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.sql 
b/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.sql
--- a/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.sql
+++ b/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.sql
@@ -1,7 +1,7 @@
-CREATE SEQUENCE sys.seq_5700 AS INTEGER;
+CREATE SEQUENCE sys.myseq_5700 AS INTEGER;
 
 CREATE TABLE kvk (
-        id                INTEGER       NOT NULL       DEFAULT next value for 
seq_5700,
+        id                INTEGER       NOT NULL       DEFAULT next value for 
myseq_5700,
         kvk               BIGINT,
         bedrijfsnaam      VARCHAR(256),
         adres             VARCHAR(256),
@@ -49,4 +49,4 @@ select * from  kvk;
 
 drop table kvk_extra_nieuw;
 drop table  kvk;
-drop SEQUENCE sys.seq_5700;
+drop SEQUENCE sys.myseq_5700;
diff --git a/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.stable.out 
b/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.stable.out
--- a/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.stable.out
+++ b/sql/test/BugTracker-2012/Tests/update_crash.Bug-2655.stable.out
@@ -7,17 +7,15 @@ stdout of test 'update_crash.Bug-2655` i
 
 # MonetDB 5 server v11.13.6
 # This is an unreleased version
-# Serving database 'mTests_test_BugTracker-2012', using 8 threads
-# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
-# Found 15.629 GiB available main-memory.
-# Copyright (c) 1993-July 2008 CWI.
-# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
-# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://lyon.ins.cwi.nl:31477/
-# MonetDB/JAQL module loaded
-# MonetDB/SQL module loaded
-
-Ready.
+# Serving database 'mTests_sql_test_BugTracker-2012', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers
+# Found 31.306 GiB available main-memory.
+# Copyright (c) 1993 - July 2008 CWI.
+# Copyright (c) August 2008 - 2018 MonetDB B.V., all rights reserved
+# Visit https://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://catskill.da.cwi.nl:31682/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-31807/.s.monetdb.31682
+# MonetDB/GIS module loaded
 # SQL catalog created, loading sql scripts once
 # loading sql script: 09_like.sql
 # loading sql script: 10_math.sql
@@ -39,15 +37,17 @@ Ready.
 # loading sql script: 39_analytics.sql
 # loading sql script: 80_udf.sql
 # loading sql script: 99_system.sql
+# MonetDB/SQL module loaded
+
+Ready.
 
 # 16:26:37 >  
 # 16:26:37 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=lyon" 
"--port=31477"
 # 16:26:37 >  
 
-#CREATE SEQUENCE sys.seq_5700 AS INTEGER;
+#CREATE SEQUENCE sys.myseq_5700 AS INTEGER;
 #CREATE TABLE kvk (
-#        id                INTEGER       NOT NULL       DEFAULT next value for
-#seq_5700,
+#        id                INTEGER       NOT NULL       DEFAULT next value for 
myseq_5700,
 #        kvk               BIGINT,
 #        bedrijfsnaam      VARCHAR(256),
 #        adres             VARCHAR(256),
@@ -114,9 +114,9 @@ Ready.
 % 1,   1,      6,      6,      6,      6,      6,      2,      2,      1,      
1,      4 # length
 [ 1,   1,      "table1",       "table1",       "table1",       "table1",       
"table1",       23,     24,     1,      1,      "test"  ]
 [ 2,   1,      "table1",       "table1",       "table1",       "table1",       
"table1",       23,     24,     1,      1,      "test"  ]
-#drop SEQUENCE sys.seq_5700;
 #drop table kvk_extra_nieuw;
 #drop table  kvk;
+#drop SEQUENCE sys.myseq_5700;
 
 # 16:26:37 >  
 # 16:26:37 >  "Done."
diff --git a/sql/test/Tests/seq-default.stable.out 
b/sql/test/Tests/seq-default.stable.out
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to