Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv2692/compiler/mil
Modified Files:
Tag: Nov2009
mil.c
Log Message:
propagated changes of Monday Sep 28 2009 - Wednesday Oct 07 2009
from the Aug2009_NFI branch to the Nov2009 branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/09/28 - boncz: compiler/mil/mil.c,1.82.8.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 mil.c
Index: mil.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/mil.c,v
retrieving revision 1.82
retrieving revision 1.82.6.1
diff -u -d -r1.82 -r1.82.6.1
--- mil.c 7 May 2009 14:27:42 -0000 1.82
+++ mil.c 7 Oct 2009 13:47:38 -0000 1.82.6.1
@@ -414,6 +414,7 @@
case PF_MIL_VAR_XRPC_HDL: return "xrpc_hdl";
case PF_MIL_VAR_XRPC_SEQNR: return "xrpc_seqnr";
case PF_MIL_VAR_XRPC_TIMEOUT:return "xrpc_timeout";
+ case PF_MIL_VAR_XRPC_COORD: return "xrpc_coord";
case PF_MIL_VAR_XRPC_MODE: return "xrpc_mode";
case PF_MIL_VAR_XRPC_MODULE: return "xrpc_module";
case PF_MIL_VAR_XRPC_METHOD: return "xrpc_method";
@@ -1029,6 +1030,15 @@
}
/**
+ * Monet find function.
+ */
+PFmil_t *
+PFmil_find (const PFmil_t *a, const PFmil_t *b)
+{
+ return wire2 (m_find, a, b);
+}
+
+/**
* enumerate operator, return sequence of integers
* starting from @a a with the length @a l.
*/
@@ -1675,6 +1685,42 @@
}
/**
+ * Free an existing working set
+ */
+PFmil_t *
+PFmil_end_ws (const PFmil_t *ws, const PFmil_t *err)
+{
+ return wire2 (m_end_ws, ws, err);
+}
+
+/**
+ * subexpression cache lookup
+ */
+PFmil_t *
+PFmil_cache_expr (const PFmil_t *ws, const PFmil_t *id)
+{
+ return wire2 (m_cache_expr, ws, id);
+}
+/**
+ * subexpression cache lookup
+ */
+PFmil_t *
+PFmil_cache_get (const PFmil_t *ws, const PFmil_t *id)
+{
+ return wire2 (m_cache_get, ws, id);
+}
+
+/**
+ * subexpression cache store
+ */
+PFmil_t *
+PFmil_cache_put (const PFmil_t *ws, const PFmil_t *id, const PFmil_t *val)
+{
+ return wire3 (m_cache_put, ws, id, val);
+}
+
+
+/**
* Positional multijoin with a working set
*/
PFmil_t *
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) 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 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins