Changeset: fed16a283c15 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fed16a283c15
Added Files:
sql/test/rename/Tests/All
sql/test/rename/Tests/rename00.py
sql/test/rename/Tests/rename00.stable.err
sql/test/rename/Tests/rename00.stable.out
sql/test/rename/Tests/rename01.sql
sql/test/rename/Tests/rename01.stable.err
sql/test/rename/Tests/rename01.stable.out
sql/test/rename/Tests/rename02.sql
sql/test/rename/Tests/rename02.stable.err
sql/test/rename/Tests/rename02.stable.out
sql/test/rename/Tests/rename03.sql
sql/test/rename/Tests/rename03.stable.err
sql/test/rename/Tests/rename03.stable.out
sql/test/rename/Tests/rename04.sql
sql/test/rename/Tests/rename04.stable.err
sql/test/rename/Tests/rename04.stable.out
sql/test/rename/Tests/rename05.sql
sql/test/rename/Tests/rename05.stable.err
sql/test/rename/Tests/rename05.stable.out
sql/test/rename/Tests/rename06.sql
sql/test/rename/Tests/rename06.stable.err
sql/test/rename/Tests/rename06.stable.out
Modified Files:
NT/monetdb_config.h.in
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
clients/mapiclient/mhelp.c
clients/mapilib/mapi.c
clients/mapilib/mapi.h
common/stream/stream.c
configure.ag
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
monetdb5/mal/mal_client.c
monetdb5/mal/mal_client.h
monetdb5/mal/mal_session.c
monetdb5/modules/mal/wlc.mal
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
monetdb5/optimizer/opt_projectionpath.c
sql/ChangeLog
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql.mal
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_cat.h
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_result.h
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
sql/backends/monet5/sqlcatalog.mal
sql/backends/monet5/vaults/bam/bam_db_interface.c
sql/backends/monet5/wlr.mal
sql/benchmarks/tpch/load-sf-0.01-LOCKED.sql
sql/benchmarks/tpch/load-sf-0.01.sql
sql/benchmarks/tpch/load-sf-1.sql
sql/common/sql_changeset.c
sql/common/sql_list.c
sql/common/sql_types.c
sql/include/sql_catalog.h
sql/include/sql_list.h
sql/include/sql_relation.h
sql/server/rel_optimizer.c
sql/server/rel_schema.c
sql/server/rel_semantic.c
sql/server/rel_sequence.c
sql/server/rel_updates.c
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.h
sql/server/sql_parser.y
sql/server/sql_partition.c
sql/server/sql_partition.h
sql/server/sql_scan.c
sql/storage/bat/bat_storage.c
sql/storage/sql_storage.h
sql/storage/store.c
sql/storage/store_sequence.c
sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
sql/test/BugTracker-2018/Tests/remote-table-where-is-null.Bug-6601.py
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/systemfunctions.stable.out.int128
sql/test/Users/Tests/copyinto.stable.err
sql/test/Users/Tests/copyinto.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.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/pg_regress/Tests/alter_table.stable.err
sql/test/pg_regress/Tests/alter_table.stable.out
sql/test/pg_regress/Tests/drop.stable.err
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out.powerpc64.int128
testing/exportutils.py
Branch: analytics
Log Message:
Merge with default.
diffs (truncated from 8275 to 300 lines):
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -910,5 +910,6 @@ typedef __uint128_t uhge;
#define PROMPT1 "\001\001\n" /* prompt: ready for new query
*/
#define PROMPT2 "\001\002\n" /* prompt: more data needed */
+#define PROMPT3 "\001\003\n" /* prompt: get file content */
#endif /* _SEEN_MONETDB_CONFIG_H */
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -11028,7 +11028,7 @@ Ready.
[ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str,
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",
"mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ]
[ "sql", "clear_table", "pattern sql.clear_table(sname:str,
tname:str):lng ", "mvc_clear_table_wrap;", "Clear the table
sname.tname." ]
[ "sql", "commit", "pattern sql.commit():void ", "SQLcommit;",
"Trigger the commit operation for a MAL block" ]
-[ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str,
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int,
best:int, fwf:str):bat[:any]... ", "mvc_import_table_wrap;",
"Import a table from bstream s with the \n\tgiven tuple and seperators
(sep/rsep)" ]
+[ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str,
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int,
best:int, fwf:str, onclient:int):bat[:any]... ", "mvc_import_table_wrap;",
"Import a table from bstream s with the \n\tgiven tuple and seperators
(sep/rsep)" ]
[ "sql", "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng],
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", "" ]
[ "sql", "copy_rejects_clear", "pattern sql.copy_rejects_clear():void
", "COPYrejects_clear;", "" ]
[ "sql", "count", "pattern sql.count(b:any_1, ignils:bit, s:lng,
e:lng):lng ", "SQLcount;", "return count of groups" ]
@@ -11079,7 +11079,7 @@ Ready.
[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ",
"mvc_getVersion;", "Return the database version identifier for a client."
]
[ "sql", "get_value", "pattern sql.get_value(sname:str,
sequence:str):lng ", "mvc_get_value;", "return the current value of the
sequence" ]
[ "sql", "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",
"mvc_grow_wrap;", "Resize the tid column of a declared table." ]
-[ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str,
fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "Import a
table from the files (fname)" ]
+[ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str,
onclient:int, fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;",
"Import a table from the files (fname)" ]
[ "sql", "include", "pattern sql.include(fname:str):void ",
"SQLinclude;", "Compile and execute a sql statements on the file" ]
[ "sql", "init", "pattern sql.init():void ", "SQLinitEnvironment;",
"Initialize the environment for MAL" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row in
the partition or 'd' if non existent" ]
@@ -11259,6 +11259,9 @@ Ready.
[ "sqlcatalog", "grant", "pattern sqlcatalog.grant(sname:str,
tbl:str, grantee:str, privs:int, cname:str, gr:int, grantor:int):void ",
"SQLgrant;", "Catalog operation grant" ]
[ "sqlcatalog", "grant_function", "pattern
sqlcatalog.grant_function(sname:str, fcnid:int, grantee:str, privs:int,
grant:int, grantor:int):void ", "SQLgrant_function;", "Catalog
operation grant_function" ]
[ "sqlcatalog", "grant_roles", "pattern
sqlcatalog.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ",
"SQLgrant_roles;", "Catalog operation grant_roles" ]
+[ "sqlcatalog", "rename_column", "pattern
sqlcatalog.rename_column(sname:str, tname:str, cname:str, newnme:str):void ",
"SQLrename_column;", "Catalog operation rename_column" ]
+[ "sqlcatalog", "rename_schema", "pattern
sqlcatalog.rename_schema(sname:str, newnme:str):void ",
"SQLrename_schema;", "Catalog operation rename_schema" ]
+[ "sqlcatalog", "rename_table", "pattern
sqlcatalog.rename_table(sname:str, tname:str, newnme:str):void ",
"SQLrename_table;", "Catalog operation rename_table" ]
[ "sqlcatalog", "rename_user", "pattern
sqlcatalog.rename_user(sname:str, newnme:str, action:int):void ",
"SQLrename_user;", "Catalog operation rename_user" ]
[ "sqlcatalog", "revoke", "pattern sqlcatalog.revoke(sname:str,
tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",
"SQLrevoke;", "Catalog operation revoke" ]
[ "sqlcatalog", "revoke_function", "pattern
sqlcatalog.revoke_function(sname:str, fcnid:int, grantee:str, privs:int,
grant:int, grantor:int):void ", "SQLrevoke_function;", "Catalog
operation revoke_function" ]
@@ -11490,6 +11493,9 @@ Ready.
[ "wlc", "master", "pattern wlc.master():void ", "WLCmaster;",
"Activate the workload-capture-replay process" ]
[ "wlc", "master", "pattern wlc.master(path:str):void ",
"WLCmaster;", "Activate the workload-capture-replay process. Use a different
location for the logs." ]
[ "wlc", "query", "pattern wlc.query(q:str):void ",
"WLCquery;", "Keep the queries for replay." ]
+[ "wlc", "rename_column", "pattern wlc.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation
rename_column" ]
+[ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema"
]
+[ "wlc", "rename_table", "pattern wlc.rename_table(sname:str, tname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_table"
]
[ "wlc", "rename_user", "pattern wlc.rename_user(sname:str, newnme:str,
action:int):void ", "WLCgeneric;", "Catalog operation rename_user" ]
[ "wlc", "revoke", "pattern wlc.revoke(sname:str, tbl:str,
grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",
"WLCgeneric;", "Catalog operation revoke" ]
[ "wlc", "revoke_function", "pattern wlc.revoke_function(sname:str,
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",
"WLCgeneric;", "Catalog operation revoke_function" ]
@@ -11547,6 +11553,9 @@ Ready.
[ "wlr", "grant", "pattern wlr.grant(sname:str, tbl:str,
grantee:str, privs:int, cname:str, gr:int, grantor:int):void ", "WLRgeneric;",
"Catalog operation grant" ]
[ "wlr", "grant_function", "pattern wlr.grant_function(sname:str,
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",
"WLRgeneric;", "Catalog operation grant_function" ]
[ "wlr", "grant_roles", "pattern wlr.grant_roles(sname:str, auth:str,
grantor:int, admin:int):void ", "WLRgeneric;", "Catalog operation
grant_roles" ]
+[ "wlr", "rename_column", "pattern wlr.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation
rename_column" ]
+[ "wlr", "rename_schema", "pattern wlr.rename_schema(sname:str,
newnme:str):void ", "WLRgeneric;", "Catalog operation rename_schema"
]
+[ "wlr", "rename_table", "pattern wlr.rename_table(sname:str, tname:str,
newnme:str):void ", "WLRgeneric;", "Catalog operation rename_table"
]
[ "wlr", "rename_user", "pattern wlr.rename_user(sname:str, newnme:str,
action:int):void ", "WLRgeneric;", "Catalog operation rename_user" ]
[ "wlr", "replicate", "pattern wlr.replicate():void ",
"WLRreplicate;", "Roll the snapshot forward to an up-to-date clone"
]
[ "wlr", "replicate", "pattern wlr.replicate(dbname:str):void ",
"WLRreplicate;", "Roll the snapshot forward to an up-to-date clone"
]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -15263,7 +15263,7 @@ Ready.
[ "sql", "bind_idxbat", "pattern sql.bind_idxbat(mvc:int, schema:str,
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",
"mvc_bind_idxbat_wrap;", "Bind the 'schema.table.index' BAT with
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates" ]
[ "sql", "clear_table", "pattern sql.clear_table(sname:str,
tname:str):lng ", "mvc_clear_table_wrap;", "Clear the table
sname.tname." ]
[ "sql", "commit", "pattern sql.commit():void ", "SQLcommit;",
"Trigger the commit operation for a MAL block" ]
-[ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str,
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int,
best:int, fwf:str):bat[:any]... ", "mvc_import_table_wrap;",
"Import a table from bstream s with the \n\tgiven tuple and seperators
(sep/rsep)" ]
+[ "sql", "copy_from", "pattern sql.copy_from(t:ptr, sep:str,
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int,
best:int, fwf:str, onclient:int):bat[:any]... ", "mvc_import_table_wrap;",
"Import a table from bstream s with the \n\tgiven tuple and seperators
(sep/rsep)" ]
[ "sql", "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng],
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", "" ]
[ "sql", "copy_rejects_clear", "pattern sql.copy_rejects_clear():void
", "COPYrejects_clear;", "" ]
[ "sql", "count", "pattern sql.count(b:any_1, ignils:bit, s:lng,
e:lng):lng ", "SQLcount;", "return count of groups" ]
@@ -15307,15 +15307,15 @@ Ready.
[ "sql", "exportHead", "pattern sql.exportHead(s:streams,
res_id:int):void ", "mvc_export_head_wrap;", "Export a result (in
order) to stream s" ]
[ "sql", "exportOperation", "pattern sql.exportOperation():void ",
"mvc_export_operation_wrap;", "Export result of schema/transaction queries"
]
[ "sql", "exportResult", "pattern sql.exportResult(s:streams,
res_id:int):void ", "mvc_export_result_wrap;", "Export a result (in
order) to stream s" ]
-[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, tbl:bat[:str], attr:bat[:str],
tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int ",
"mvc_export_row_wrap;", "Prepare a table result set for the COPY INTO stream"
]
-[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, tbl:bat[:str], attr:bat[:str],
tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:bat[:any]...):int ",
"mvc_export_table_wrap;", "Prepare a table result set for the COPY INTO
stream" ]
+[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, tbl:bat[:str],
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int
", "mvc_export_row_wrap;", "Prepare a table result set for the COPY INTO
stream" ]
+[ "sql", "export_table", "pattern sql.export_table(fname:str, fmt:str,
colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, tbl:bat[:str],
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int],
cols:bat[:any]...):int ", "mvc_export_table_wrap;", "Prepare a table
result set for the COPY INTO stream" ]
[ "sql", "first_value", "pattern sql.first_value(b:any_1, s:lng,
e:lng):any_1 ", "SQLfirst_value;", "return the first value of
groups" ]
[ "sql", "flush_log", "command sql.flush_log():void ",
"SQLflush_log;", "flush the log now" ]
[ "sql", "getVariable", "pattern sql.getVariable(mvc:int,
varname:str):any_1 ", "getVariable;", "Get the value of a session variable" ]
[ "sql", "getVersion", "command sql.getVersion(clientid:int):lng ",
"mvc_getVersion;", "Return the database version identifier for a client."
]
[ "sql", "get_value", "pattern sql.get_value(sname:str,
sequence:str):lng ", "mvc_get_value;", "return the current value of the
sequence" ]
[ "sql", "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",
"mvc_grow_wrap;", "Resize the tid column of a declared table." ]
-[ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str,
fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "Import a
table from the files (fname)" ]
+[ "sql", "importTable", "pattern sql.importTable(sname:str, tname:str,
onclient:int, fname:str...):bat[:any]... ", "mvc_bin_import_table_wrap;",
"Import a table from the files (fname)" ]
[ "sql", "include", "pattern sql.include(fname:str):void ",
"SQLinclude;", "Compile and execute a sql statements on the file" ]
[ "sql", "init", "pattern sql.init():void ", "SQLinitEnvironment;",
"Initialize the environment for MAL" ]
[ "sql", "lag", "pattern sql.lag(b:any_1, l:any_2, d:any_1, p:any_3,
o:any_4):any_1 ", "SQLlag;", "return the value in the previous 'l' row in
the partition or 'd' if non existent" ]
@@ -15510,6 +15510,9 @@ Ready.
[ "sqlcatalog", "grant", "pattern sqlcatalog.grant(sname:str,
tbl:str, grantee:str, privs:int, cname:str, gr:int, grantor:int):void ",
"SQLgrant;", "Catalog operation grant" ]
[ "sqlcatalog", "grant_function", "pattern
sqlcatalog.grant_function(sname:str, fcnid:int, grantee:str, privs:int,
grant:int, grantor:int):void ", "SQLgrant_function;", "Catalog
operation grant_function" ]
[ "sqlcatalog", "grant_roles", "pattern
sqlcatalog.grant_roles(sname:str, auth:str, grantor:int, admin:int):void ",
"SQLgrant_roles;", "Catalog operation grant_roles" ]
+[ "sqlcatalog", "rename_column", "pattern
sqlcatalog.rename_column(sname:str, tname:str, cname:str, newnme:str):void ",
"SQLrename_column;", "Catalog operation rename_column" ]
+[ "sqlcatalog", "rename_schema", "pattern
sqlcatalog.rename_schema(sname:str, newnme:str):void ",
"SQLrename_schema;", "Catalog operation rename_schema" ]
+[ "sqlcatalog", "rename_table", "pattern
sqlcatalog.rename_table(sname:str, tname:str, newnme:str):void ",
"SQLrename_table;", "Catalog operation rename_table" ]
[ "sqlcatalog", "rename_user", "pattern
sqlcatalog.rename_user(sname:str, newnme:str, action:int):void ",
"SQLrename_user;", "Catalog operation rename_user" ]
[ "sqlcatalog", "revoke", "pattern sqlcatalog.revoke(sname:str,
tbl:str, grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",
"SQLrevoke;", "Catalog operation revoke" ]
[ "sqlcatalog", "revoke_function", "pattern
sqlcatalog.revoke_function(sname:str, fcnid:int, grantee:str, privs:int,
grant:int, grantor:int):void ", "SQLrevoke_function;", "Catalog
operation revoke_function" ]
@@ -15742,6 +15745,9 @@ Ready.
[ "wlc", "master", "pattern wlc.master():void ", "WLCmaster;",
"Activate the workload-capture-replay process" ]
[ "wlc", "master", "pattern wlc.master(path:str):void ",
"WLCmaster;", "Activate the workload-capture-replay process. Use a different
location for the logs." ]
[ "wlc", "query", "pattern wlc.query(q:str):void ",
"WLCquery;", "Keep the queries for replay." ]
+[ "wlc", "rename_column", "pattern wlc.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLCgeneric;", "Catalog operation
rename_column" ]
+[ "wlc", "rename_schema", "pattern wlc.rename_schema(sname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_schema"
]
+[ "wlc", "rename_table", "pattern wlc.rename_table(sname:str, tname:str,
newnme:str):void ", "WLCgeneric;", "Catalog operation rename_table"
]
[ "wlc", "rename_user", "pattern wlc.rename_user(sname:str, newnme:str,
action:int):void ", "WLCgeneric;", "Catalog operation rename_user" ]
[ "wlc", "revoke", "pattern wlc.revoke(sname:str, tbl:str,
grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",
"WLCgeneric;", "Catalog operation revoke" ]
[ "wlc", "revoke_function", "pattern wlc.revoke_function(sname:str,
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",
"WLCgeneric;", "Catalog operation revoke_function" ]
@@ -15799,6 +15805,9 @@ Ready.
[ "wlr", "grant", "pattern wlr.grant(sname:str, tbl:str,
grantee:str, privs:int, cname:str, gr:int, grantor:int):void ", "WLRgeneric;",
"Catalog operation grant" ]
[ "wlr", "grant_function", "pattern wlr.grant_function(sname:str,
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",
"WLRgeneric;", "Catalog operation grant_function" ]
[ "wlr", "grant_roles", "pattern wlr.grant_roles(sname:str, auth:str,
grantor:int, admin:int):void ", "WLRgeneric;", "Catalog operation
grant_roles" ]
+[ "wlr", "rename_column", "pattern wlr.rename_column(sname:str,
tname:str, cname:str, newnme:str):void ", "WLRgeneric;", "Catalog operation
rename_column" ]
+[ "wlr", "rename_schema", "pattern wlr.rename_schema(sname:str,
newnme:str):void ", "WLRgeneric;", "Catalog operation rename_schema"
]
+[ "wlr", "rename_table", "pattern wlr.rename_table(sname:str, tname:str,
newnme:str):void ", "WLRgeneric;", "Catalog operation rename_table"
]
[ "wlr", "rename_user", "pattern wlr.rename_user(sname:str, newnme:str,
action:int):void ", "WLRgeneric;", "Catalog operation rename_user" ]
[ "wlr", "replicate", "pattern wlr.replicate():void ",
"WLRreplicate;", "Roll the snapshot forward to an up-to-date clone"
]
[ "wlr", "replicate", "pattern wlr.replicate(dbname:str):void ",
"WLRreplicate;", "Roll the snapshot forward to an up-to-date clone"
]
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
@@ -304,7 +304,7 @@ size_t HEAPvmsize(Heap *h);
void IMPSdestroy(BAT *b);
lng IMPSimprintsize(BAT *b);
int MT_check_nr_cores(void);
-int MT_create_thread(MT_Id *t, void( *function)(void *), void *arg, enum
MT_thr_detach d);
+int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum
MT_thr_detach d);
void MT_exiting_thread(void);
MT_Id MT_getpid(void);
size_t MT_getrss(void);
@@ -576,6 +576,7 @@ MapiMsg mapi_seek_row(MapiHdl hdl, int64
MapiHdl mapi_send(Mapi mid, const char *cmd);
MapiMsg mapi_setAutocommit(Mapi mid, bool autocommit);
MapiMsg mapi_set_size_header(Mapi mid, int value);
+void mapi_setfilecallback(Mapi mid, char *(*getfunc)(void *priv, const char
*filename, bool binary, uint64_t offset, size_t *size), char *(*putfunc)(void
*priv, const char *filename, const void *data, size_t size), void *priv);
int mapi_split_line(MapiHdl hdl);
MapiMsg mapi_start_talking(Mapi mid);
MapiMsg mapi_store_field(MapiHdl hdl, int fnr, int outtype, void *outparam);
@@ -2566,6 +2567,9 @@ str remapRef;
str remoteRef;
void removeInstruction(MalBlkPtr mb, InstrPtr p);
void removeInstructionBlock(MalBlkPtr mb, int pc, int cnt);
+str rename_columnRef;
+str rename_schemaRef;
+str rename_tableRef;
str rename_userRef;
str replaceRef;
str replicatorRef;
@@ -2728,7 +2732,7 @@ char *buffer_get_buf(buffer *b);
void buffer_init(buffer *restrict b, char *restrict buf, size_t size);
stream *buffer_rastream(buffer *restrict b, const char *restrict name);
stream *buffer_wastream(buffer *restrict b, const char *restrict name);
-stream *callback_stream(void *restrict priv, ssize_t( *read)(void *restrict
priv, void *restrict buf, size_t elmsize, size_t cnt), void( *close)(void
*priv), void( *destroy)(void *priv), const char *restrict name);
+stream *callback_stream(void *restrict priv, ssize_t (*read)(void *restrict
priv, void *restrict buf, size_t elmsize, size_t cnt), void (*close)(void
*priv), void (*destroy)(void *priv), const char *restrict name);
void close_stream(stream *s);
stream *file_rastream(FILE *restrict fp, const char *restrict name);
stream *file_rstream(FILE *restrict fp, const char *restrict name);
@@ -2772,7 +2776,7 @@ int mnstr_readStr(stream *restrict s, ch
ssize_t mnstr_read_block(stream *restrict s, void *restrict buf, size_t
elmsize, size_t cnt);
ssize_t mnstr_readline(stream *restrict s, void *restrict buf, size_t maxcnt);
void mnstr_set_bigendian(stream *s, bool bigendian);
-void mnstr_settimeout(stream *s, unsigned int ms, bool( *func)(void));
+void mnstr_settimeout(stream *s, unsigned int ms, bool (*func)(void));
ssize_t mnstr_write(stream *restrict s, const void *restrict buf, size_t
elmsize, size_t cnt);
int mnstr_writeBte(stream *s, int8_t val);
int mnstr_writeBteArray(stream *restrict s, const int8_t *restrict val, size_t
cnt);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3027,6 +3027,123 @@ set_timezone(Mapi mid)
mapi_close_handle(hdl);
}
+struct privdata {
+ stream *f;
+ char *buf;
+};
+
+#define READSIZE (1 << 16)
+//#define READSIZE (1 << 20)
+
+static char *
+getfile(void *data, const char *filename, bool binary,
+ uint64_t offset, size_t *size)
+{
+ stream *f;
+ char *buf;
+ struct privdata *priv = data;
+ ssize_t s;
+
+ if (priv->buf == NULL) {
+ priv->buf = malloc(READSIZE);
+ if (priv->buf == NULL) {
+ *size = 0;
+ return "allocation failed";
+ }
+ }
+ buf = priv->buf;
+ if (filename != NULL) {
+ if (binary) {
+ f = open_rstream(filename);
+ assert(offset <= 1);
+ offset = 0;
+ } else {
+ f = open_rastream(filename);
+#ifdef HAVE_ICONV
+ if (encoding) {
+ stream *tmpf = f;
+ f = iconv_rstream(f, encoding, mnstr_name(f));
+ if (f == NULL)
+ close_stream(tmpf);
+ }
+#endif
+ }
+ if (f == NULL) {
+ *size = 0; /* indicate error */
+ return "cannot open file";
+ }
+ while (offset > 1) {
+ s = mnstr_readline(f, buf, READSIZE);
+ if (s < 0) {
+ close_stream(f);
+ *size = 0;
+ return "error reading file";
+ }
+ if (s == 0) {
+ /* reached EOF withing offset lines */
+ close_stream(f);
+ *size = 0;
+ return NULL;
+ }
+ if (buf[s - 1] == '\n')
+ offset--;
+ }
+ priv->f = f;
+ } else {
+ f = priv->f;
+ if (size == NULL) {
+ /* done reading before reaching EOF */
+ close_stream(f);
+ priv->f = NULL;
+ return NULL;
+ }
+ }
+ s = mnstr_read(f, buf, 1, READSIZE);
+ if (s <= 0) {
+ *size = 0;
+ close_stream(f);
+ priv->f = NULL;
+ return s < 0 ? "error reading file" : NULL;
+ }
+ *size = (size_t) s;
+ return buf;
+}
+
+static char *
+putfile(void *data, const char *filename, const void *buf, size_t bufsize)
+{
+ struct privdata *priv = data;
+
+ if (filename != NULL) {
+ if ((priv->f = open_wastream(filename)) == NULL)
+ return "cannot open file";
+#ifdef HAVE_ICONV
+ if (encoding) {
+ stream *f = priv->f;
+ priv->f = iconv_wstream(f, encoding, mnstr_name(f));
+ if (priv->f == NULL) {
+ close_stream(f);
+ return "cannot open file";
+ }
+ }
+#endif
+ if (buf == NULL || bufsize == 0)
+ return NULL; /* successfully opened file */
+ } else if (buf == NULL) {
+ /* done writing */
+ int flush = mnstr_flush(priv->f);
+ close_stream(priv->f);
+ priv->f = NULL;
+ return flush < 0 ? "error writing output" : NULL;
+ }
+ if (mnstr_write(priv->f, buf, 1, bufsize) < (ssize_t) bufsize) {
+ close_stream(priv->f);
+ priv->f = NULL;
+ return "error writing output";
+ }
+ return NULL; /* success */
+}
+
__declspec(noreturn) static void usage(const char *prog, int xit)
__attribute__((__noreturn__));
@@ -3429,6 +3546,10 @@ main(int argc, char **argv)
}
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list