Changeset: 27a6915f01f7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=27a6915f01f7 Modified Files: sql/server/rel_semantic.c Branch: indirect-privs Log Message:
Merged scoping2 into indirect-privs diffs (truncated from 21190 to 300 lines): diff --git a/README.rst b/README.rst --- a/README.rst +++ b/README.rst @@ -131,10 +131,16 @@ Bugs ---- We of course hope there aren't any, but if you do find one, you can -report bugs in our `bugzilla`__ instance. +report bugs in our `github`__ repository. + +Please note that we do not accept github Pull Requests. See the +`developers`__ page for instructions. -.. _bugzilla: https://bugs.monetdb.org -__ bugzilla_ +.. _github: https://github.com/MonetDB/MonetDB/issues +__ github_ + +.. _developers: https://www.monetdb.org/Developers +__ developers_ Copyright Notice ================ diff --git a/buildtools/coverity_model.c b/buildtools/coverity_model.c --- a/buildtools/coverity_model.c +++ b/buildtools/coverity_model.c @@ -156,6 +156,15 @@ createMalException(MalBlkPtr mb, int pc, return p; } +char * +dupError(const char *err) +{ + char *p; + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} + void freeException(char *p) { @@ -164,3 +173,13 @@ freeException(char *p) __coverity_mark_as_afm_freed__(p, "freeException"); } } + +char * +concatErrors(char *err1, const char *err2) +{ + freeException(err1); + char *p; + p = __coverity_alloc_nosize__(); + __coverity_mark_as_afm_allocated__(p, "freeException"); + return p; +} 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 @@ -6638,6 +6638,7 @@ stdout of test 'MAL-signatures` in direc [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:str, X_2:bat[:int], X_3:bat[:oid]):bat[:int] ", "STRbatWChrAt_strcst;", "" ] [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:bat[:str], X_2:int):bat[:int] ", "STRbatWChrAtcst;", "" ] [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:bat[:str], X_2:int, X_3:bat[:oid]):bat[:int] ", "STRbatWChrAtcst;", "" ] +[ "battxtsim", "similarity", "command battxtsim.similarity(X_1:bat[:str], X_2:bat[:str]):bat[:dbl] ", "fstrcmp0_impl_bulk;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:bte], X_2:bat[:bte]):bat[:sht] ", "UDFBATfuse;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:int], X_2:bat[:int]):bat[:lng] ", "UDFBATfuse;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:sht], X_2:bat[:sht]):bat[:int] ", "UDFBATfuse;", "" ] @@ -9429,20 +9430,6 @@ stdout of test 'MAL-signatures` in direc [ "sql", "sessions", "pattern sql.sessions() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ", "sql_sessions_wrap;", "" ] [ "sql", "setVariable", "unsafe pattern sql.setVariable(X_1:int, X_2:str, X_3:str, X_4:any_1):int ", "setVariable;", "" ] [ "sql", "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int ", "SQLset_protocol;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:int):void ", "SQLsetmemorylimit;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:sht, X_2:int):void ", "SQLsetmemorylimit;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, X_2:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:bte, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:sht, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:bte, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:int, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:sht, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int):void ", "SQLsetworkerlimit;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int, X_2:int):void ", "SQLsetworkerlimit;", "" ] [ "sql", "shrink", "unsafe pattern sql.shrink(X_1:str, X_2:str):void ", "SQLshrink;", "" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte):str ", "SQLshutdown_wrap;", "" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte, X_2:bit):str ", "SQLshutdown_wrap;", "" ] @@ -9526,7 +9513,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "alter_seq", "pattern sqlcatalog.alter_seq(X_1:str, X_2:str, X_3:ptr, X_4:lng):void ", "SQLalter_seq;", "" ] [ "sqlcatalog", "alter_set_table", "pattern sqlcatalog.alter_set_table(X_1:str, X_2:str, X_3:int):void ", "SQLalter_set_table;", "" ] [ "sqlcatalog", "alter_table", "pattern sqlcatalog.alter_table(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLalter_table;", "" ] -[ "sqlcatalog", "alter_user", "pattern sqlcatalog.alter_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str):void ", "SQLalter_user;", "" ] +[ "sqlcatalog", "alter_user", "pattern sqlcatalog.alter_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str, X_6:str):void ", "SQLalter_user;", "" ] [ "sqlcatalog", "comment_on", "pattern sqlcatalog.comment_on(X_1:int, X_2:str):void ", "SQLcomment_on;", "" ] [ "sqlcatalog", "create_function", "pattern sqlcatalog.create_function(X_1:str, X_2:str, X_3:ptr):void ", "SQLcreate_function;", "" ] [ "sqlcatalog", "create_role", "pattern sqlcatalog.create_role(X_1:str, X_2:str, X_3:int):void ", "SQLcreate_role;", "" ] @@ -9535,7 +9522,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "create_table", "pattern sqlcatalog.create_table(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLcreate_table;", "" ] [ "sqlcatalog", "create_trigger", "pattern sqlcatalog.create_trigger(X_1:str, X_2:str, X_3:str, X_4:int, X_5:int, X_6:int, X_7:str, X_8:str, X_9:str, X_10:str):void ", "SQLcreate_trigger;", "" ] [ "sqlcatalog", "create_type", "pattern sqlcatalog.create_type(X_1:str, X_2:str, X_3:str):void ", "SQLcreate_type;", "" ] -[ "sqlcatalog", "create_user", "pattern sqlcatalog.create_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str):void ", "SQLcreate_user;", "" ] +[ "sqlcatalog", "create_user", "pattern sqlcatalog.create_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str, X_6:str):void ", "SQLcreate_user;", "" ] [ "sqlcatalog", "create_view", "pattern sqlcatalog.create_view(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLcreate_view;", "" ] [ "sqlcatalog", "drop_constraint", "pattern sqlcatalog.drop_constraint(X_1:str, X_2:str, X_3:int, X_4:int):void ", "SQLdrop_constraint;", "" ] [ "sqlcatalog", "drop_function", "pattern sqlcatalog.drop_function(X_1:str, X_2:str, X_3:int, X_4:int, X_5:int):void ", "SQLdrop_function;", "" ] 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 @@ -9197,6 +9197,7 @@ stdout of test 'MAL-signatures` in direc [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:str, X_2:bat[:int], X_3:bat[:oid]):bat[:int] ", "STRbatWChrAt_strcst;", "" ] [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:bat[:str], X_2:int):bat[:int] ", "STRbatWChrAtcst;", "" ] [ "batstr", "unicodeAt", "pattern batstr.unicodeAt(X_1:bat[:str], X_2:int, X_3:bat[:oid]):bat[:int] ", "STRbatWChrAtcst;", "" ] +[ "battxtsim", "similarity", "command battxtsim.similarity(X_1:bat[:str], X_2:bat[:str]):bat[:dbl] ", "fstrcmp0_impl_bulk;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:bte], X_2:bat[:bte]):bat[:sht] ", "UDFBATfuse;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:int], X_2:bat[:int]):bat[:lng] ", "UDFBATfuse;", "" ] [ "batudf", "fuse", "command batudf.fuse(X_1:bat[:lng], X_2:bat[:lng]):bat[:hge] ", "UDFBATfuse;", "" ] @@ -12741,20 +12742,6 @@ stdout of test 'MAL-signatures` in direc [ "sql", "sessions", "pattern sql.sessions() (X_0:bat[:int], X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ", "sql_sessions_wrap;", "" ] [ "sql", "setVariable", "unsafe pattern sql.setVariable(X_1:int, X_2:str, X_3:str, X_4:any_1):int ", "setVariable;", "" ] [ "sql", "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int ", "SQLset_protocol;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:int):void ", "SQLsetmemorylimit;", "" ] -[ "sql", "setmemorylimit", "unsafe pattern sql.setmemorylimit(X_1:sht, X_2:int):void ", "SQLsetmemorylimit;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, X_2:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:str):void ", "SQLsetoptimizer;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:bte, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:int, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setquerytimeout", "unsafe pattern sql.setquerytimeout(X_1:sht, X_2:int):void ", "SQLqueryTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:bte, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:int, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setsessiontimeout", "unsafe pattern sql.setsessiontimeout(X_1:sht, X_2:int):void ", "SQLsessionTimeout;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int):void ", "SQLsetworkerlimit;", "" ] -[ "sql", "setworkerlimit", "unsafe pattern sql.setworkerlimit(X_1:int, X_2:int):void ", "SQLsetworkerlimit;", "" ] [ "sql", "shrink", "unsafe pattern sql.shrink(X_1:str, X_2:str):void ", "SQLshrink;", "" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte):str ", "SQLshutdown_wrap;", "" ] [ "sql", "shutdown", "pattern sql.shutdown(X_1:bte, X_2:bit):str ", "SQLshutdown_wrap;", "" ] @@ -12849,7 +12836,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "alter_seq", "pattern sqlcatalog.alter_seq(X_1:str, X_2:str, X_3:ptr, X_4:lng):void ", "SQLalter_seq;", "" ] [ "sqlcatalog", "alter_set_table", "pattern sqlcatalog.alter_set_table(X_1:str, X_2:str, X_3:int):void ", "SQLalter_set_table;", "" ] [ "sqlcatalog", "alter_table", "pattern sqlcatalog.alter_table(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLalter_table;", "" ] -[ "sqlcatalog", "alter_user", "pattern sqlcatalog.alter_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str):void ", "SQLalter_user;", "" ] +[ "sqlcatalog", "alter_user", "pattern sqlcatalog.alter_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str, X_6:str):void ", "SQLalter_user;", "" ] [ "sqlcatalog", "comment_on", "pattern sqlcatalog.comment_on(X_1:int, X_2:str):void ", "SQLcomment_on;", "" ] [ "sqlcatalog", "create_function", "pattern sqlcatalog.create_function(X_1:str, X_2:str, X_3:ptr):void ", "SQLcreate_function;", "" ] [ "sqlcatalog", "create_role", "pattern sqlcatalog.create_role(X_1:str, X_2:str, X_3:int):void ", "SQLcreate_role;", "" ] @@ -12858,7 +12845,7 @@ stdout of test 'MAL-signatures` in direc [ "sqlcatalog", "create_table", "pattern sqlcatalog.create_table(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLcreate_table;", "" ] [ "sqlcatalog", "create_trigger", "pattern sqlcatalog.create_trigger(X_1:str, X_2:str, X_3:str, X_4:int, X_5:int, X_6:int, X_7:str, X_8:str, X_9:str, X_10:str):void ", "SQLcreate_trigger;", "" ] [ "sqlcatalog", "create_type", "pattern sqlcatalog.create_type(X_1:str, X_2:str, X_3:str):void ", "SQLcreate_type;", "" ] -[ "sqlcatalog", "create_user", "pattern sqlcatalog.create_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str):void ", "SQLcreate_user;", "" ] +[ "sqlcatalog", "create_user", "pattern sqlcatalog.create_user(X_1:str, X_2:str, X_3:int, X_4:str, X_5:str, X_6:str):void ", "SQLcreate_user;", "" ] [ "sqlcatalog", "create_view", "pattern sqlcatalog.create_view(X_1:str, X_2:str, X_3:ptr, X_4:int):void ", "SQLcreate_view;", "" ] [ "sqlcatalog", "drop_constraint", "pattern sqlcatalog.drop_constraint(X_1:str, X_2:str, X_3:int, X_4:int):void ", "SQLdrop_constraint;", "" ] [ "sqlcatalog", "drop_function", "pattern sqlcatalog.drop_function(X_1:str, X_2:str, X_3:int, X_4:int, X_5:int):void ", "SQLdrop_function;", "" ] 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 @@ -516,6 +516,7 @@ gdk_return log_bat_clear(logger *lg, con gdk_return log_bat_persists(logger *lg, BAT *b, const char *n, char tpe, oid id); gdk_return log_bat_transient(logger *lg, const char *n, char tpe, oid id); gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, const char *n, char tpe, oid id); +lng log_save_id(logger *lg); gdk_return log_sequence(logger *lg, int seq, lng id); gdk_return log_tend(logger *lg); gdk_return log_tstart(logger *lg); @@ -525,9 +526,8 @@ gdk_return logger_cleanup(logger *lg); logger *logger_create(int debug, const char *fn, const char *logdir, int version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp); gdk_return logger_del_bat(logger *lg, log_bid bid) __attribute__((__warn_unused_result__)); void logger_destroy(logger *lg); -gdk_return logger_exit(logger *lg); log_bid logger_find_bat(logger *lg, const char *name, char tpe, oid id); -gdk_return logger_restart(logger *lg); +gdk_return logger_flush(logger *lg, lng save_id); int logger_sequence(logger *lg, int seq, lng *id); gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id) __attribute__((__warn_unused_result__)); void logger_with_ids(logger *lg); @@ -755,42 +755,8 @@ str BKCsetPersistent(void *r, const bat str BKCsetTransient(void *r, const bat *bid); str BKCshrinkBAT(bat *ret, const bat *bid, const bat *did); ssize_t BLOBtostr(str *tostr, size_t *l, const void *pin, bool external); -str CLTInfo(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTLogin(bat *ret, bat *nme); -str CLTaddUser(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTbackendsum(str *ret, str *pw); -str CLTchangePassword(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTchangeUsername(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTcheckPermission(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetClientId(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetPasswordHash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetProfile(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetScenario(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetUsername(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTgetUsers(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTmd5sum(str *ret, str *pw); -str CLTqueryTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTquit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTremoveUser(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTripemd160sum(str *ret, str *pw); -str CLTsessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CLTsessions(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetListing(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetPassword(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetPrintTimeout(void *ret, int *secs); -str CLTsetScenario(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetSessionTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetTimeout(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetmemorylimit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetoptimizer(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsetworkerlimit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsha1sum(str *ret, str *pw); -str CLTsha2sum(str *ret, str *pw, int *bits); str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTstop(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTstopSession(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTsuspend(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str CLTwakeup(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str CMDbbp(bat *ID, bat *NS, bat *TT, bat *CNT, bat *REFCNT, bat *LREFCNT, bat *LOCATION, bat *HEAT, bat *DIRTY, bat *STATUS, bat *KIND); str CMDbbpCount(bat *ret); str CMDbbpDirty(bat *ret); @@ -1166,6 +1132,7 @@ str connectRef; str contextRef; str convertConstant(malType type, ValPtr vr); InstrPtr copyInstruction(InstrPtr p); +InstrPtr copyInstructionArgs(InstrPtr p, int args); MalBlkPtr copyMalBlk(MalBlkPtr mb); str copyRef; str copy_fromRef; @@ -1467,11 +1434,14 @@ str multicolumnRef; str multiplexRef; str mvcRef; InstrPtr newAssignment(MalBlkPtr mb); +InstrPtr newAssignmentArgs(MalBlkPtr mb, int args); InstrPtr newCatchStmt(MalBlkPtr mb, str nme); InstrPtr newComment(MalBlkPtr mb, const char *val); InstrPtr newExitStmt(MalBlkPtr mb, str nme); InstrPtr newFcnCall(MalBlkPtr mb, char *mod, char *fcn); +InstrPtr newFcnCallArgs(MalBlkPtr mb, char *mod, char *fcn, int args); Symbol newFunction(str mod, str nme, int kind); +Symbol newFunctionArgs(str mod, str nme, int kind, int args); MalStkPtr newGlobalStack(int size); InstrPtr newInstruction(MalBlkPtr mb, str modnme, str fcnnme); InstrPtr newInstructionArgs(MalBlkPtr mb, str modnme, str fcnnme, int args); @@ -1495,7 +1465,6 @@ str not_uniqueRef; str nth_valueRef; str ntileRef; str oidRef; -void oldmoveInstruction(InstrPtr dst, InstrPtr src); str oltpRef; str openProfilerStream(Client cntxt); str openRef; diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -2196,7 +2196,8 @@ dump_database(Mapi mid, stream *toConsol "SELECT ui.name, " "ui.fullname, " "password_hash(ui.name), " - "s.name " + "s.name, " + "ui.schema_path " "FROM sys.db_user_info ui, " "sys.schemas s " "WHERE ui.default_schema = s.id " @@ -2439,6 +2440,7 @@ dump_database(Mapi mid, stream *toConsol const char *fullname = mapi_fetch_field(hdl, 1); const char *pwhash = mapi_fetch_field(hdl, 2); const char *sname = mapi_fetch_field(hdl, 3); + const char *spath = mapi_fetch_field(hdl, 4); mnstr_printf(toConsole, "CREATE USER "); dquoted_print(toConsole, uname, " "); @@ -2447,7 +2449,8 @@ dump_database(Mapi mid, stream *toConsol mnstr_printf(toConsole, " NAME "); squoted_print(toConsole, fullname, '\'', false); mnstr_printf(toConsole, " SCHEMA "); - dquoted_print(toConsole, describe ? sname : "sys", ";\n"); + dquoted_print(toConsole, describe ? sname : "sys", " "); + mnstr_printf(toConsole, "SCHEMA PATH '%s';\n", spath); } if (mapi_error(mid)) goto bailout; diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c --- a/clients/mapiclient/mhelp.c +++ b/clients/mapiclient/mhelp.c @@ -82,7 +82,8 @@ SQLhelp sqlhelp1[] = { "ALTER USER ident RENAME TO ident\n" "ALTER USER SET [ENCRYPTED | UNENCRYPTED] PASSWORD string USING OLD PASSWORD string\n" "ALTER USER ident WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string\n" - "ALTER USER ident [ WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string ] SET SCHEMA ident", + "ALTER USER ident [WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string] SET SCHEMA ident\n" + "ALTER USER ident [WITH [ENCRYPTED | UNENCRYPTED] PASSWORD string] SCHEMA PATH string", "ident", "See also https://www.monetdb.org/Documentation/SQLreference/Users"}, {"ANALYZE", @@ -229,7 +230,7 @@ SQLhelp sqlhelp1[] = { NULL}, {"CREATE USER", "Create a new database user", _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
