Changeset: e31621c83398 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e31621c83398
Modified Files:
sql/backends/monet5/sql.c
sql/test/miscellaneous/Tests/simple_selects.test
Branch: default
Log Message:
0 may be a valid sequence minvalue, so don't test it as a bailout condition.
I won't touch this code for now, just adding some tests maybe.
diffs (63 lines):
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -957,15 +957,14 @@ mvc_next_value_bulk(Client cntxt, MalBlk
be->last_id = end;
sqlvar_set_number(find_global_var(be->mvc,
mvc_bind_schema(be->mvc, "sys"), "last_id"), be->last_id);
lng c = start;
- for(BUN i = 0; i<card; i++) {
+ for(BUN i = 0; i<card; ) {
if (maxv && c > maxv) {
- if (minv)
- c = minv;
- else
+ if (!seq->cycle)
break;
+ c = minv;
}
- rb[i] = c;
- if ((i+1) < card)
+ rb[i++] = c;
+ if (i < card)
c += inc;
}
assert(c == end);
diff --git a/sql/test/miscellaneous/Tests/simple_selects.test
b/sql/test/miscellaneous/Tests/simple_selects.test
--- a/sql/test/miscellaneous/Tests/simple_selects.test
+++ b/sql/test/miscellaneous/Tests/simple_selects.test
@@ -897,3 +897,35 @@ 1
statement ok
drop function dosomething
+
+statement ok
+start transaction
+
+statement ok
+create sequence ups INCREMENT BY 1 MINVALUE 0 MAXVALUE 10 CYCLE
+
+query I rowsort
+select next value for ups from generate_series(1,20)
+----
+0
+1
+1
+10
+2
+2
+3
+3
+4
+4
+5
+5
+6
+6
+7
+7
+8
+8
+9
+
+statement ok
+rollback
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list