Changeset: ecc5043c7767 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ecc5043c7767
Modified Files:
monetdb5/optimizer/opt_dict.c
monetdb5/optimizer/opt_for.c
Branch: Jan2022
Log Message:
Push identity function call through compression call
diffs (39 lines):
diff --git a/monetdb5/optimizer/opt_dict.c b/monetdb5/optimizer/opt_dict.c
--- a/monetdb5/optimizer/opt_dict.c
+++ b/monetdb5/optimizer/opt_dict.c
@@ -112,9 +112,9 @@ OPTdictImplementation(Client cntxt, MalB
freeInstruction(p);
done = 1;
break;
- } else if (getModuleId(p) == batRef &&
getFunctionId(p) == mirrorRef) {
- /* id = mirror(col) with col =
dict.decompress(o,u)
- * id = mirror(o) */
+ } else if ((getModuleId(p) == batRef &&
getFunctionId(p) == mirrorRef) || (getModuleId(p) == batcalcRef &&
getFunctionId(p) == identityRef)) {
+ /* id = mirror/identity(col) with col =
dict.decompress(o,u)
+ * id = mirror/identity(o) */
InstrPtr r = copyInstruction(p);
getArg(r, j) = varisdict[k];
pushInstruction(mb,r);
diff --git a/monetdb5/optimizer/opt_for.c b/monetdb5/optimizer/opt_for.c
--- a/monetdb5/optimizer/opt_for.c
+++ b/monetdb5/optimizer/opt_for.c
@@ -108,16 +108,15 @@ OPTforImplementation(Client cntxt, MalBl
freeInstruction(p);
done = 1;
break;
- } else if (getModuleId(p) == batRef &&
getFunctionId(p) == mirrorRef) {
- /* id = mirror(col) with col =
for.decompress(o,min_val)
- * id = mirror(o) */
+ } else if ((getModuleId(p) == batRef &&
getFunctionId(p) == mirrorRef) || (getModuleId(p) == batcalcRef &&
getFunctionId(p) == identityRef)) {
+ /* id = mirror/identity(col) with col =
for.decompress(o,min_val)
+ * id = mirror/identity(o) */
InstrPtr r = copyInstruction(p);
getArg(r, j) = varisfor[k];
pushInstruction(mb,r);
freeInstruction(p);
done = 1;
break;
- //} else if (isSelect(p)) {
} else// if (isSelect(p)) {
if (getFunctionId(p) == thetaselectRef)
{
/* pos = thetaselect(col, cand,
l, ...) with col = for.decompress(o, minval)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list