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