Changeset: 0c0c2090ae53 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0c0c2090ae53
Modified Files:
monetdb5/optimizer/opt_dict.c
monetdb5/optimizer/opt_prelude.c
monetdb5/optimizer/opt_prelude.h
sql/backends/monet5/sql.c
sql/backends/monet5/sql_statement.c
Branch: dict
Log Message:
put the dict.* stuff into it own module
diffs (91 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
@@ -42,7 +42,7 @@ OPTdictImplementation(Client cntxt, MalB
p = old[i];
if( p == 0)
continue; //left behind by others?
- if (p->retc == 1 && getModuleId(p) == sqlRef &&
getFunctionId(p) == dict_decompressRef) {
+ if (p->retc == 1 && getModuleId(p) == dictRef &&
getFunctionId(p) == decompressRef) {
// remember we have encountered a dict decompress
function
k = getArg(p,0);
varisdict[k] = getArg(p,1);
@@ -75,10 +75,15 @@ OPTdictImplementation(Client cntxt, MalB
pushInstruction(mb,r);
done = 1;
break;
+ //} else if (getModuleId(p) == algebraRef &&
getFunctionId(p) == selectRef) {
+ /* pos = select(col, cand, l, h, ...)
with col = dict.decompress(o,u)
+ * tp = select(u, nil, l, h, ...)
+ * tp2 = typeconver(tp) -> bte,sht,int
+ * pos = semijoin(o, cand, tp2, nil) */
} else {
/* need to decompress */
int tpe = getArgType(mb, p, j);
- InstrPtr r = newInstruction(mb, sqlRef,
dict_decompressRef);
+ InstrPtr r = newInstruction(mb,
dictRef, decompressRef);
getArg(r, 0) = newTmpVariable(mb, tpe);
r = addArgument(mb, r, varisdict[k]);
r = addArgument(mb, r, vardictvalue[k]);
diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -107,7 +107,8 @@ const char *deleteRef;
const char *deltaRef;
const char *dense_rankRef;
const char *deregisterRef;
-const char *dict_decompressRef;
+const char *dictRef;
+const char *decompressRef;
const char *diffcandRef;
const char *differenceRef;
const char *disconnectRef;
@@ -418,7 +419,8 @@ void optimizerInit(void)
deltaRef = putName("delta");
dense_rankRef = putName("dense_rank");
deregisterRef = putName("deregister");
- dict_decompressRef = putName("dict_decompress");
+ dictRef = putName("dict");
+ decompressRef = putName("decompress");
diffcandRef= putName("diffcand");
differenceRef = putName("difference");
disconnectRef= putName("disconnect");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -103,7 +103,8 @@ mal_export const char *deleteRef;
mal_export const char *deltaRef;
mal_export const char *dense_rankRef;
mal_export const char *deregisterRef;
-mal_export const char *dict_decompressRef;
+mal_export const char *dictRef;
+mal_export const char *decompressRef;
mal_export const char *diffcandRef;
mal_export const char *differenceRef;
mal_export const char *diffRef;
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -5168,8 +5168,8 @@ static mel_func sql_init_funcs[] = {
pattern("sql", "prepared_statements_args",
SQLsession_prepared_statements_args, false, "Available prepared statements'
arguments in the current session", args(9,9,
batarg("statementid",int),batarg("type",str),batarg("digits",int),batarg("scale",int),batarg("inout",bte),batarg("number",int),batarg("schema",str),batarg("table",str),batarg("column",str))),
pattern("sql", "copy_rejects", COPYrejects, false, "", args(4,4,
batarg("rowid",lng),batarg("fldid",int),batarg("msg",str),batarg("inp",str))),
pattern("sql", "copy_rejects_clear", COPYrejects_clear, true, "", noargs),
- pattern("sql", "dict_compress", DICTcompress, false, "compress a sql column",
args(0, 3, arg("schema", str), arg("table", str), arg("column", str))),
- pattern("sql", "dict_decompress", DICTdecompress, false, "decompress a
dictionary compressed (sub)column", args(1, 3, batargany("", 1), batargany("o",
0), batargany("u", 1))),
+ pattern("dict", "compress", DICTcompress, false, "compress a sql column",
args(0, 3, arg("schema", str), arg("table", str), arg("column", str))),
+ pattern("dict", "decompress", DICTdecompress, false, "decompress a dictionary
compressed (sub)column", args(1, 3, batargany("", 1), batargany("o", 0),
batargany("u", 1))),
command("calc", "dec_round", bte_dec_round_wrap, false, "round off the value
v to nearests multiple of r", args(1,3, arg("",bte),arg("v",bte),arg("r",bte))),
pattern("batcalc", "dec_round", bte_bat_dec_round_wrap, false, "round off the
value v to nearests multiple of r", args(1,3,
batarg("",bte),batarg("v",bte),arg("r",bte))),
pattern("batcalc", "dec_round", bte_bat_dec_round_wrap, false, "round off the
value v to nearests multiple of r", args(1,4,
batarg("",bte),batarg("v",bte),arg("r",bte),batarg("s",oid))),
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -2271,7 +2271,7 @@ stmt_dict(backend *be, stmt *op1, stmt *
if (op1->nr < 0 || op2->nr < 0)
return NULL;
- q = newStmt(mb, sqlRef, dict_decompressRef);
+ q = newStmt(mb, dictRef, decompressRef);
q = pushArgument(mb, q, op1->nr);
q = pushArgument(mb, q, op2->nr);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list