Changeset: aebd2c7b8803 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aebd2c7b8803 Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_statement.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_updates.c Branch: properties Log Message:
Merged with default diffs (truncated from 7425 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -793,3 +793,6 @@ ac8254a47e87d0be9df2a623e2c2fcf67c0f982d ac8254a47e87d0be9df2a623e2c2fcf67c0f982d Oct2020_SP1_release 929f5e280bc1532a2bfaab127ca7915dc3b69a33 Oct2020_9 929f5e280bc1532a2bfaab127ca7915dc3b69a33 Oct2020_SP2_release +742b7847cfdcea39a6c19ab29eb35471d46bb2bb Oct2020_11 +929f5e280bc1532a2bfaab127ca7915dc3b69a33 Oct2020_SP2_release +742b7847cfdcea39a6c19ab29eb35471d46bb2bb Oct2020_SP2_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -823,6 +823,10 @@ else fi %changelog +* Mon Jan 18 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.11-20210118 +- Rebuilt. +- GH#3772: Any user can grant a role. + * Mon Jan 11 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.9-20210111 - Rebuilt. - GH#6862: mserver5: crashes under update_table() when calling lib_sql.so 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 @@ -675,10 +675,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "subslice", "command algebra.subslice(X_1:bat[:any_1], X_2:lng, X_3:lng):bat[:oid] ", "ALGsubslice_lng;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:int, X_6:bit, X_7:lng):bat[:oid] ", "ALGthetajoin1;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_2:bat[:any_1], X_3:bat[:any_1], X_4:bat[:oid], X_5:bat[:oid], X_6:int, X_7:bit, X_8:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGthetajoin;", "" ] -[ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:any_1, X_3:str):bat[:oid] ", "ALGthetaselect1;", "" ] [ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:bat[:oid], X_3:any_1, X_4:str):bat[:oid] ", "ALGthetaselect2;", "" ] -[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1]):bat[:oid] ", "ALGunique1;", "" ] -[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique2;", "" ] +[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "BKCappend_cand_force_wrap;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid]):bat[:any_1] ", "BKCappend_cand_wrap;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bit):bat[:any_1] ", "BKCappend_force_wrap;", "" ] @@ -8544,19 +8542,12 @@ stdout of test 'MAL-signatures` in direc [ "generator", "series", "pattern generator.series(X_1:sht, X_2:sht, X_3:sht):bat[:sht] ", "VLTgenerator_table;", "" ] [ "generator", "series", "pattern generator.series(X_1:timestamp, X_2:timestamp, X_3:lng):bat[:timestamp] ", "VLTgenerator_table;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bat[:oid], X_3:bte, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bte, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:bat[:oid], X_3:dbl, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:dbl, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:bat[:oid], X_3:flt, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:flt, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:int, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:bat[:oid], X_3:lng, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:lng, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:bat[:oid], X_3:sht, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:sht, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:bat[:oid], X_3:timestamp, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:timestamp, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "geom", "Area", "command geom.Area(X_1:wkb):dbl ", "wkbArea;", "" ] [ "geom", "AsBinary", "command geom.AsBinary(X_1:wkb):str ", "wkbAsBinary;", "" ] [ "geom", "AsEWKT", "function geom.AsEWKT(w:wkb):str;", "", "" ] 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 @@ -788,10 +788,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "subslice", "command algebra.subslice(X_1:bat[:any_1], X_2:lng, X_3:lng):bat[:oid] ", "ALGsubslice_lng;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:int, X_6:bit, X_7:lng):bat[:oid] ", "ALGthetajoin1;", "" ] [ "algebra", "thetajoin", "command algebra.thetajoin(X_2:bat[:any_1], X_3:bat[:any_1], X_4:bat[:oid], X_5:bat[:oid], X_6:int, X_7:bit, X_8:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGthetajoin;", "" ] -[ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:any_1, X_3:str):bat[:oid] ", "ALGthetaselect1;", "" ] [ "algebra", "thetaselect", "command algebra.thetaselect(X_1:bat[:any_1], X_2:bat[:oid], X_3:any_1, X_4:str):bat[:oid] ", "ALGthetaselect2;", "" ] -[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1]):bat[:oid] ", "ALGunique1;", "" ] -[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique2;", "" ] +[ "algebra", "unique", "command algebra.unique(X_1:bat[:any_1], X_2:bat[:oid]):bat[:oid] ", "ALGunique;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bit):bat[:any_1] ", "BKCappend_cand_force_wrap;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid]):bat[:any_1] ", "BKCappend_cand_wrap;", "" ] [ "bat", "append", "command bat.append(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bit):bat[:any_1] ", "BKCappend_force_wrap;", "" ] @@ -11838,21 +11836,13 @@ stdout of test 'MAL-signatures` in direc [ "generator", "series", "pattern generator.series(X_1:sht, X_2:sht, X_3:sht):bat[:sht] ", "VLTgenerator_table;", "" ] [ "generator", "series", "pattern generator.series(X_1:timestamp, X_2:timestamp, X_3:lng):bat[:timestamp] ", "VLTgenerator_table;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bat[:oid], X_3:bte, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:bte], X_2:bte, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:bat[:oid], X_3:dbl, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:dbl], X_2:dbl, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:bat[:oid], X_3:flt, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:flt], X_2:flt, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:hge], X_2:bat[:oid], X_3:hge, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:hge], X_2:hge, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:int], X_2:int, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:bat[:oid], X_3:lng, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:lng], X_2:lng, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:bat[:oid], X_3:sht, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:sht], X_2:sht, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:bat[:oid], X_3:timestamp, X_4:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] -[ "generator", "thetaselect", "pattern generator.thetaselect(X_1:bat[:timestamp], X_2:timestamp, X_3:str):bat[:oid] ", "VLTgenerator_thetasubselect;", "" ] [ "geom", "Area", "command geom.Area(X_1:wkb):dbl ", "wkbArea;", "" ] [ "geom", "AsBinary", "command geom.AsBinary(X_1:wkb):str ", "wkbAsBinary;", "" ] [ "geom", "AsEWKT", "function geom.AsEWKT(w:wkb):str;", "", "" ] 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 @@ -1033,76 +1033,76 @@ str WLCstop(Client cntxt, MalBlkPtr mb, str WLCtransaction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str WLCupdate(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); int WLCused(void); -str abortRef; -str actionRef; +const char *abortRef; +const char *actionRef; InstrPtr addArgument(MalBlkPtr mb, InstrPtr p, int varid); void addMalException(MalBlkPtr mb, str msg); str addOptimizerPipe(Client cntxt, MalBlkPtr mb, const char *name); str addPipeDefinition(Client cntxt, const char *name, const char *pipe); void addtoMalBlkHistory(MalBlkPtr mb); -str affectedRowsRef; -str aggrRef; -str alarmRef; -str algebraRef; -str alter_add_range_partitionRef; -str alter_add_tableRef; -str alter_add_value_partitionRef; -str alter_constraintRef; -str alter_del_tableRef; -str alter_functionRef; -str alter_indexRef; -str alter_roleRef; -str alter_schemaRef; -str alter_seqRef; -str alter_set_tableRef; -str alter_tableRef; -str alter_triggerRef; -str alter_typeRef; -str alter_userRef; -str alter_viewRef; -str andRef; -str appendBulkRef; -str appendRef; -str append_execRef; -str append_finishRef; -str append_prepRef; -str appendidxRef; -str arrayRef; -str assertRef; -str attachRef; -str avgRef; -str bandjoinRef; -str basketRef; +const char *affectedRowsRef; +const char *aggrRef; +const char *alarmRef; +const char *algebraRef; +const char *alter_add_range_partitionRef; +const char *alter_add_tableRef; +const char *alter_add_value_partitionRef; +const char *alter_constraintRef; +const char *alter_del_tableRef; +const char *alter_functionRef; +const char *alter_indexRef; +const char *alter_roleRef; +const char *alter_schemaRef; +const char *alter_seqRef; +const char *alter_set_tableRef; +const char *alter_tableRef; +const char *alter_triggerRef; +const char *alter_typeRef; +const char *alter_userRef; +const char *alter_viewRef; +const char *andRef; +const char *appendBulkRef; +const char *appendRef; +const char *append_execRef; +const char *append_finishRef; +const char *append_prepRef; +const char *appendidxRef; +const char *arrayRef; +const char *assertRef; +const char *attachRef; +const char *avgRef; +const char *bandjoinRef; +const char *basketRef; void batAfterCall(ValPtr v, ValPtr bak); void batBeforeCall(ValPtr v, ValPtr bak); -str batRef; -str batalgebraRef; -str batcalcRef; -str batcapiRef; -str batmalRef; -str batmmathRef; -str batmtimeRef; -str batpyapi3Ref; -str batrapiRef; -str batsqlRef; -str batstrRef; +const char *batRef; +const char *batalgebraRef; +const char *batcalcRef; +const char *batcapiRef; +const char *batmalRef; +const char *batmmathRef; +const char *batmtimeRef; +const char *batpyapi3Ref; +const char *batrapiRef; +const char *batsqlRef; +const char *batstrRef; bool batstr_func_has_candidates(const char *func); -str batxmlRef; -str bbpRef; -str betweenRef; -str bindRef; -str binddbatRef; -str bindidxRef; +const char *batxmlRef; +const char *bbpRef; +const char *betweenRef; +const char *bindRef; +const char *binddbatRef; +const char *bindidxRef; var_t blobsize(size_t nitems); -str blockRef; -str bpmRef; -str bstreamRef; -str bulk_rotate_xor_hashRef; -str calcRef; +const char *blockRef; +const char *bpmRef; +const char *bstreamRef; +const char *bulk_rotate_xor_hashRef; +const char *calcRef; str callMAL(Client cntxt, MalBlkPtr mb, MalStkPtr *glb, ValPtr argv[], char debug); str callString(Client c, str s, int listing); -str capiRef; -str catalogRef; +const char *capiRef; +const char *catalogRef; str chkDeclarations(MalBlkPtr mb); str chkFlow(MalBlkPtr mb); int chkInstruction(Module s, MalBlkPtr mb, InstrPtr p); @@ -1111,101 +1111,101 @@ str chkTypes(Module s, MalBlkPtr mb, int str cleanupTraces(Client cntxt); void clearTrace(Client cntxt); void clearVariable(MalBlkPtr mb, int varid); -str clear_tableRef; +const char *clear_tableRef; int cloneVariable(MalBlkPtr dst, MalBlkPtr src, int varid); str closeProfilerStream(Client cntxt); -str closeRef; +const char *closeRef; void clrDeclarations(MalBlkPtr mb); void clrFunction(InstrPtr p); void clrInstruction(InstrPtr p); -str columnBindRef; -str columnRef; -str comment_onRef; -str commitRef; +const char *columnBindRef; +const char *columnRef; +const char *comment_onRef; +const char *commitRef; str compileAllOptimizers(Client cntxt); str compileOptimizer(Client cntxt, const char *name); str compileString(Symbol *fcn, Client c, str s); -str connectRef; -str contextRef; +const char *connectRef; +const char *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; -str countRef; -str count_no_nilRef; +const char *copyRef; +const char *copy_fromRef; +const char *countRef; +const char *count_no_nilRef; int cpyConstant(MalBlkPtr mb, VarPtr vr); str createException(enum malexception, const char *, _In_z_ _Printf_format_string_ const char *, ...) __attribute__((__format__(__printf__, 3, 4))) __attribute__((__returns_nonnull__)); str createMalException(MalBlkPtr, int, enum malexception, _In_z_ _Printf_format_string_ const char *, ...) __attribute__((__format__(__printf__, 4, 5))) __attribute__((__returns_nonnull__)); -str createRef; -str create_constraintRef; -str create_functionRef; -str create_indexRef; -str create_roleRef; -str create_schemaRef; -str create_seqRef; -str create_tableRef; -str create_triggerRef; -str create_typeRef; -str create_userRef; -str create_viewRef; -str crossRef; -str cume_distRef; -str dataflowRef; -str dateRef; -str dblRef; +const char *createRef; +const char *create_constraintRef; +const char *create_functionRef; +const char *create_indexRef; +const char *create_roleRef; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list