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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list