Changeset: 03aae130057c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=03aae130057c
Added Files:
sql/test/BugTracker-2018/Tests/copy-into-doubled.Bug-6666.sql
sql/test/BugTracker-2018/Tests/copy-into-doubled.Bug-6666.stable.err
sql/test/BugTracker-2018/Tests/copy-into-doubled.Bug-6666.stable.out
sql/test/BugTracker-2018/Tests/global-temp-tables.Bug-6643.sql
sql/test/BugTracker-2018/Tests/global-temp-tables.Bug-6643.stable.err
sql/test/BugTracker-2018/Tests/global-temp-tables.Bug-6643.stable.out
sql/test/BugTracker-2018/Tests/lateral-join-crash.Bug-6613.sql
sql/test/BugTracker-2018/Tests/negative-sequences.Bug-6665.sql
sql/test/BugTracker-2018/Tests/negative-sequences.Bug-6665.stable.err
sql/test/BugTracker-2018/Tests/negative-sequences.Bug-6665.stable.out
Modified Files:
NT/wincompile.py
clients/Tests/exports.stable.out
clients/mapiclient/dump.c
clients/mapiclient/mclient.c
clients/mapiclient/mhelp.c
clients/mapiclient/msqldump.h
common/stream/stream.c
gdk/gdk.h
gdk/gdk_align.c
gdk/gdk_analytic_func.c
gdk/gdk_bat.c
gdk/gdk_batop.c
gdk/gdk_bbp.c
gdk/gdk_cross.c
gdk/gdk_delta.c
gdk/gdk_group.c
gdk/gdk_heap.c
gdk/gdk_imprints.c
gdk/gdk_join.c
gdk/gdk_logger.c
gdk/gdk_logger.h
gdk/gdk_orderidx.c
gdk/gdk_posix.c
gdk/gdk_posix.h
gdk/gdk_project.c
gdk/gdk_sample.c
gdk/gdk_select.c
gdk/gdk_storage.c
gdk/gdk_string.c
gdk/gdk_tm.c
gdk/gdk_unique.c
geom/monetdb5/geom.c
monetdb5/extras/rapi/converters.c.h
monetdb5/modules/atoms/batxml.c
monetdb5/modules/atoms/blob.c
monetdb5/modules/atoms/json.c
monetdb5/modules/atoms/mtime.c
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/bat5.c
monetdb5/modules/kernel/batcolor.c
monetdb5/modules/kernel/batstr.c
monetdb5/modules/kernel/microbenchmark.c
monetdb5/modules/mal/mal_io.c
monetdb5/modules/mal/manifold.c
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/mkey.c
monetdb5/modules/mal/orderidx.c
monetdb5/modules/mal/pcre.c
monetdb5/modules/mal/remote.c
monetdb5/modules/mal/tablet.c
monetdb5/optimizer/opt_prelude.c
sql/backends/monet5/UDF/capi/capi.c
sql/backends/monet5/UDF/pyapi/conversion.c
sql/backends/monet5/UDF/pyapi/convert_loops.h
sql/backends/monet5/UDF/pyapi/emit.c
sql/backends/monet5/UDF/pyapi/pyloader.c
sql/backends/monet5/UDF/udf/udf.c
sql/backends/monet5/generator/generator.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_cast_impl_up_to_flt.h
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_fround_impl.h
sql/backends/monet5/sql_rank.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_round_impl.h
sql/backends/monet5/vaults/bam/bam_lib.c
sql/backends/monet5/vaults/fits/fits.c
sql/backends/monet5/vaults/lidar/lidar.c
sql/backends/monet5/vaults/netcdf/netcdf.c
sql/scripts/75_storagemodel.sql
sql/server/rel_propagate.c
sql/server/rel_psm.c
sql/server/rel_schema.c
sql/server/rel_sequence.c
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/server/sql_semantic.c
sql/storage/sql_catalog.c
sql/storage/store.c
sql/test/BugTracker-2016/Tests/storagemodel.stable.out
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.FreeBSD
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.Windows
sql/test/BugTracker-2017/Tests/crash_correlated_subqueries_in_select.Bug-6254.stable.out
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.err
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.out
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.sql
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
sql/test/BugTracker-2018/Tests/All
sql/test/Dependencies/Tests/Dependencies.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out.int128
sql/test/Dependencies/Tests/dependency_loop.stable.out
sql/test/Dependencies/Tests/dependency_loop.stable.out.int128
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/mergetables/Tests/sqlsmith-apply-outer-join-or.sql
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.sql
sql/test/sys-schema/Tests/check_ForeignKey_referential_integrity.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.powerpc64.int128
Branch: mosaic
Log Message:
Merge with default.
diffs (truncated from 8428 to 300 lines):
diff --git a/NT/wincompile.py b/NT/wincompile.py
--- a/NT/wincompile.py
+++ b/NT/wincompile.py
@@ -51,7 +51,7 @@ def splitcommand(cmd):
del command[0]
return command
-def process(args, recursive = False):
+def process(args, recursive=False):
argv = []
for arg in args:
if not recursive and arg[:1] == '@':
@@ -64,9 +64,9 @@ def process(args, recursive = False):
else:
dirname = os.path.dirname(arg)
p = subprocess.Popen(['lib', '/nologo', '/list', arg],
- shell = False,
- universal_newlines = True,
- stdout = subprocess.PIPE)
+ shell=False,
+ universal_newlines=True,
+ stdout=subprocess.PIPE)
for f in p.stdout:
argv.append(os.path.join(dirname, f.strip()))
p.wait()
@@ -79,12 +79,8 @@ argv = process(sys.argv[1:])
if verbose:
sys.stdout.write('EXECUTE: %s\n' % ' '.join(argv))
sys.stdout.flush()
-p = subprocess.Popen(argv, shell = False, universal_newlines = True,
- stdout = subprocess.PIPE, stderr = subprocess.PIPE)
-out, err = p.communicate()
-sys.stdout.write(out)
-sys.stderr.write(err)
-if p.returncode and not verbose:
+returncode = subprocess.call(argv, shell=False)
+if returncode and not verbose:
sys.stderr.write('failed invocation: %s\n' % ' '.join(argv))
sys.stderr.flush()
-sys.exit(p.returncode)
+sys.exit(returncode)
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -9,7 +9,7 @@ stdout of test 'exports` in directory 'c
int ALIGNsynced(BAT *b1, BAT *b2);
int ATOMallocate(const char *nme);
void *ATOMdup(int id, const void *val);
-bte ATOMelmshift(int sz);
+uint8_t ATOMelmshift(int sz);
char *ATOMformat(int id, const void *val);
int ATOMindex(const char *nme);
size_t ATOMlen(int id, const void *v);
@@ -118,7 +118,7 @@ BAT *BATdiff(BAT *l, BAT *r, BAT *sl, BA
gdk_return BATextend(BAT *b, BUN newcap)
__attribute__((__warn_unused_result__));
void BATfakeCommit(BAT *b);
gdk_return BATfirstn(BAT **topn, BAT **gids, BAT *b, BAT *cands, BAT *grps,
BUN n, bool asc, bool nilslast, bool distinct)
__attribute__((__warn_unused_result__));
-int BATgetaccess(BAT *b);
+restrict_t BATgetaccess(BAT *b);
PROPrec *BATgetprop(BAT *b, enum prop_t idx);
gdk_return BATgroup(BAT **groups, BAT **extents, BAT **histo, BAT *b, BAT *s,
BAT *g, BAT *e, BAT *h) __attribute__((__warn_unused_result__));
const char *BATgroupaggrinit(BAT *b, BAT *g, BAT *e, BAT *s, oid *minp, oid
*maxp, BUN *ngrpp, BUN *startp, BUN *endp, const oid **candp, const oid
**candendp);
@@ -169,7 +169,7 @@ BAT *BATsample(BAT *b, BUN n);
BAT *BATsample_with_seed(BAT *b, BUN n, unsigned seed);
BAT *BATselect(BAT *b, BAT *s, const void *tl, const void *th, bool li, bool
hi, bool anti);
gdk_return BATsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr,
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
-gdk_return BATsetaccess(BAT *b, int mode);
+gdk_return BATsetaccess(BAT *b, restrict_t mode);
void BATsetcapacity(BAT *b, BUN cnt);
void BATsetcount(BAT *b, BUN cnt);
void BATsetprop(BAT *b, enum prop_t idx, int type, const void *v);
@@ -315,7 +315,7 @@ int MT_join_thread(MT_Id t);
int MT_lockf(char *filename, int mode, off_t off, off_t len);
void *MT_mmap(const char *path, int mode, size_t len);
int MT_munmap(void *p, size_t len);
-int MT_path_absolute(const char *path);
+bool MT_path_absolute(const char *path);
void MT_sleep_ms(unsigned int ms);
void OIDXdestroy(BAT *b);
ssize_t OIDfromStr(const char *src, size_t *len, oid **dst, bool external);
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -88,27 +88,37 @@ get_comments_clause(Mapi mid)
static int
dquoted_print(stream *f, const char *s, const char *suff)
{
- size_t n;
+ int space = 0;
+
if (mnstr_write(f, "\"", 1, 1) < 0)
return -1;
+ space++;
while (*s) {
+ size_t n;
if ((n = strcspn(s, "\"")) > 0) {
if (mnstr_write(f, s, 1, n) < 0)
return -1;
+ space += (int) n;
s += n;
}
if (*s) {
assert(*s == '"');
if (mnstr_write(f, "\"\"", 1, 2) < 0)
return -1;
+ space += 2;
s++;
}
}
if (mnstr_write(f, "\"", 1, 1) < 0)
return -1;
- if (suff != NULL && mnstr_printf(f, "%s", suff) < 0)
- return -1;
- return 0;
+ space++;
+ if (suff != NULL) {
+ int n;
+ if ((n = mnstr_printf(f, "%s", suff)) < 0)
+ return -1;
+ space += n;
+ }
+ return space;
}
static int
@@ -812,6 +822,7 @@ dump_column_definition(Mapi mid, stream
char *s, *t;
size_t maxquerylen = 1024;
int cnt;
+ int slen;
int cap;
#define CAP(X) ((cap = (int) (X)) < 0 ? 0 : cap)
@@ -861,6 +872,7 @@ dump_column_definition(Mapi mid, stream
if ((hdl = mapi_query(mid, query)) == NULL || mapi_error(mid))
goto bailout;
+ slen = mapi_get_len(hdl, 0) + 3; /* add quotes and space */
cnt = 0;
while ((mapi_fetch_row(hdl)) != 0) {
const char *c_name = mapi_fetch_field(hdl, 0);
@@ -877,7 +889,8 @@ dump_column_definition(Mapi mid, stream
mnstr_printf(toConsole, ",\n");
mnstr_printf(toConsole, "\t");
- dquoted_print(toConsole, c_name, " ");
+ space = dquoted_print(toConsole, c_name, " ");
+ mnstr_printf(toConsole, "%*s", CAP(slen - space), "");
space = dump_type(mid, toConsole, c_type, c_type_digits,
c_type_scale, hashge);
if (strcmp(c_null, "false") == 0) {
mnstr_printf(toConsole, "%*s NOT NULL",
@@ -1056,7 +1069,7 @@ dump_column_definition(Mapi mid, stream
int
describe_table(Mapi mid, const char *schema, const char *tname,
- stream *toConsole, int foreign, bool databaseDump)
+ stream *toConsole, bool foreign, bool databaseDump)
{
int cnt, table_id = 0;
MapiHdl hdl = NULL;
@@ -1421,14 +1434,15 @@ describe_sequence(Mapi mid, const char *
snprintf(query, maxquerylen,
"%s "
- "SELECT s.name, "
- "seq.name, "
- "get_value_for(s.name, seq.name), "
- "seq.\"minvalue\", "
- "seq.\"maxvalue\", "
- "seq.\"increment\", "
- "seq.\"cycle\", "
- "rem.\"remark\" "
+ "SELECT s.name, " /* 0 */
+ "seq.name, " /* 1 */
+ "get_value_for(s.name, seq.name), " /* 2 */
+ "seq.\"minvalue\", " /* 3 */
+ "seq.\"maxvalue\", " /* 4 */
+ "seq.\"increment\", " /* 5 */
+ "seq.\"cycle\", " /* 6 */
+ "seq.\"cacheinc\", " /* 7 */
+ "rem.\"remark\" " /* 8 */
"FROM sys.sequences seq LEFT OUTER JOIN sys.comments rem ON
seq.id = rem.id, "
"sys.schemas s "
"WHERE s.id = seq.schema_id "
@@ -1449,7 +1463,8 @@ describe_sequence(Mapi mid, const char *
const char *maxvalue = mapi_fetch_field(hdl, 4);
const char *increment = mapi_fetch_field(hdl, 5);
const char *cycle = mapi_fetch_field(hdl, 6);
- const char *remark = mapi_fetch_field(hdl, 7);
+ const char *cacheinc = mapi_fetch_field(hdl, 7);
+ const char *remark = mapi_fetch_field(hdl, 8);
mnstr_printf(toConsole, "CREATE SEQUENCE ");
dquoted_print(toConsole, schema, ".");
@@ -1461,6 +1476,8 @@ describe_sequence(Mapi mid, const char *
mnstr_printf(toConsole, " MINVALUE %s", minvalue);
if (strcmp(maxvalue, "0") != 0)
mnstr_printf(toConsole, " MAXVALUE %s", maxvalue);
+ if (strcmp(cacheinc, "1") != 0)
+ mnstr_printf(toConsole, " CACHE %s", cacheinc);
mnstr_printf(toConsole, " %sCYCLE;\n", strcmp(cycle, "true") ==
0 ? "" : "NO ");
comment_on(toConsole, "SEQUENCE", schema, name, NULL, remark);
if (mnstr_errnr(toConsole)) {
@@ -1750,7 +1767,7 @@ dump_table_data(Mapi mid, const char *sc
int
dump_table(Mapi mid, const char *schema, const char *tname, stream *toConsole,
- int describe, int foreign, bool useInserts, bool databaseDump)
+ bool describe, bool foreign, bool useInserts, bool databaseDump)
{
int rc;
@@ -2068,7 +2085,7 @@ dump_functions(Mapi mid, stream *toConso
}
int
-dump_database(Mapi mid, stream *toConsole, int describe, bool useInserts)
+dump_database(Mapi mid, stream *toConsole, bool describe, bool useInserts)
{
const char *start_trx = "START TRANSACTION";
const char *end = "ROLLBACK";
@@ -2569,7 +2586,7 @@ dump_database(Mapi mid, stream *toConsol
int ptype = atoi(type), dont_describe = (ptype == 3 ||
ptype == 5);
schema = strdup(schema);
name = strdup(name);
- rc = dump_table(mid, schema, name, toConsole,
dont_describe ? 1 : describe, describe, useInserts, true);
+ rc = dump_table(mid, schema, name, toConsole,
dont_describe || describe, describe, useInserts, true);
free(schema);
free(name);
} else if (query) {
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2704,7 +2704,7 @@ doFile(Mapi mid, stream *fp, bool useins
#endif
if (*line) {
mnstr_printf(toConsole, "START
TRANSACTION;\n");
- dump_table(mid, NULL, line,
toConsole, 0, 1, useinserts, false);
+ dump_table(mid, NULL, line,
toConsole, false, true, useinserts, false);
mnstr_printf(toConsole,
"COMMIT;\n");
} else
dump_database(mid, toConsole,
0, useinserts);
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -74,7 +74,7 @@ SQLhelp sqlhelp[] = {
{"ALTER SEQUENCE",
"",
"ALTER SEQUENCE ident [ AS datatype] [ RESTART [WITH start]]
[INCREMENT BY increment]\n"
- "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] |
[ [NO] CYCLE]",
+ "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NO MAXVALUE]
[CACHE cachevalue] [[NO] CYCLE]",
NULL,
"See also
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
{"ALTER USER",
@@ -206,7 +206,7 @@ SQLhelp sqlhelp[] = {
{"CREATE SEQUENCE",
"Define a new sequence generator",
"CREATE SEQUENCE ident [ AS datatype] [ START [WITH start]] [INCREMENT
BY increment]\n"
- "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] |
[ [NO] CYCLE]",
+ "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NO MAXVALUE]
[CACHE cachevalue] [[NO] CYCLE]",
NULL,
"See also
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
{"CREATE STREAM TABLE",
@@ -575,7 +575,7 @@ SQLhelp sqlhelp[] = {
{"generated_column",
NULL,
"AUTO_INCREMENT | GENERATED ALWAYS AS IDENTITY [ '(' [ AS datatype] [
START [WITH start]] [INCREMENT BY increment]\n"
- "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NOMAXVALUE] |
[ [NO] CYCLE] ')' ] ",
+ "[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue | NO MAXVALUE]
[CACHE cachevalue] [[NO] CYCLE] ')' ] ",
NULL,
"See also
https://www.monetdb.org/Documentation/Manuals/SQLreference/SerialTypes"},
{"global_privileges",
diff --git a/clients/mapiclient/msqldump.h b/clients/mapiclient/msqldump.h
--- a/clients/mapiclient/msqldump.h
+++ b/clients/mapiclient/msqldump.h
@@ -6,12 +6,12 @@
* Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V.
*/
-extern int describe_table(Mapi mid, const char *schema, const char *tname,
stream *toConsole, int foreign, bool databaseDump);
+extern int describe_table(Mapi mid, const char *schema, const char *tname,
stream *toConsole, bool foreign, bool databaseDump);
extern int describe_sequence(Mapi mid, const char *schema, const char *sname,
stream *toConsole);
extern int describe_schema(Mapi mid, const char *sname, stream *toConsole);
-extern int dump_table(Mapi mid, const char *schema, const char *tname, stream
*toConsole, int describe, int foreign, bool useInserts, bool databaseDump);
+extern int dump_table(Mapi mid, const char *schema, const char *tname, stream
*toConsole, bool describe, bool foreign, bool useInserts, bool databaseDump);
extern int dump_functions(Mapi mid, stream *toConsole, char set_schema, const
char *sname, const char *fname, const char *id);
-extern int dump_database(Mapi mid, stream *toConsole, int describe, bool
useInserts);
+extern int dump_database(Mapi mid, stream *toConsole, bool describe, bool
useInserts);
extern void dump_version(Mapi mid, stream *toConsole, const char *prefix);
/* used for backward compatibility with older server versions */
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -1011,14 +1011,6 @@ stream_gzwrite(stream *restrict s, const
return size == 0 ? -1 : (ssize_t) size;
}
-static void
-stream_gzclose(stream *s)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list