Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16:/tmp/cvs-serv17024/compiler/mil
Modified Files:
milprint_summer.c
Log Message:
- add first pftijah information function:
tijah:ft-index-info ( [string*] ) as element()*
We are still discussing how to present the ft-index/collection dependencies.
- untangle ft-index/global tag/term dictionary structure in preparation of the
private tag/term dictionaries which we are planning to make.
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.365
retrieving revision 1.366
diff -u -d -r1.365 -r1.366
--- milprint_summer.c 18 Apr 2007 09:42:28 -0000 1.365
+++ milprint_summer.c 27 Apr 2007 13:36:08 -0000 1.366
@@ -8065,7 +8065,30 @@
return NORMAL;
}
#ifdef HAVE_PFTIJAH
- else if (
+ else if (PFqname_eq(fnQname,PFqname (PFns_tijah,"ft-index-info")) == 0 ) {
+ char *consistent = rc?"false":"true";
+ if (fun->arity) {
+ rc = translate2MIL (f, VALUES, cur_level, counter, L(args));
+ item_ext = kind_str(rc);
+ milprintf(f,
+ "{ # translate tijah:ft-index-info (string) as element*\n"
+ " var ret := ws_ft_index_info(ws,
iter.materialize(ipik).reverse().leftfetchjoin(item%s),%s);\n"
+ " item := ret.tmark([EMAIL PROTECTED]);\n"
+ " iter := ret.hmark([EMAIL PROTECTED]);\n",
(rc)?item_ext:val_join(STR), consistent);
+ } else {
+ milprintf(f,
+ "{ # translate tijah:ft-index-info () as element*\n"
+ " var ret :=
reverse(loop%03u).cross(ws_ft_index_info(ws,%s));\n"
+ " iter := ret.hmark([EMAIL PROTECTED]);\n"
+ " item := ret.tmark([EMAIL PROTECTED]);\n", cur_level,
consistent);
+ }
+ milprintf(f,
+ " ipik := item;\n"
+ " kind := set_kind(WS,ELEM);\n"
+ " pos := tmark_grp_unique(iter,ipik);\n"
+ "} # end of translate tijah:ft-index-info (string?) as
element*\n");
+ return NORMAL;
+ } else if (
( !PFqname_eq(fnQname, PFqname (PFns_tijah,"create-ft-index"))) ||
( !PFqname_eq(fnQname, PFqname (PFns_tijah,"extend-ft-index"))) ||
( !PFqname_eq(fnQname, PFqname (PFns_tijah,"delete-ft-index")))
@@ -8320,12 +8343,12 @@
, (ctx_counter?"true":"false"),item_ext, str_counter);
/* translate tijah_pre to pf-pre */
milprintf(f,
- " var docpre := bat(\"tj_\" + collName +
\"_doc_firstpre\").[oid]();\n"
- " var pfpre := bat(\"tj_\" + collName + \"_pfpre\");\n"
+ " var docpre := bat(\"tj_\" + GLOBAL_COLLNAME +
\"_doc_firstpre\").[oid]();\n"
+ " var pfpre := bat(\"tj_\" + GLOBAL_COLLNAME +
\"_pfpre\");\n"
" item := nexi_score.hmark([EMAIL PROTECTED]);\n"
" var frag := [find_lower](const
docpre.reverse().mark([EMAIL PROTECTED]), item);\n"
" item := item.join(pfpre).sort().tmark();\n"
- " var needed_docs := bat(\"tj_\" + collName +
\"_doc_name\").semijoin(frag.tunique());\n"
+ " var needed_docs := bat(\"tj_\" + GLOBAL_COLLNAME +
\"_doc_name\").semijoin(frag.tunique());\n"
" lock_unset(tijah_lock); tijah_lock := lock_nil;\n"
" var loaded_docs := ws.fetch(OPEN_NAME).reverse();\n"
" var docs_to_load :=
kdiff(needed_docs.reverse(),loaded_docs).hmark([EMAIL PROTECTED]);\n"
@@ -8590,12 +8613,18 @@
* @param c the Core node containing the rest of the subtree
* @result the kind indicating, which result interface is chosen
*/
+
+static int logcnt = 0;
+
static int
translate2MIL (opt_t *f, int code, int cur_level, int counter, PFcnode_t *c)
{
char *descending;
int rc=NORMAL, rcode;
+ int logid = logcnt++;
+
+ milprintf(f,"tj_log(\"+ mps(start-%d)\\n\",0);\n",logid);
assert(c);
switch (c->kind)
{
@@ -9106,6 +9135,7 @@
c->kind);
break;
}
+ milprintf(f,"tj_log(\"+ mps(finish-%d)\\n\",0);\n",logid);
return rc;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins