Update of /cvsroot/monetdb/pathfinder/compiler/include
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv20105/compiler/include
Modified Files:
Tag: PF_ROX
mil.h mil_mnemonic.h physical.h physical_mnemonic.h
Log Message:
propagated changes of Monday May 19 2008 - Thursday May 22 2008
from the development trunk to the PF_ROX branch
U mil_mnemonic.h
Index: mil_mnemonic.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/mil_mnemonic.h,v
retrieving revision 1.44.2.8
retrieving revision 1.44.2.9
diff -u -d -r1.44.2.8 -r1.44.2.9
--- mil_mnemonic.h 8 May 2008 07:45:26 -0000 1.44.2.8
+++ mil_mnemonic.h 22 May 2008 08:48:33 -0000 1.44.2.9
@@ -425,6 +425,11 @@
#define ws_collections(a,b) PFmil_ws_collections ((a), (b))
#define ws_docavailable(a,b) PFmil_ws_docavailable ((a), (b))
+/** mil id/idref function */
+#define ws_findnodes(a,b,c,d,e,f,g) \
+ PFmil_ws_findnodes ((a),(b),(c),(d),(e),(f),(g))
+
+
#ifdef HAVE_PFTIJAH
/** pftijah main query handler */
U physical_mnemonic.h
Index: physical_mnemonic.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/physical_mnemonic.h,v
retrieving revision 1.28.4.2
retrieving revision 1.28.4.3
diff -u -d -r1.28.4.2 -r1.28.4.3
--- physical_mnemonic.h 18 Feb 2008 16:57:30 -0000 1.28.4.2
+++ physical_mnemonic.h 22 May 2008 08:48:34 -0000 1.28.4.3
@@ -162,4 +162,7 @@
#define string_join(a,b,c,d) PFpa_string_join ((a),(b),(c),(d))
+/* id/idref operator */
+#define findnodes(a,b,c,d,e,f) PFpa_findnodes ((a),(b),(c),(d),(e),(f))
+
/* vim:set shiftwidth=4 expandtab: */
U physical.h
Index: physical.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/physical.h,v
retrieving revision 1.36.4.3
retrieving revision 1.36.4.4
diff -u -d -r1.36.4.3 -r1.36.4.4
--- physical.h 1 Mar 2008 11:23:38 -0000 1.36.4.3
+++ physical.h 22 May 2008 08:48:33 -0000 1.36.4.4
@@ -92,6 +92,9 @@
certain type */
, pa_type_assert = 64 /**< restriction of the type of a given column */
, pa_cast = 65 /**< cast a table to a given type */
+ , pa_seqty1 = 66 /**< test for exactly one type occurrence in one
+ iteration (Pathfinder extension) */
+ , pa_all = 67 /**< test if all items in an iteration are true
*/
, pa_llscjoin = 100 /**< Loop-Lifted StaircaseJoin */
, pa_doc_tbl = 120 /**< Access to persistent document relation */
, pa_doc_access = 121 /**< Access to string content of loaded docs */
@@ -121,6 +124,7 @@
, pa_fun_call = 150 /**< function application */
, pa_fun_param = 151 /**< function application parameter */
, pa_string_join = 160 /**< Concatenation of multiple strings */
+ , pa_findnodes = 170 /**< find nodes given the id/idref string */
};
/** algebra operator kinds */
typedef enum PFpa_op_kind_t PFpa_op_kind_t;
@@ -205,7 +209,6 @@
to compute attribute res */
} fun_1to1;
- /* semantic content for binary (arithmetic and boolean) operators */
struct {
PFalg_att_t att1; /**< first operand */
PFalg_att_t att2; /**< second operand */
@@ -340,6 +343,14 @@
iter column of the result
(used for optimizations) */
} fun_call;
+
+ /* semantic content for physical operator of function fn:id/idref */
+ struct {
+ bool id; /**< id or idref */
+ PFalg_att_t item_res; /**< column to store the resulting nodes */
+ PFalg_att_t item; /**< column to look up the context nodes */
+ PFalg_att_t item_doc; /**< column to store the fragment info */
+ } findnodes;
};
/** semantic content in physical algebra operators */
typedef union PFpa_op_sem_t PFpa_op_sem_t;
@@ -826,6 +837,15 @@
PFalg_att_t,
PFalg_att_t);
+/**
+ * Constructor for finding nodes based on id/idref
+ */
+PFpa_op_t *
+PFpa_findnodes (const PFpa_op_t *doc, const PFpa_op_t *n,
+ PFalg_att_t item,
+ PFalg_att_t item_doc,
+ PFalg_att_t item_res,
+ bool id);
#endif /* PHYSICAL_H */
U mil.h
Index: mil.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/mil.h,v
retrieving revision 1.54.2.7
retrieving revision 1.54.2.8
diff -u -d -r1.54.2.7 -r1.54.2.8
--- mil.h 8 May 2008 07:45:26 -0000 1.54.2.7
+++ mil.h 22 May 2008 08:48:33 -0000 1.54.2.8
@@ -249,6 +249,7 @@
, m_mnot /**< multiplexed boolean negation `[not]' */
, m_mneg /**< multiplexed numeric negation `[-]' */
+ , m_and /**< boolean operator `and' */
, m_mand /**< multiplexed boolean operator `and' */
, m_mor /**< multiplexed boolean operator `or' */
@@ -372,6 +373,7 @@
, m_ws_docname /**< mil document function for docname */
, m_ws_collections /**< mil document function for collections */
, m_ws_docavailable /**< mil document function for doc-available */
+ , m_ws_findnodes /**< mil function for fn:id/idref */
#ifdef HAVE_PFTIJAH
, m_tj_pfop
, m_tj_tokenize
@@ -770,6 +772,9 @@
/** MIL multiplexed numeric negation */
PFmil_t * PFmil_mneg (const PFmil_t *);
+/** Boolean operator `and' */
+PFmil_t * PFmil_and (const PFmil_t *, const PFmil_t *);
+
/** Multiplexed boolean operator `and' */
PFmil_t * PFmil_mand (const PFmil_t *, const PFmil_t *);
@@ -930,6 +935,16 @@
*/
PFmil_t * PFmil_ws_docavailable (const PFmil_t *, const PFmil_t *);
+/**
+ * mil function for id/idref
+ * ws_findnodes(BAT[void,bat] ws, BAT[void,oid] id_iter, any id_item,
+ * any id_kind, any id_cont, any id_tokens, bit isid)
+ */
+PFmil_t * PFmil_ws_findnodes (const PFmil_t *, const PFmil_t *,
+ const PFmil_t *, const PFmil_t *,
+ const PFmil_t *, const PFmil_t *,
+ const PFmil_t *);
+
#define PFmil_seq(...) \
PFmil_seq_ (sizeof ((PFmil_t *[]) { __VA_ARGS__} ) / sizeof (PFmil_t *), \
(const PFmil_t *[]) { __VA_ARGS__ } )
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins