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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to