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

Reply via email to