Update of /cvsroot/monetdb/pathfinder/compiler/include
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv32460/compiler/include

Modified Files:
      Tag: M5XQ
        logical.h 
Log Message:
propagated changes of Monday Oct 05 2009
from the development trunk to the M5XQ branch

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2009/10/05 - sjoerd: compiler/include/logical.h,1.70
  propagated changes of Monday Sep 28 2009 - Monday Oct 05 2009
  from the Aug2009_NFI branch to the development trunk
  
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2009/09/28 - boncz: compiler/include/logical.h,1.69.6.1
    optimizations for NFI XIRAF use case -- thanks a great bunch Jan R.!!
  
    - ds_link (already in Stable) optimized for 1-node case
    - indices now contain all data (but still not used automatically, nor based 
on Lefteris' new indexing schemes)
  
    most prominently though is: subexpression result caching
    - caching hints in pragmas
    - query enclosed in (# pf:session id:msec ) { query }  or (# pf:session-use 
id:msec ) { query }
      + queries in the same session use the same working set (documents opened 
only once)
      + same working set allows to cache results
      + pf:session-use only uses cache, cannot add to it
        - but, multiple pf:session-use can run concurrently; whereas pf:session 
is exclusive
    - inside a query, an arbitrary number of expressions can be marked up for 
caching/reuse
      + (# pf:cache id ) { subexpr }
      + subexpr may not be enclosed by a for-loop
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


U logical.h
Index: logical.h
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/include/logical.h,v
retrieving revision 1.68.2.1
retrieving revision 1.68.2.2
diff -u -d -r1.68.2.1 -r1.68.2.2
--- logical.h   15 Jun 2009 12:47:21 -0000      1.68.2.1
+++ logical.h   5 Oct 2009 12:14:56 -0000       1.68.2.2
@@ -148,8 +148,9 @@
                                    union of fragments */
     , la_empty_frag      = 74 /**< representation of an empty fragment */
 
-    , la_error           = 79 /**< facility to trigger runtime errors */
-    , la_nil             = 80 /**< end of the list of parameters */
+    , la_error           = 78 /**< facility to trigger runtime errors */
+    , la_nil             = 79 /**< end of the list of parameters */
+    , la_cache           = 80 /**< cache operator */
     , la_trace           = 81 /**< debug operator */
     , la_trace_items     = 82 /**< debug items operator */
     , la_trace_msg       = 83 /**< debug message operator */
@@ -426,6 +427,13 @@
         PFalg_col_t     col;      /**< column of error message */
     } err;
 
+    /* semantic content for cache operator */
+    struct {
+        char *          id;       /**< the cache id */
+        PFalg_col_t     pos;      /**< position column */
+        PFalg_col_t     item;     /**< item column */
+    } cache;
+
     /* semantic content for debug relation map operator */
     struct {
         PFalg_col_t     inner;    /**< name of the inner column */
@@ -577,8 +585,9 @@
  * or below a `rec_fix' operator if the side effects appear in the recursion
  * body.
  * The `side_effects' operator contains a (possibly empty) list of operations
- * that may trigger side effects (operators `error' and `trace') in its left
- * child and the fragment or recursion parameters in the right child.
+ * that may trigger side effects (operators `error', `cache' and `trace')
+ * in its left child and the fragment or recursion parameters in the right
+ * child.
  */
 PFla_op_t * PFla_side_effects (const PFla_op_t *side_effects,
                                const PFla_op_t *params);
@@ -1134,6 +1143,15 @@
 PFla_op_t *PFla_nil (void);
 
 /**
+ * Constructor for a caching operator
+ */
+PFla_op_t *PFla_cache (const PFla_op_t *n1,
+                       const PFla_op_t *n2,
+                       char *id,
+                       PFalg_col_t pos,
+                       PFalg_col_t item);
+
+/**
  * Constructor for debug operator
  */
 PFla_op_t * PFla_trace (const PFla_op_t *n1,


------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to