Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory
sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29108/compiler/mil
Modified Files:
Tag: M5XQ
milgen.brg
Log Message:
propagated changes of Friday Dec 04 2009
from the XQFT branch to the M5XQ branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/12/04 - sjoerd: compiler/mil/milgen.brg,1.229.2.3
propagated changes of Friday Dec 04 2009
from the development trunk to the XQFT branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/12/04 - jflokstra: compiler/mil/milgen.brg,1.232
Implemented translation to a MIL function of the following new tijah
functions.
- tijah:terms(element*) as string*
- tijah:terms(element*,node) as string*
- tijah:tf-all(string) as integer
- tijah:tf-all(string,node) as integer
- tijah:tf(element*,string) as integer
- tijah:tf(element*,string,node) as integer
- tijah:fb-terms(element*) as string*
- tijah:fb-terms(element*,node) as string*
The main MIL functions are still empty and Henning will fill te blanks.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.215.2.16
retrieving revision 1.215.2.17
diff -u -d -r1.215.2.16 -r1.215.2.17
--- milgen.brg 28 Nov 2009 21:29:13 -0000 1.215.2.16
+++ milgen.brg 4 Dec 2009 14:49:24 -0000 1.215.2.17
@@ -2046,7 +2046,8 @@
static void
pft_unpack_pfop(PFpa_op_t* dest, mvar_t *pack,
PFalg_col_t a_iter,
- PFalg_col_t a_item, PFalg_simple_type_t t_item,
+ PFalg_col_t a_item,
+ PFalg_simple_type_t t_item,
PFalg_col_t a_frag,
PFalg_col_t a_pos,
PFalg_col_t a_score
@@ -2064,6 +2065,7 @@
fetch (var (pack->name), lit_int (1))));
env_add (dest->env, a_item, t_item, v_item);
+
if ( a_frag ) {
mvar_t *v_frag = new_var (dest->refctr);
execute (
@@ -10469,7 +10471,10 @@
unpin(pfop_opt,1);
unpin(pfop_ign,1);
-
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,fc_item_a,fc_pos_a,fc_score_a);
+ if ( restype == aat_bln )
+
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,0,fc_pos_a,fc_score_a);
+ else
+
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,fc_item_a,fc_pos_a,fc_score_a);
unpin(tjqres,1);
} else if ( PFT_FUN_MANAGE(fcname) ) {
@@ -10543,6 +10548,128 @@
seqbase (new (type (mty_void), type(mty_oid) ),
lit_oid (0))));
env_add (p->env, fc_pos_a, aat_nat, p_pos);
+
+
+ } else if ( (strcmp(fcname,PFT_TERMS) == 0) ||
+ (strcmp(fcname,PFT_TERMS_O) == 0) ) {
+ mvar_t *pfop_terms;
+ mvar_t *pfop_term_opt;
+
+ pfop_terms = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TERMS_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_terms(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_terms->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_terms,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_str,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_TFALL) == 0) ||
+ (strcmp(fcname,PFT_TFALL_O) == 0) ) {
+ mvar_t *pfop_term;
+ mvar_t *pfop_term_opt;
+
+ pfop_term = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_str,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TFALL_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_tfall(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_term->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_term,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_int,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_TF) == 0) ||
+ (strcmp(fcname,PFT_TF_O) == 0) ) {
+ mvar_t *pfop_el;
+ mvar_t *pfop_str;
+ mvar_t *pfop_opt;
+
+ pfop_el = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+ pfop_str = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,1),aat_str,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_TF_O) == 0 ) {
+ pfop_opt = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,2),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_tf(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_el->name),
+ var(pfop_str->name),
+ var(pfop_opt->name)
+ )
+ )
+ );
+ unpin(pfop_el,1);
+ unpin(pfop_str,1);
+ unpin(pfop_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_int,0,fc_pos_a,0);
+ unpin(tjsres,1);
+ } else if ( (strcmp(fcname,PFT_FBTERMS) == 0) ||
+ (strcmp(fcname,PFT_FBTERMS_O) == 0) ) {
+ mvar_t *pfop_terms;
+ mvar_t *pfop_term_opt;
+
+ pfop_terms = pft_create_pfop(*(PFpa_op_t **)PFarray_at
(fun_params,0),aat_pre,PFT_NOT_ORDERED);
+
+ if ( strcmp(fcname,PFT_FBTERMS_O) == 0 ) {
+ pfop_term_opt = pft_create_pfop(*(PFpa_op_t
**)PFarray_at (fun_params,1),aat_pre,PFT_NOT_ORDERED);
+ } else {
+ pfop_term_opt =
pft_create_pfop(NULL,aat_pre,PFT_NOT_ORDERED);
+ }
+
+ mvar_t *tjsres = new_var(1);
+ execute(
+ assgn(var(tjsres->name),
+ tj_fbterms(
+ var(fc_loop->name),
+ var (PF_MIL_VAR_WS),
+ var(pfop_terms->name),
+ var(pfop_term_opt->name)
+ )
+ )
+ );
+ unpin(pfop_terms,1);
+ unpin(pfop_term_opt,1);
+
+
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_str,0,fc_pos_a,0);
+ unpin(tjsres,1);
} else if (strcmp(fcname,PFT_SCORE) == 0 ) {
mvar_t *pfop_id;
mvar_t *pfop_nodes;
------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing.
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins