Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv21943/compiler/mil

Modified Files:
        mil.c milgen.brg milprint.c milprint_summer.c 
Log Message:
This check-in contains the PTIJAH implementation using the Algebra version of
Pathfinder. All PFTIJAH functions are implemented using the new fun_call /
fun_param operations and (after some coaching by JanR:) this worked
pretty well.

Notes:

- all functions except tijah:ft-index-info() are implemented.

- The maintainance of the Full-Text indices is now also implemented using a
  'tape'. So indices are only modified AFTER the query.

- Implementatation may be a little bit buggy because only operations on
  small synthetic test examples have been test an no real complex scenarios
  have been tried.
  The coming weeks I will try to solve these small problems but I thought it
  is better to synchronize early.

Jan Flokstra.



U milprint.c
Index: milprint.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- milprint.c  3 Apr 2008 09:20:43 -0000       1.68
+++ milprint.c  10 Apr 2008 13:38:43 -0000      1.69
@@ -355,6 +355,15 @@
     , [m_catch]    = "CATCH"
     , [m_error]    = "ERROR"
     , [m_col_name] = "col_name"
+#ifdef HAVE_PFTIJAH
+    , [m_tj_pfop]          = "ALG_tj_pfop"
+    , [m_tj_query_score]   = "ALG_tj_query_score"
+    , [m_tj_query_nodes]   = "ALG_tj_query_nodes"
+    , [m_tj_tokenize]      = "[tijah_tokenize]"
+    , [m_tj_query_handler] = "ALG_tj_query_handler"
+    , [m_tj_add_fti_tape]  = "ALG_tj_add_fti_tape"
+    , [m_tj_docmgmt_tape ] = "ALG_tj_docmgmt_tape"
+#endif
 
 };
 
@@ -1086,6 +1095,91 @@
             milprintf (")");
             break;
 
+#ifdef HAVE_PFTIJAH
+        case m_tj_tokenize:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (")");
+           break;
+        case m_tj_query_score:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (", ");
+            print_expression (n->child[3]);
+            milprintf (")");
+            break;
+        case m_tj_query_nodes:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (")");
+            break;
+        case m_tj_pfop:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (", ");
+            print_expression (n->child[3]);
+            milprintf (")");
+            break;
+        case m_tj_query_handler:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (", ");
+            print_expression (n->child[3]);
+            milprintf (", ");
+            print_expression (n->child[4]);
+            milprintf (", ");
+            print_expression (n->child[5]);
+            milprintf (", ");
+            print_expression (n->child[6]);
+            milprintf (")");
+            break;
+        case m_tj_add_fti_tape:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (", ");
+            print_expression (n->child[3]);
+            milprintf (", ");
+            print_expression (n->child[4]);
+            milprintf (", ");
+            print_expression (n->child[5]);
+            milprintf (")");
+            break;
+        case m_tj_docmgmt_tape:
+            milprintf ("%s (", ID[n->kind]);
+            print_expression (n->child[0]);
+            milprintf (", ");
+            print_expression (n->child[1]);
+            milprintf (", ");
+            print_expression (n->child[2]);
+            milprintf (", ");
+            print_expression (n->child[3]);
+            milprintf (", ");
+            print_expression (n->child[4]);
+            milprintf (", ");
+            print_expression (n->child[5]);
+            milprintf (")");
+            break;
+#endif
         default:
             debug_output;     /* Print MIL code so far when in debug mode. */
 #ifndef NDEBUG

U mil.c
Index: mil.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/mil.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- mil.c       3 Apr 2008 09:20:41 -0000       1.58
+++ mil.c       10 Apr 2008 13:38:42 -0000      1.59
@@ -347,6 +347,11 @@
         case PF_MIL_VAR_TRACE_TYPE:  return "trace_type";
         case PF_MIL_VAR_TRACE_REL:   return "trace_rel";
 
+#ifdef HAVE_PFTIJAH
+        case PF_MIL_TIJAH_SCORE_DB:  return "tijah_scoreDB";
+        case PF_MIL_TIJAH_FTI_TAPE:  return "tijah_ftiTape";
+#endif
+
         case PF_MIL_VAR_AXIS_ANC:    return "AXIS_ancestor";
         case PF_MIL_VAR_AXIS_ANC_S:  return "AXIS_ancestor_or_self";
         case PF_MIL_VAR_AXIS_CHLD:   return "AXIS_child";
@@ -1668,4 +1673,52 @@
     return wire1 (m_docmgmt_tape, args);
 }
 
+#ifdef HAVE_PFTIJAH
+
+PFmil_t *
+PFmil_tj_tokenize (const PFmil_t *a)
+{
+    return wire1 (m_tj_tokenize, a);
+}
+
+/** pftijah algebra argument  constructor */
+PFmil_t *
+PFmil_tj_pfop (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, const 
PFmil_t *d)
+{
+    return wire4 (m_tj_pfop, a, b, c, d);
+}
+
+PFmil_t *
+PFmil_tj_query_score (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, 
const PFmil_t *d)
+{
+    return wire4 (m_tj_query_score, a, b, c, d);
+}
+
+PFmil_t *
+PFmil_tj_query_nodes (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c)
+{
+    return wire3 (m_tj_query_nodes, a, b, c);
+}
+
+/** pftijah main query handler */
+PFmil_t *
+PFmil_tj_query_handler (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, 
const PFmil_t *d, const PFmil_t *e, const PFmil_t *f, const PFmil_t *g)
+{
+    return wire7 (m_tj_query_handler, a, b, c, d, e, f, g);
+}
+
+PFmil_t *
+PFmil_tj_add_fti_tape (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, 
const PFmil_t *d, const PFmil_t *e, const PFmil_t *f)
+{
+    return wire6 (m_tj_add_fti_tape, a, b, c, d, e, f);
+}
+
+PFmil_t *
+PFmil_tj_docmgmt_tape (const PFmil_t *a, const PFmil_t *b, const PFmil_t *c, 
const PFmil_t *d, const PFmil_t *e, const PFmil_t *f)
+{
+    return wire6 (m_tj_docmgmt_tape, a, b, c, d, e, f);
+}
+
+#endif
+
 /* vim:set shiftwidth=4 expandtab: */

U milgen.brg
Index: milgen.brg
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milgen.brg,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -d -r1.132 -r1.133
--- milgen.brg  8 Apr 2008 12:16:49 -0000       1.132
+++ milgen.brg  10 Apr 2008 13:38:43 -0000      1.133
@@ -84,6 +84,7 @@
 #include "pathfinder.h"
 
 #include <assert.h>
+#include <string.h>
 #include <stdio.h>
 
 #include "oops.h"
@@ -603,6 +604,7 @@
 #endif
 {
     mvar_t *mvar = env_mvar_unsafe (env, att, ty);
+
     if (mvar)
         return mvar;
 
@@ -2301,6 +2303,89 @@
 } /* fold) */
 /* fold) */
 
+#ifdef HAVE_PFTIJAH
+
+/* PFTIJAH helper functions */
+
+mvar_t
+*pft_create_pfop(PFpa_op_t *p, PFalg_simple_type_t t)
+{
+       mvar_t *res;
+       if ( p ) {
+           // res  = new_var (p->refctr);
+           res  = new_var (1);
+           mvar_t *p_iter = env_mvar (p->env, att_iter, aat_nat);
+           // fprintf(stderr,"p_iter = %d, pin = 
%d.\n",p_iter->name-83,p_iter->pins);
+           mvar_t *p_item = env_mvar (p->env, att_item, t);
+           // fprintf(stderr,"p_item = %d, pin = 
%d.\n",p_item->name-83,p_item->pins);
+           mvar_t *p_frag;
+           if ( t == aat_pre ) {
+               p_frag = env_mvar (p->env, att_item, aat_frag);
+           } else {
+               p_frag = new_var (1);
+               execute(
+                    assgn (var (p_frag->name), lit_int(0))
+               );
+           }
+           // fprintf(stderr,"p_frag = %d, pin = 
%d.\n",p_frag->name-83,p_frag->pins);
+           mvar_t *p_pos  = env_mvar (p->env, att_pos , aat_nat);
+
+           if ( !(p_iter && p_item && p_frag && p_pos) )
+               fprintf(stderr,"# XXXXXXXXXXX [%d,%d,%d,%d] not 
found.\n",(int)p_iter,(int)p_item,(int)p_frag,(int)p_pos);
+           execute (
+                assgn (var (res->name), 
+                          tj_pfop(var 
(p_iter->name),var(p_item->name),var(p_frag->name),var(p_pos->name)))
+           );
+           if ( t != aat_pre )
+               unpin(p_frag,1);
+       } else {
+           res  = new_var (1);
+           execute (
+                assgn (var (res->name), 
+                          seqbase (new (type (mty_void), type(mty_bat) ),
+                                            lit_oid (0)))
+           );
+       }
+       return res;
+}
+
+void
+pft_unpack_pfop(PFpa_op_t* dest, mvar_t *pack,
+                    PFalg_att_t a_iter,
+                    PFalg_att_t a_item, PFalg_simple_type_t t_item,
+                    PFalg_att_t a_frag,
+                    PFalg_att_t a_pos
+                   )
+{
+       mvar_t *v_iter  = new_var (dest->refctr);
+       execute (
+           assgn (var (v_iter->name),
+               fetch (var (pack->name), lit_int (0))));
+       env_add (dest->env, a_iter, aat_nat, v_iter);
+
+       mvar_t *v_item  = new_var (dest->refctr);
+       execute (
+           assgn (var (v_item->name),
+               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 (
+               assgn (var (v_frag->name),
+                   fetch (var (pack->name), lit_int (2))));
+           env_add (dest->env, a_frag, aat_frag, v_frag);
+       }
+
+       mvar_t *v_pos  = new_var (dest->refctr);
+       execute (
+           assgn (var (v_pos->name),
+               fetch (var (pack->name), lit_int (3))));
+       env_add (dest->env, a_pos, aat_nat, v_pos);
+}
+
+#endif
+
 /**
  * @brief Reducer function.
  *
@@ -2640,6 +2725,20 @@
                                     arg (var (colname->name),
                                          var (docmgmt->name)))))));
 
+#ifdef HAVE_PFTIJAH
+               // INCOMPLETE, when the print is removed it is optimized out
+                execute (
+                  if_(
+                       tj_docmgmt_tape (
+                           var(PF_MIL_TIJAH_FTI_TAPE),
+                            var (PF_MIL_VAR_WS),
+                            var (filepath->name),
+                            var (docname->name),
+                            var (colname->name),
+                            var (docmgmt->name)),
+                        nil(),print(lit_str("INCOMPLETE fooled MIL 
optimizer")))
+               );
+#endif
                 unpin (docmgmt, 1);
                 unpin (docname, 1);
                 unpin (colname, 1);
@@ -4329,6 +4428,7 @@
                                                      att3,
                                                      aat_dbl))))));
                 }   break; /* fold) */
+
                 case alg_fun_fn_string_length: /* fold( */
                 {
                     PFalg_att_t att;
@@ -8121,6 +8221,8 @@
             /*                                 */
             /***********************************/
 
+            // PFalg_att_t funcall_loop = p->sem.fun_call.iter;
+
             if (p->sem.fun_call.kind == alg_fun_call_xrpc) {
                 PFcnode_t *core_apply = (PFcnode_t *) p->sem.fun_call.ctx;
 
@@ -8149,8 +8251,305 @@
                             env_add (p->env, p->schema.items[i].name, t, v);
                         }
                 }
+            } else if (p->sem.fun_call.kind == alg_fun_call_tijah) {
+#ifdef HAVE_PFTIJAH
 
-            }
+/*
+ * PFTIJAH defines. I decided not make a seperate include file for
+ * pftijah so ensure that these defines are exactly the same as in
+ * ../algebra/builtins.c 
+ */
+
+#define MYNODEKIND  aat_pnode
+#define DOCMGMTTYPE aat_docmgmt
+
+#define PFT_FUN(F)              (strncmp(F,"pftijah_",8)==0)
+
+#define PFT_QUERY_N_XX "pftijah_query_n_xx"
+#define PFT_QUERY_N_SX "pftijah_query_n_sx"
+#define PFT_QUERY_N_XO "pftijah_query_n_xo"
+#define PFT_QUERY_N_SO "pftijah_query_n_so"
+#define PFT_QUERY_I_XX "pftijah_query_i_xx"
+#define PFT_QUERY_I_SX "pftijah_query_i_sx"
+#define PFT_QUERY_I_XO "pftijah_query_i_xo"
+#define PFT_QUERY_I_SO "pftijah_query_i_so"
+
+#define PTF_QUERY_NODES(N)      (N[14]=='n')
+#define PTF_QUERY_STARTNODES(N) (N[16]=='s')
+#define PTF_QUERY_OPTIONS(N)    (N[17]=='o')
+
+#define PFT_FUN_QUERY(F)        (strncmp(F,"pftijah_query_",14)==0)
+
+#define PFT_MANAGE_FTI_C_XX "pftijah_manage_fti_c_xx"
+#define PFT_MANAGE_FTI_C_CX "pftijah_manage_fti_c_cx"
+#define PFT_MANAGE_FTI_C_XO "pftijah_manage_fti_c_xo"
+#define PFT_MANAGE_FTI_C_CO "pftijah_manage_fti_c_co"
+#define PFT_MANAGE_FTI_E_CX "pftijah_manage_fti_e_cx"
+#define PFT_MANAGE_FTI_E_CO "pftijah_manage_fti_e_co"
+#define PFT_MANAGE_FTI_R_XX "pftijah_manage_fti_r_xx"
+#define PFT_MANAGE_FTI_R_XO "pftijah_manage_fti_r_xo"
+
+#define PFT_FUN_MANAGE(F)        (strncmp(F,"pftijah_manage_",15)==0)
+#define PFT_FUN_MANAGE_KIND(F)   (F[19])
+#define PFT_FUN_MANAGE_COLL(F)   (F[21] == 'c')
+#define PFT_FUN_MANAGE_OPT(F)    (F[22] == 'o')
+
+#define PFT_SCORE      "pftijah_score"
+#define PFT_NODES      "pftijah_nodes"
+#define PFT_INFO       "pftijah_info"
+#define PFT_TOKENIZE   "pftijah_tokenize"
+#define PFT_RESSIZE    "pftijah_ressize"
+
+           const char* fcname = PFqname_loc(p->sem.fun_call.qname);
+
+           PFalg_att_t fc_iter_a = p->schema.items[0].name; /* fixed */
+           PFalg_att_t fc_pos_a  = p->schema.items[1].name; /* fixed */
+           PFalg_att_t fc_item_a = p->schema.items[2].name; /* fixed */
+
+
+           if ( PFT_FUN(fcname) ) {
+
+               /* handle pftijah functions here */
+
+#ifdef FUNCALL_DEBUG
+               fprintf(stderr,"# PFTIJAH fun_call() HANDLER START\n");
+               fprintf(stderr,"# Called function is: %s\n",fcname);
+               fprintf(stderr,"# number of args is: 
%d\n",PFarray_last(fun_params));
+
+                fprintf(stderr,"#FUNCALL/SCHEMA:\n");
+               for (unsigned int qq=0; qq < p->schema.count; qq++) {
+                   struct PFalg_schm_item_t s_item = p->schema.items[qq];
+                    
fprintf(stderr,"#.ITEM[%d]=(%s:%d)\n",qq,PFatt_str(s_item.name),s_item.type);
+
+               }
+               for (unsigned int ii=0; ii<PFarray_last(fun_params); ii++) {
+                    fprintf(stderr,"#FUNCALL/ENV[%d]\n",ii);
+                   const PFarray_t *env = (*(PFpa_op_t **)PFarray_at 
(fun_params,ii))->env; 
+                    for (unsigned int iii = 0; iii < PFarray_last (env); 
iii++) {
+
+                       env_t entry = *(env_t *) PFarray_at ((PFarray_t *) env, 
iii);
+                       fprintf(stderr,"#.BAT[a%d] 
pin=%d\n",entry.mvar->name-83,entry.mvar->pins);
+                   }
+                }
+#endif /* FUNCALL_DEBUG */
+
+               mvar_t *fc_loop = env_mvar (L(p)->env, p->sem.fun_call.iter , 
aat_nat);
+
+               if ( PFT_FUN_QUERY(fcname) ) {
+                   int fcci = 0;
+                   PFalg_simple_type_t restype;
+                   int returnNodes = PTF_QUERY_NODES(fcname);
+
+                   mvar_t *retNodes    = new_var (1);
+                   if ( returnNodes ) {
+                       execute (assgn(var(retNodes->name),lit_bit(false)));
+                       restype = aat_pre;
+                   } else {
+                       execute (assgn(var(retNodes->name),lit_bit(true)));
+                       restype = aat_int;
+                   }
+
+                   mvar_t *pfop_sn, *pfop_query, *pfop_opt;
+
+                   if ( PTF_QUERY_STARTNODES(fcname) ) {
+                       pfop_sn    = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,fcci),aat_pre);
+                       fcci++;
+                   } else {
+                       pfop_sn    = pft_create_pfop(NULL,aat_pre);
+                   }
+
+                   pfop_query = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,fcci),aat_str);
+                   fcci++;
+
+                   if ( PTF_QUERY_OPTIONS(fcname) ) {
+                       pfop_opt   = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,fcci),aat_pre);
+                   } else {
+                       pfop_opt   = pft_create_pfop(NULL,aat_pre);
+                   }
+
+                   mvar_t *tjqres = new_var(1);
+                   execute(
+                       assgn(var(tjqres->name),
+                           tj_query_handler(
+                               var(retNodes->name),
+                               var(pfop_sn->name),
+                               var(pfop_query->name),
+                               var(pfop_opt->name),
+                               var(fc_loop->name),
+                               var (PF_MIL_VAR_WS),
+                               var (PF_MIL_TIJAH_SCORE_DB)
+                           )
+                       )
+                   );
+                   unpin(retNodes,1);
+
+                   unpin(pfop_sn,1);
+                   unpin(pfop_query,1);
+                   unpin(pfop_opt,1);
+
+                   
pft_unpack_pfop(p,tjqres,fc_iter_a,fc_item_a,restype,fc_item_a,fc_pos_a);
+
+                   unpin(tjqres,1);
+               } else if ( PFT_FUN_MANAGE(fcname) ) {
+                   int fcci = 0;
+
+                   char* opkind;
+                   
+                   switch (PFT_FUN_MANAGE_KIND(fcname) ) {
+                    case 'c':  opkind = "create";
+                               break;
+                    case 'e':  opkind = "extend";
+                               break;
+                    case 'r':  opkind = "remove";
+                               break;
+                    default:   opkind = "error";
+                   }
+
+                   mvar_t *pfop_coll, *pfop_opt;
+
+                   if ( PFT_FUN_MANAGE_COLL(fcname) ) {
+                       pfop_coll    = pft_create_pfop(*(PFpa_op_t 
**)PFarray_at (fun_params,fcci),aat_str);
+                       fcci++;
+                   } else {
+                       pfop_coll    = pft_create_pfop(NULL,aat_pre);
+                   }
+                   if ( PFT_FUN_MANAGE_OPT(fcname) ) {
+                       pfop_opt    = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,fcci),aat_pre);
+                       fcci++;
+                   } else {
+                       pfop_opt    = pft_create_pfop(NULL,aat_pre);
+                   }
+
+                    execute (
+                        assgn (var (PF_MIL_TIJAH_FTI_TAPE),
+                              tj_add_fti_tape(
+                                  lit_str(opkind),
+                                  var(pfop_coll->name),
+                                  var(pfop_opt->name),
+                                  var(fc_loop->name),
+                                  var(PF_MIL_VAR_WS),
+                                  var(PF_MIL_TIJAH_FTI_TAPE)
+                              )));
+
+                   unpin(pfop_coll,1);
+                   unpin(pfop_opt,1);
+
+                    mvar_t *p_iter  = new_var (p->refctr);
+                    execute (
+                       assgn (var (p_iter->name),
+                          seqbase (new (type (mty_void), type(mty_oid) ),
+                                            lit_oid (0))));
+                    env_add (p->env, fc_iter_a, aat_nat, p_iter);
+
+                    mvar_t *p_item1 = new_var (p->refctr);
+                    execute (
+                       assgn (var (p_item1->name),
+                          seqbase (new (type (mty_void), type(mty_lng) ),
+                                            lit_oid (0))));
+                    env_add (p->env, fc_item_a, aat_docmgmt, p_item1);
+
+                    mvar_t *p_item2 = new_var (p->refctr);
+                    execute (
+                       assgn (var (p_item2->name),
+                          seqbase (new (type (mty_void), type(mty_str) ),
+                                            lit_oid (0))));
+                    env_add (p->env, fc_item_a, aat_docnm, p_item2);
+
+                    mvar_t *p_pos  = new_var (p->refctr);
+                    execute (
+                       assgn (var (p_pos->name),
+                          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_SCORE) == 0 ) {
+                   mvar_t *pfop_id;
+                   mvar_t *pfop_nodes;
+
+                   pfop_id = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,0),aat_int);
+                   pfop_nodes = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,1),aat_pre);
+
+                   mvar_t *tjsres = new_var(1);
+                   execute(
+                       assgn(var(tjsres->name),
+                           tj_query_score(
+                               var(fc_loop->name),
+                               var(pfop_id->name),
+                               var(pfop_nodes->name),
+                               var (PF_MIL_TIJAH_SCORE_DB)
+                           )
+                       )
+                   );
+                   unpin(pfop_id,1);
+                   unpin(pfop_nodes,1);
+
+                   
pft_unpack_pfop(p,tjsres,fc_iter_a,fc_item_a,aat_dbl,0,fc_pos_a);
+
+                   unpin(tjsres,1);
+               } else if (strcmp(fcname,PFT_NODES) == 0 ) {
+                   mvar_t *pfop_id;
+
+                   pfop_id = pft_create_pfop(*(PFpa_op_t **)PFarray_at 
(fun_params,0),aat_int);
+
+                   mvar_t *tjnres = new_var(1);
+                   execute(
+                       assgn(var(tjnres->name),
+                           tj_query_nodes(
+                               var(fc_loop->name),
+                               var(pfop_id->name),
+                               var (PF_MIL_TIJAH_SCORE_DB)
+                           )
+                       )
+                   );
+                   unpin(pfop_id,1);
+
+                   
pft_unpack_pfop(p,tjnres,fc_iter_a,fc_item_a,aat_pre,fc_item_a,fc_pos_a);
+
+                   unpin(tjnres,1);
+               } else if (strcmp(fcname,PFT_INFO) == 0 ) {
+                   PFoops (OOPS_FATAL,"milgen.brg: tijah:ft-index-info () 
temporary not supported.\n");
+               } else if ( (strcmp(fcname,PFT_TOKENIZE) == 0) ||
+                           (strcmp(fcname,PFT_RESSIZE) == 0) ) {
+                   PFpa_op_t* op1 = *(PFpa_op_t **)PFarray_at(fun_params,0);
+
+                   // copy the iter bat
+                   mvar_t *p_iter = env_mvar (op1->env, att_iter, aat_nat);
+                   pin(p_iter,1);
+                    env_add (p->env, fc_iter_a, aat_nat, p_iter);
+
+                    mvar_t *new_item  = new_var (p->refctr);
+                   if ( strcmp(fcname,PFT_TOKENIZE) == 0 ) {
+                       mvar_t *p_item = env_mvar (op1->env, att_item, aat_str);
+                        execute (
+                           assgn (var (new_item->name),
+                              tj_tokenize( var(p_item->name) ) ) );
+                        env_add (p->env, fc_item_a, aat_str, new_item);
+                   } else {
+                       // must be RESSIZE
+                       mvar_t *p_item = env_mvar (op1->env, att_item, aat_int);
+                       // "var res := item%s.join(tijah_scoreDB.fetch([EMAIL 
PROTECTED]));\n"
+                        execute (
+                           assgn (var (new_item->name),
+                              join( var(p_item->name), 
+                                    fetch( var(PF_MIL_TIJAH_SCORE_DB),
+                                        lit_int(4)) ) ) );
+                        env_add (p->env, fc_item_a, aat_int, new_item);
+                   }
+
+                   // copy the pos bat
+                   mvar_t *p_pos  = env_mvar (op1->env, att_iter, aat_nat);
+                   pin(p_pos,1);
+                    env_add (p->env, fc_pos_a, aat_nat, p_pos);
+               } else {
+                   PFoops (OOPS_FATAL,"milgen.brg: PFTIJAH fun_call() bad 
function[%s]!!!\n",fcname);
+               }
+           } else {
+                   PFoops (OOPS_FATAL,"milgen.brg: PFTIJAH fun_call() bad 
function[%s]!!!\n",fcname);
+           }
+#endif /* PFTIJAH */
+
+           } else {
+               // ERROR? do not know how to handle
+           }
 
             /* Unpin all MIL variables that represent the function parameters.
                (They have 1 additional pin (see rule fun_param) to ensure
@@ -8160,7 +8559,7 @@
                 for (unsigned int j = 0; j < PFarray_last (param->env); j++)
                     unpin (((env_t *) PFarray_at (param->env, j))->mvar, 1);
             }
-            
+
             /* restore the function arguments */
             fun_params = old_fun_params;
         }   break; /* fold) */
@@ -8186,7 +8585,6 @@
             /* go on to next arguments */
             reduce (kids[1], nts[1]);
         }   break; /* fold) */
-
         /* Param:    nil */
         case 154:
             /* end of parameter list */
@@ -8385,6 +8783,30 @@
 
     milprog = seq (module (lit_str ("pathfinder")),
                    module (lit_str ("mkey")),
+#ifdef HAVE_PFTIJAH
+                  /* create pftijah score db */
+                  declare (var (PF_MIL_TIJAH_SCORE_DB)),
+                   assgn (var (PF_MIL_TIJAH_SCORE_DB), 
+                          seqbase (new (type (mty_void), type(mty_bat) ),
+                                            lit_oid (0))),
+                  append (var (PF_MIL_TIJAH_SCORE_DB),
+                         seqbase (new (type (mty_void), type(mty_oid) ),
+                                  lit_oid (0))),
+                  append (var (PF_MIL_TIJAH_SCORE_DB),
+                         seqbase (new (type (mty_void), type(mty_oid) ),
+                                  lit_oid (0))),
+                  append (var (PF_MIL_TIJAH_SCORE_DB),
+                         seqbase (new (type (mty_void), type(mty_oid) ),
+                                  lit_oid (0))),
+                  append (var (PF_MIL_TIJAH_SCORE_DB),
+                         seqbase (new (type (mty_void), type(mty_dbl) ),
+                                  lit_oid (0))),
+                  append (var (PF_MIL_TIJAH_SCORE_DB),
+                         new (type (mty_lng), type(mty_lng) ) ),
+                  declare (var (PF_MIL_TIJAH_FTI_TAPE)),
+                   assgn (var (PF_MIL_TIJAH_FTI_TAPE), 
+                          (new (type (mty_str), type(mty_bat) ))),
+#endif
                    /* add timing information */
                    declare (var (PF_MIL_VAR_TIME_LOAD)),
                    declare (var (PF_MIL_VAR_TIME_QUERY)),

U milprint_summer.c
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.417
retrieving revision 1.418
diff -u -d -r1.417 -r1.418
--- milprint_summer.c   7 Apr 2008 12:48:10 -0000       1.417
+++ milprint_summer.c   10 Apr 2008 13:38:43 -0000      1.418
@@ -3648,8 +3648,6 @@
     milprintf(f, "} # end of '%s' calculation\n", operator);
 }
 
-#ifdef HAVE_PROBXML
-
 static int
 translateDeepEq (opt_t *f, int cur_level, int counter, char *comp, PFcnode_t 
*args)
 {
@@ -3662,7 +3660,8 @@
     translate2MIL (f, VALUES, cur_level, counter, RL(args));
 
     milprintf(f, "{ # pxmlsup:deep-equal calculation\n");
-    milprintf(f, "var val_fst := 
probxml_deep_eq(ws,item%03u,kind%03u,item,kind);\n", counter,counter);
+    // INCOMPLETE implement loop-lifted version
+    milprintf(f, "var val_fst := 
fn_deep_eq(ws,item%03u,constant2bat(kind%03u),item,constant2bat(kind));\n", 
counter,counter);
     milprintf(f, "item := val_fst.[oid]();\n");
     milprintf(f, "kind := BOOL;\n");
     milprintf(f, "} # end of pxmlsup:deep-equal\n");
@@ -3672,7 +3671,6 @@
 
     return NORMAL;
 }
-#endif /*HAVE_PROBXML */
 
 /**
  * evaluateOpOpt evaluates a operation and gives back a new
@@ -8375,9 +8373,11 @@
           ctx_counter = counter;
 
           /* get query string */
-          rc = translate2MIL (f, VALUES, cur_level, counter, RL(args));
+         rc = translate2MIL (f, VALUES, cur_level, counter, RL(args));
+#ifdef REMOVE
           if (rc == NORMAL)
              milprintf(f, "item%s := item.leftfetchjoin(str_values);\n", 
item_ext);
+#endif
           add_empty_strings (f, STR, cur_level);
           saveResult_ (f, ++counter, STR);
           str_counter = counter;
@@ -8413,157 +8413,62 @@
           } else {
              rc = translate2MIL (f, VALUES, cur_level, counter, RL(args));
           }
+#ifdef REMOVE
           if (rc == NORMAL)
              milprintf(f, "item%s := item.leftfetchjoin(str_values);\n", 
item_ext);
+#endif
           add_empty_strings (f, STR, cur_level);
           saveResult_ (f, ++counter, STR);
           str_counter = counter;
         } else if (fun->arity == 1) {
           /* get query string */
-          rc = translate2MIL (f, VALUES, cur_level, counter, L(args));
+         rc = translate2MIL (f, VALUES, cur_level, counter, L(args));
+#ifdef REMOVE
           if (rc == NORMAL)
              milprintf(f, "item%s := item.leftfetchjoin(str_values);\n", 
item_ext);
+#endif
           add_empty_strings (f, STR, cur_level);
           saveResult_ (f, ++counter, STR);
-          str_counter = counter;
-        }
-        if ( storeScore )
-          milprintf(f,
-                "var result_id := new(void,lng).seqbase([EMAIL PROTECTED]);");
-        else
-          milprintf(f,
-                "var result_iter := new(void,oid).seqbase([EMAIL PROTECTED]);"
-                "var result_item := new(void,oid).seqbase([EMAIL PROTECTED]);"
-                "var result_pos := new(void,oid).seqbase([EMAIL PROTECTED]);"
-                "var result_frag := new(void,oid).seqbase([EMAIL 
PROTECTED]);");
-
-        /* generate the serialization code */
-        milprintf(f,
-                "[EMAIL PROTECTED]() { # begin batloop over queries\n"
-                , cur_level);
-        if (opt_counter)
-          milprintf(f,
-                "    iter := iter%03u.select($t);\n"
-                "    item := item%03u.materialize(ipik%03u).semijoin(iter);\n"
-                "    kind := kind%03u.materialize(ipik%03u).semijoin(iter);\n"
-                "    iter := iter.tmark([EMAIL PROTECTED]);\n"
-                "    item := item.tmark([EMAIL PROTECTED]);\n"
-                "    kind := kind.tmark([EMAIL PROTECTED]);\n"
-                "    var optbat := 
serialize_tijah_opt(ws,1,iter,iter,item,kind,int_values,dbl_values,str_values);\n"
-                ,opt_counter,opt_counter, opt_counter,opt_counter,opt_counter);
-        else
-          milprintf(f,
-                "    var optbat := new(str,str,32);\n");
-
-        milprintf(f,
-                "    var ftindex := tj_get_ft_index(optbat,true);\n"
-                "    tijah_lock := tj_get_collection_lock(ftindex);\n"
-                "    lock_set(tijah_lock);\n"
-          );
-          if ( ctx_counter ) {
-            milprintf(f,
-                "    var startNodes;\n"
-                "    iter := iter%03u.materialize(ipik%03u);\n"
-                "    var iteration := iter%03u.fetch(int($h));\n"
-                "    iter := iter.select(iteration);\n"
-                "    iteration := nil;\n"
-                "    item := item%03u.materialize(ipik%03u).semijoin(iter);\n"
-                "    kind := kind%03u.materialize(ipik%03u).semijoin(iter);\n"
-                "    iter := iter.tmark([EMAIL PROTECTED]);\n"
-                "    item := item.tmark([EMAIL PROTECTED]);\n"
-                "    kind := kind.tmark([EMAIL PROTECTED]);\n"
-                "    var xdoc_name := bat(\"tj_\" + ftindex + 
\"_doc_name\");\n"
-                "    var xdoc_firstpre := bat(\"tj_\" + ftindex + 
\"_doc_firstpre\");\n"
-                "    var xpfpre := bat(\"tj_\" + ftindex + \"_pfpre\");\n"
-                "    var doc_loaded := 
reverse(ws.fetch(OPEN_CONT)).leftfetchjoin(ws.fetch(OPEN_NAME));\n"
-                "    startNodes := 
pf2tijah_node(xdoc_name,xdoc_firstpre,xpfpre,item,kind,doc_loaded);\n"
-                , ctx_counter, ctx_counter, str_counter, ctx_counter, 
ctx_counter, ctx_counter, ctx_counter);
-        } else {
-          milprintf(f,"    var startNodes := new(void,oid);\n");
-        }
-        /* execute tijah query */
-        milprintf(f,
-                "    var nexi_allscores := 
run_tijah_query(ftindex,optbat,%s,startNodes,item%s%03u.fetch(int($h)));\n"
-                "    var nexi_score;\n"
-                "    if ( optbat.exist(\"returnNumber\") ) {\n"
-                "        var retNum := int(optbat.find(\"returnNumber\"));\n"
-                "        nexi_score := nexi_allscores.slice(0, retNum - 1);\n"
-                "    } else {\n"
-                "        nexi_score := nexi_allscores;\n"
-                "    }\n"
-                , (ctx_counter?"true":"false"),item_ext, str_counter);
-            /* translate tijah_pre to pf-pre */
-            milprintf(f,
-                "    var docpre := bat(\"tj_\" + ftindex + 
\"_doc_firstpre\").[oid]();\n"
-                "    var pfpre :=  bat(\"tj_\" + ftindex + \"_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_\" + ftindex + 
\"_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"
-                "    ws_opendoc(ws, docs_to_load);\n"
-                "    docs_to_load := nil;\n"
-                "    loaded_docs := nil;\n"
-                "    var doc_loaded := 
reverse(ws.fetch(OPEN_CONT)).leftfetchjoin(ws.fetch(OPEN_NAME));\n"
-                "    var fid_pffid := 
needed_docs.join(doc_loaded.reverse());\n"
-                "    frag := frag.join(fid_pffid).sort().tmark();\n");
-
-        if ( storeScore ) {
-            /* store scores and nodes */
-            milprintf(f,
-                "    tID := oid(int(tID) + 1);\n"
-                "    
tijah_resultsz.insert(lng(tID),lng(nexi_allscores.count()));\n"
-                "    tijah_tID.append(item.project(tID));\n"
-                "    tijah_frag.append(frag);\n"
-                "    tijah_pre.append(item);\n"
-                "    tijah_score.append(nexi_score.tmark());\n"
-                "    result_id.append(lng(tID));\n"
-                "} # end batloop over queries\n");
-
-            /* return query identifier */
-            item_ext = (code)?kind_str(INT):"";
-            if (code)
-                milprintf(f, "item%s := result_id;\n", item_ext);
-            else
-                addValues (f, int_container(), "result_id", "item");
-
-            milprintf(f,
-                "iter := loop%03u.tmark(oid(0));\n"
-                "ipik := iter;\n"
-                "pos := oid(1);\n"
-                "kind := INT;\n"
-                , cur_level);
-        } else {
-            /* do not store score, return nodes instead */
-            milprintf(f,
-                "    result_iter.append(item.project($t));\n"
-                "    result_pos.append(item.mark([EMAIL PROTECTED]));\n"
-                "    result_frag.append(frag);\n"
-                "    result_item.append(item);\n"
-                "} # end batloop over queries\n");
-            milprintf(f,
-                "iter := result_iter;\n"
-                "result_iter := nil;\n"
-                "pos := result_pos;\n"
-                "result_pos := nil;\n"
-                "kind := set_kind(result_frag, ELEM);\n"
-                "result_frag := nil;\n"
-                "item := result_item;\n"
-                "result_item := nil;\n"
-                "ipik := iter;\n"
-                );
-        }
-
-        /* clean up */
-        if ( opt_counter )
-            deleteResult(f, opt_counter);
+         str_counter = counter;
+       } 
+       /* PARAMETER COMPUTATION */
+       milprintf(f,
+               "var pfop_query := 
tj_pfop(iter%03u.materialize(ipik%03u),item%s%03u.materialize(ipik%03u),kind%03u.materialize(ipik%03u),pos%03u.materialize(ipik%03u));\n"
+               
,str_counter,str_counter,item_ext,str_counter,str_counter,str_counter,str_counter,str_counter,str_counter);
+       if ( opt_counter )
+         milprintf(f,
+               "var pfop_opt := 
tj_pfop(iter%03u.materialize(ipik%03u),item%03u.materialize(ipik%03u),kind%03u.materialize(ipik%03u),pos%03u.materialize(ipik%03u));\n"
+               
,opt_counter,opt_counter,opt_counter,opt_counter,opt_counter,opt_counter,opt_counter,opt_counter);
+       else
+         milprintf(f,
+               "var pfop_opt := new(void,bat);\n");
+       if ( ctx_counter )
+         milprintf(f,
+               "var pfop_sn := 
tj_pfop(iter%03u.materialize(ipik%03u),item%03u.materialize(ipik%03u),kind%03u.materialize(ipik%03u),pos%03u.materialize(ipik%03u));\n"
+               
,ctx_counter,ctx_counter,ctx_counter,ctx_counter,ctx_counter,ctx_counter,ctx_counter,ctx_counter);
+       else
+         milprintf(f,
+               "var pfop_sn := new(void,bat);\n");
+       milprintf(f,
+               "# call the tijah query handler\n"
+               " var res := tj_query_handler(%s, pfop_sn, pfop_query, 
pfop_opt, loop%03u, ws, int_values, dbl_values, str_values, tijah_scoreDB);\n"
+               ,(storeScore?"TRUE":"FALSE"),cur_level);
+       milprintf(f,
+               "# unpack the returned result\n"
+               "iter := res.fetch([EMAIL PROTECTED]);\n"
+               "item := res.fetch([EMAIL PROTECTED]);\n"
+               "kind := res.fetch([EMAIL PROTECTED]);\n"
+               "pos  := res.fetch([EMAIL PROTECTED]);\n"
+       );
+       /* END OF SCRIPT */
+       /* clean up */
+       if ( opt_counter )
+           deleteResult(f, opt_counter);
         deleteResult_ (f, str_counter, STR);
         if ( ctx_counter )
             deleteResult(f, ctx_counter);
         milprintf(f, "} # end of translate tijah:query[all][-id]\n");
-        return (code && storeScore)?INT:NORMAL;
+        return NORMAL;
     }
     else if ( !PFqname_eq(fnQname, PFqname (PFns_tijah,"nodes")) )
     {
@@ -8587,15 +8492,15 @@
                 "var frag := new(void,oid).seqbase([EMAIL PROTECTED]);"
                 "[EMAIL PROTECTED]() { # begin of query batloop\n"
                 "    var qid := oid(item%s.fetch(int($h)));\n"
-                "    var tmp := tijah_tID.ord_uselect(qid);\n"
-                "    item.append(tmp.mirror().leftfetchjoin(tijah_pre));\n"
-                "    iter.append(tmp.project(loop%03u.fetch(int($h))));\n"
-                "    frag.append(tmp.mirror().leftfetchjoin(tijah_frag));\n"
-                "    pos.append(tmp.mark([EMAIL PROTECTED]));\n"
-                "} # end of query batloop \n"
-                , cur_level, item_int, cur_level);
-
-        milprintf(f,
+               "    var tmp := tijah_scoreDB.fetch([EMAIL 
PROTECTED]).ord_uselect(qid);\n"
+               "    
item.append(tmp.mirror().leftfetchjoin(tijah_scoreDB.fetch([EMAIL 
PROTECTED])));\n"
+               "    iter.append(tmp.project(loop%03u.fetch(int($h))));\n"
+               "    
frag.append(tmp.mirror().leftfetchjoin(tijah_scoreDB.fetch([EMAIL 
PROTECTED])));\n"
+               "    pos.append(tmp.mark([EMAIL PROTECTED]));\n"
+               "} # end of query batloop \n"
+               , cur_level, item_int, cur_level);
+        
+       milprintf(f,
                 "kind := set_kind(frag, ELEM);\n"
                 "ipik := iter;\n"
                 "} # end of translate pf:tijah_nodes\n");
@@ -8618,35 +8523,35 @@
 
         /* get node */
         rc = translate2MIL (f, code, cur_level, counter, RL(args));
-
-        /* get scores */
-        milprintf(f,
-                "var score := new(oid,dbl);\n"
-                "var tmp := [<<]([lng](tijah_frag), const 32);\n"
-                "var tijah_fragpre := [+](tmp, [lng](tijah_pre));\n"
-                "tmp := nil;\n"
-                "var item1_unique := item%s%03u.tunique();\n"
-                "item := item.materialize(ipik);"
-                "kind := kind.materialize(ipik);"
+        
+       /* get scores */
+        milprintf(f, 
+               "var score := new(oid,dbl);\n"
+               "var tmp := [<<]([lng](tijah_scoreDB.fetch([EMAIL PROTECTED])), 
const 32);\n"
+               "var tijah_fragpre := [+](tmp, [lng](tijah_scoreDB.fetch([EMAIL 
PROTECTED])));\n"
+               "tmp := nil;\n"
+               "var item1_unique := item%s%03u.tunique();\n"
+               "item := item.materialize(ipik);"
+               "kind := kind.materialize(ipik);"
                 "[EMAIL PROTECTED]() { # begin query batloop\n"
-                "    var item_part := item.semijoin(item%s%03u.uselect($h));\n"
-                "    var frag_part := 
kind.semijoin(item_part).get_container();\n"
-                "    frag_part := [<<]([lng](frag_part), const 32);\n"
-                "    var fragpre_part := [+](frag_part, [lng](item_part));\n"
-                "    item_part := nil;\n"
-                "    frag_part := nil;\n"
-                "    tmp := tijah_tID.uselect(oid($h));\n"
-                "    tmp := tmp.mirror().leftfetchjoin(tijah_fragpre);\n"
-                "    tmp := tmp.join(fragpre_part.reverse());\n"
-                "    score.insert(tmp.reverse().leftfetchjoin(tijah_score));\n"
-                "} # end query batloop\n"
-                "var xitem := kdiff(item,score).project(dbl(0));\n"
-                "score.insert(xitem);\n"
-                "xitem := nil;\n"
-                "score := score.sort().tmark([EMAIL PROTECTED]);\n"
-                , item_int, counter, item_int, counter);
-
-        /* return score */
+               "    var item_part := item.semijoin(item%s%03u.uselect($h));\n"
+               "    var frag_part := 
kind.semijoin(item_part).get_container();\n"
+               "    frag_part := [<<]([lng](frag_part), const 32);\n"
+               "    var fragpre_part := [+](frag_part, [lng](item_part));\n"
+               "    item_part := nil;\n"
+               "    frag_part := nil;\n"
+               "    tmp := tijah_scoreDB.fetch([EMAIL 
PROTECTED]).uselect(oid($h));\n"
+               "    tmp := tmp.mirror().leftfetchjoin(tijah_fragpre);\n"
+               "    tmp := tmp.join(fragpre_part.reverse());\n"
+               "    
score.insert(tmp.reverse().leftfetchjoin(tijah_scoreDB.fetch([EMAIL 
PROTECTED])));\n"
+               "} # end query batloop\n"
+               "var xitem := kdiff(item,score).project(dbl(0));\n"
+               "score.insert(xitem);\n"
+               "xitem := nil;\n"
+               "score := score.sort().tmark([EMAIL PROTECTED]);\n"
+               , item_int, counter, item_int, counter);
+       
+       /* return score */
         item_ext = (code)?kind_str(DBL):"";
         if (code)
             milprintf(f, "item%s := score;\n", item_ext);
@@ -8719,8 +8624,8 @@
 
         milprintf(f,
                 "if (ipik.count() != 0) { # tijah:resultsize\n"
-                "var res := item%s.join(tijah_resultsz);\n"
-                ,item_ext);
+                "var res := item%s.join(tijah_scoreDB.fetch([EMAIL 
PROTECTED]));\n"
+               ,item_ext);
         if (code)
             milprintf(f, "item%s := res;\n", item_ext);
         else
@@ -8740,7 +8645,8 @@
         translateIntersect (f, "diff", cur_level, counter, args);
         return NORMAL;
     }
-    else if (!PFqname_eq(fnQname,PFqname (PFns_pxmlsup,"deep-equal")))
+    else if (!PFqname_eq(fnQname,PFqname (PFns_pxmlsup,"deep-equal")) ||
+            !PFqname_eq(fnQname,PFqname (PFns_fn,"deep-equal")) )
     {
         return translateDeepEq (f, cur_level, counter, "deep-equal", args);
     }
@@ -11534,13 +11440,13 @@
 const char* PFinitMIL(void) {
     return
 #ifdef HAVE_PFTIJAH
-        "var tID := [EMAIL PROTECTED]; # start counter at an arbitrary 
number\n"
-        "var tijah_tID   := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
-        "var tijah_frag  := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
-        "var tijah_pre   := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
-        "var tijah_score := new(void,dbl).seqbase([EMAIL PROTECTED]);\n"
-        "var tijah_resultsz := new(lng,lng);\n"
-        "var tijah_lock  := lock_nil; # pftijah collection lock\n"
+       "var tijah_scoreDB  := new(void,bat).seqbase([EMAIL PROTECTED]);\n"
+       "tijah_scoreDB.append(new(void,oid).seqbase([EMAIL PROTECTED]));\n" // 
[EMAIL PROTECTED] tijah_tID
+       "tijah_scoreDB.append(new(void,oid).seqbase([EMAIL PROTECTED]));\n" // 
[EMAIL PROTECTED] tijah_frag
+       "tijah_scoreDB.append(new(void,oid).seqbase([EMAIL PROTECTED]));\n" // 
[EMAIL PROTECTED] tijah_pre
+       "tijah_scoreDB.append(new(void,dbl).seqbase([EMAIL PROTECTED]));\n" // 
[EMAIL PROTECTED] tijah_score
+       "tijah_scoreDB.append(new(lng,lng));\n"               // [EMAIL 
PROTECTED] tijah_resultsz
+       "var tijah_lock  := lock_nil; # pftijah collection lock\n"
 #endif
 #ifdef HAVE_PROBXML
    "module(\"probxml\");\n"


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to