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

Reply via email to