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

Modified Files:
        xquery_fo.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 xquery_fo.c
Index: xquery_fo.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/semantics/xquery_fo.c,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -d -r1.153 -r1.154
--- xquery_fo.c 19 Mar 2008 13:30:50 -0000      1.153
+++ xquery_fo.c 10 Apr 2008 13:38:45 -0000      1.154
@@ -1417,6 +1417,12 @@
         .alg = PFbui_fn_exactly_one }
 
 /* 15.3. Equals, Union, Intersection and Except */
+    , /* fn:deep-equal (item*, item*) as boolean */
+      { .ns = PFns_fn, .loc = "deep-equal",
+        .arity = 2, .sig_count = 1, .sigs = { {
+            .par_ty = (PFty_t[]) { PFty_star (PFty_item () ),
+                                   PFty_star (PFty_item () ) },
+            .ret_ty = PFty_xs_boolean () } } }
     , /* op:union (node*, node*) as node* */
       { .ns = PFns_op, .loc = "union",
         .arity = 2, .sig_count = 1, .sigs = { {
@@ -2146,72 +2152,90 @@
     , /* tijah:ft-index-info () as element* */
       { .ns = PFns_tijah, .loc = "ft-index-info",
         .arity = 0, .sig_count = 1, .sigs = { {
-            .ret_ty = PFty_star( PFty_xs_anyElement ()) } } }
+            .ret_ty = PFty_star( PFty_xs_anyElement ()) } },
+       .alg = PFbui_tijah_ft_index_info
+      }
     , /* tijah:ft-index-info (string) as element* */
       { .ns = PFns_tijah, .loc = "ft-index-info",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_xs_string () },
-            .ret_ty = PFty_star( PFty_xs_anyElement ()) } } }
+            .ret_ty = PFty_star( PFty_xs_anyElement ()) } },
+       .alg = PFbui_tijah_ft_index_info_s
+      }
     ,  /* tijah:create-ft-index() as docmgmt */
       { .ns = PFns_tijah, .loc = "create-ft-index",
         .arity = 0, .sig_count = 1, .sigs = { {
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } }, 
+        .alg = PFbui_manage_fti_c_xx }
     ,  /* tijah:create-ft-index(string*) as docmgmt */
       { .ns = PFns_tijah, .loc = "create-ft-index",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_star (PFty_xs_string ()) },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_c_cx }
     ,  /* tijah:create-ft-index(node) as docmgmt */
       { .ns = PFns_tijah, .loc = "create-ft-index",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_xs_anyNode () },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_c_xo }
     ,  /* tijah:create-ft-index(string*,node) as docmgmt */
       { .ns = PFns_tijah, .loc = "create-ft-index",
         .arity = 2, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_star (PFty_xs_string ()),
                                    PFty_xs_anyNode () },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_c_co }
     ,  /* tijah:extend-ft-index(string*) as docmgmt */
       { .ns = PFns_tijah, .loc = "extend-ft-index",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_star (PFty_xs_string ()) },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_e_cx }
     ,  /* tijah:extend-ft-index(string*,node) as docmgmt */
       { .ns = PFns_tijah, .loc = "extend-ft-index",
         .arity = 2, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_star (PFty_xs_string ()),
                                    PFty_xs_anyNode () },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_e_co }
     ,  /* tijah:delete-ft-index() as docmgmt */
       { .ns = PFns_tijah, .loc = "delete-ft-index",
         .arity = 0, .sig_count = 1, .sigs = { {
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_r_xx }
     ,  /* tijah:delete-ft-index(node) as docmgmt */
       { .ns = PFns_tijah, .loc = "delete-ft-index",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_xs_anyNode () },
-            .ret_ty = PFty_docmgmt () } } }
+            .ret_ty = PFty_docmgmt () } },
+        .alg = PFbui_manage_fti_r_xo }
     , /* tijah:queryall-id(string) as integer */
       { .ns = PFns_tijah, .loc = "queryall-id",
         .arity = 1, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_string () },
              .ret_ty = PFty_xs_integer () },
-             } }
+             } ,
+       .alg = PFbui_tijah_query_i_xx
+       }
     , /* tijah:queryall-id(string, node) as integer */
       { .ns = PFns_tijah, .loc = "queryall-id",
         .arity = 2, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_string (),
                                     PFty_xs_anyNode () },
              .ret_ty = PFty_xs_integer () },
-             } }
+             } ,
+        .alg = PFbui_tijah_query_i_xo
+       }
     , /* tijah:query-id(node*, string) as integer */
       { .ns = PFns_tijah, .loc = "query-id",
         .arity = 2, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_star (PFty_xs_anyNode ()),
                                     PFty_xs_string ()},
              .ret_ty = PFty_xs_integer () },
-             } }
+             },
+        .alg = PFbui_tijah_query_i_sx
+       }
     , /* tijah:query-id(node*, string, node) as integer */
       { .ns = PFns_tijah, .loc = "query-id",
         .arity = 3, .sig_count = 1, .sigs = { {
@@ -2219,27 +2243,35 @@
                                     PFty_xs_string (),
                                          PFty_xs_anyNode ()},
              .ret_ty = PFty_xs_integer () },
-             } }
+             },
+        .alg = PFbui_tijah_query_i_so
+       }
     , /* tijah:queryall(string) as node* */
       { .ns = PFns_tijah, .loc = "queryall",
         .arity = 1, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_string () },
              .ret_ty = PFty_star (PFty_xs_anyNode ()) },
-             } }
+             },
+        .alg = PFbui_tijah_query_n_xx
+       }
     , /* tijah:queryall(string, node) as node* */
       { .ns = PFns_tijah, .loc = "queryall",
         .arity = 2, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_string (),
                                     PFty_xs_anyNode () },
              .ret_ty = PFty_star (PFty_xs_anyNode ()) },
-             } }
+             },
+         .alg = PFbui_tijah_query_n_xo
+       }
     , /* tijah:query(node*, string) as node* */
       { .ns = PFns_tijah, .loc = "query",
         .arity = 2, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_star (PFty_xs_anyNode ()),
                                     PFty_xs_string ()},
              .ret_ty = PFty_star (PFty_xs_anyNode ()) },
-             } }
+             } ,
+         .alg = PFbui_tijah_query_n_sx
+         }
     , /* tijah:query(node*, string, node) as node* */
       { .ns = PFns_tijah, .loc = "query",
         .arity = 3, .sig_count = 1, .sigs = { {
@@ -2247,28 +2279,38 @@
                                     PFty_xs_string (),
                                          PFty_xs_anyNode ()},
              .ret_ty = PFty_star (PFty_xs_anyNode ()) },
-             } }
+             },
+         .alg = PFbui_tijah_query_n_so
+       }
     , /* tijah:nodes(integer) as node* */
       { .ns = PFns_tijah, .loc = "nodes",
         .arity = 1, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_integer () },
-             .ret_ty = PFty_star (PFty_xs_anyNode ()) } } }
+             .ret_ty = PFty_star (PFty_xs_anyNode ()) } },
+       .alg = PFbui_tijah_nodes
+       }
     , /* tijah:score(integer, node) as double */
       { .ns = PFns_tijah, .loc = "score",
         .arity = 2, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_integer (),
                                     PFty_xs_anyNode () },
-             .ret_ty = PFty_xs_double () } } }
+             .ret_ty = PFty_xs_double () } },
+       .alg = PFbui_tijah_score
+       }
     , /* tijah:tokenize(string?) as string */
       { .ns = PFns_tijah, .loc = "tokenize",
         .arity = 1, .sig_count = 1, .sigs = { {
              .par_ty = (PFty_t[]) { PFty_xs_string () },
-             .ret_ty = PFty_xs_string () } } }
+             .ret_ty = PFty_xs_string () } },
+       .alg = PFbui_tijah_tokenize
+      }
     , /* tijah:resultsize(integer) as integer */
       { .ns = PFns_tijah, .loc = "resultsize",
         .arity = 1, .sig_count = 1, .sigs = { {
             .par_ty = (PFty_t[]) { PFty_xs_integer () },
-            .ret_ty = PFty_xs_integer () } } }
+            .ret_ty = PFty_xs_integer () } },
+       .alg = PFbui_tijah_resultsize
+      }
 #endif
 
 #ifdef HAVE_PROBXML


-------------------------------------------------------------------------
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