[Checkins] SVN: Sandbox/ocql-foliage/src/ preparing for metadata
storage in queryobject
Adam Groszer
agroszer at gmail.com
Tue Sep 25 15:48:24 EDT 2007
Log message for revision 80042:
preparing for metadata storage in queryobject
Changed:
U Sandbox/ocql-foliage/src/ocql/engine/queryobject.py
U Sandbox/ocql-foliage/src/ocql/engine/queryparser.py
U Sandbox/ocql-foliage/src/testdb.py
-=-
Modified: Sandbox/ocql-foliage/src/ocql/engine/queryobject.py
===================================================================
--- Sandbox/ocql-foliage/src/ocql/engine/queryobject.py 2007-09-25 19:15:17 UTC (rev 80041)
+++ Sandbox/ocql-foliage/src/ocql/engine/queryobject.py 2007-09-25 19:48:23 UTC (rev 80042)
@@ -15,6 +15,15 @@
class Expression(Term, QueryObject):
pass
+class MetadataStoreMixin:
+ _metadata = None
+
+ def setMetadata(self, metadata):
+ self._metadata = metadata
+
+ def getMetadata(self):
+ return self._metadata
+
#
# General
#
@@ -51,7 +60,7 @@
#TODO: convert value to string?
pass
-class Query(Expression):
+class Query(Expression, MetadataStoreMixin):
def __init__(self, collection, terms, target):
self.collection = collection
self.terms = terms
@@ -74,7 +83,7 @@
self.collection,
set,
ft.expression.rewrite(algebra)
- ) # FIXME: ?set?
+ ) # FIXME: ?set? must be determined by type(ft.expression)
)
elif isinstance(ft,Alias):
return Query(
@@ -191,7 +200,8 @@
0,
algebra.Lambda('i',algebra.Constant(1)),
algebra.Operator('+'),
- make(bag,set,self.expression.rewrite(algebra)) # FIXME ?set?
+ make(bag,set,self.expression.rewrite(algebra))
+ # FIXME ?set? must be determined by type(self.expression)
)
class Sum(Aggregate):
@@ -221,7 +231,7 @@
class Some(Quantor):
def rewrite(self, algebra, expression, quanted, operator):
return algebra.Reduce(
- set, # FIXME ?set?
+ set, # FIXME ?set? but which type() to take? quanted.expression?
algebra.Identifier('False'),
algebra.Lambda('i',
operator.__class__(
Modified: Sandbox/ocql-foliage/src/ocql/engine/queryparser.py
===================================================================
--- Sandbox/ocql-foliage/src/ocql/engine/queryparser.py 2007-09-25 19:15:17 UTC (rev 80041)
+++ Sandbox/ocql-foliage/src/ocql/engine/queryparser.py 2007-09-25 19:48:23 UTC (rev 80042)
@@ -49,6 +49,7 @@
class QueryParser:
def __init__(self, engine):
+ self.engine = engine
self.metadata = engine.metadata
def parse(self, query):
@@ -60,4 +61,6 @@
return True
def compile(self, query):
- return WIRED
\ No newline at end of file
+ x = WIRED
+ x.setMetadata(self.metadata)
+ return x
\ No newline at end of file
Modified: Sandbox/ocql-foliage/src/testdb.py
===================================================================
--- Sandbox/ocql-foliage/src/testdb.py 2007-09-25 19:15:17 UTC (rev 80041)
+++ Sandbox/ocql-foliage/src/testdb.py 2007-09-25 19:48:23 UTC (rev 80042)
@@ -21,15 +21,15 @@
return self.klass
class MType(metadata.MetaType):
- def __init__(self, klass, container=None):
+ def __init__(self, klass, collection_type=None):
self.klass = klass
- self.container = container
+ self.collection_type = collection_type
def is_collection(self):
- return (self.container is not None)
+ return (self.collection_type is not None)
def get_type(self):
- return self.container
+ return self.collection_type
def get_contained(self):
return self.klass
More information about the Checkins
mailing list