[Checkins]
SVN: Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/
add additional method to metadata to search whether there is
an index available for a particular class.property
Charith Paranaliyanage
paranaliyanage at gmail.com
Fri Jul 11 01:37:02 EDT 2008
Log message for revision 88243:
add additional method to metadata to search whether there is an index available for a particular class.property
Changed:
U Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/database/metadata.py
U Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/parser/queryparser.py
-=-
Modified: Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/database/metadata.py
===================================================================
--- Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/database/metadata.py 2008-07-11 05:05:30 UTC (rev 88242)
+++ Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/database/metadata.py 2008-07-11 05:37:00 UTC (rev 88243)
@@ -5,7 +5,7 @@
from zope.component import getUtility
from zope.component import getUtilitiesFor
from zope.app.catalog.interfaces import ICatalog
-from zope.app.catalog.attribute import AttributeIndex
+from zope.app.catalog.field import FieldIndex
from zope.app.intid import IIntIds
import zc.relation.interfaces
@@ -100,12 +100,23 @@
intids = getUtility(IIntIds)
for name, catalog in catalogs:
for iname, index in catalog.items():
- if isinstance(index, AttributeIndex)and index.field_name == property and index.interface.__name__ == klass:
+ if isinstance(index, FieldIndex) and \
+ index.field_name == property and \
+ index.interface.__name__ == klass:
results = catalog.apply({iname:(lowerbound, upperbound)})
obj_list = [intids.getObject(result).name for result in results]
return obj_list
- return None
+ def hasPropertyIndex(self, klass, property):
+ catalogs = getUtilitiesFor(ICatalog)
+ intids = getUtility(IIntIds)
+ for name, catalog in catalogs:
+ for iname, index in catalog.items():
+ if isinstance(index, FieldIndex) and \
+ index.field_name == property and \
+ index.interface.__name__ == klass:
+ return True
+ return False
def get_class(self, klassname):
Modified: Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/parser/queryparser.py
===================================================================
--- Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/parser/queryparser.py 2008-07-11 05:05:30 UTC (rev 88242)
+++ Sandbox/adamg/ocql/branches/optimize-with-index/src/ocql/parser/queryparser.py 2008-07-11 05:37:00 UTC (rev 88243)
@@ -351,7 +351,6 @@
def p_expr_equery(self, t):
r'''expr : TYPE SQUAREL xprs SQUARER
'''
- #I also change the expected query in parser.txt
t[0] = Query(self.metadata, self.symbols, self.types[t[1]],t[3],None)
def p_expr_query(self, t):
More information about the Checkins
mailing list