comparison python/storage.py @ 852:45a53542e046

updated unnecessary complicated query
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 20 Sep 2016 16:59:24 -0400
parents c724a51d4f5f
children 33d296984dd8
comparison
equal deleted inserted replaced
851:07fb949ff98f 852:45a53542e046
135 135
136 def getObjectCriteria(objectNumbers): 136 def getObjectCriteria(objectNumbers):
137 if objectNumbers is None: 137 if objectNumbers is None:
138 query = '' 138 query = ''
139 elif type(objectNumbers) == int: 139 elif type(objectNumbers) == int:
140 query = 'between 0 and {0}'.format(objectNumbers-1) 140 query = '<= {0}'.format(objectNumbers-1)
141 elif type(objectNumbers) == list: 141 elif type(objectNumbers) == list:
142 query = 'in ('+', '.join([str(n) for n in objectNumbers])+')' 142 query = 'in ('+', '.join([str(n) for n in objectNumbers])+')'
143 else: 143 else:
144 print('objectNumbers {} are not a known type ({})'.format(objectNumbers, type(objectNumbers))) 144 print('objectNumbers {} are not a known type ({})'.format(objectNumbers, type(objectNumbers)))
145 query = '' 145 query = ''
247 if trajectoryType == 'object': 247 if trajectoryType == 'object':
248 cursor = connection.cursor() 248 cursor = connection.cursor()
249 try: 249 try:
250 # attribute feature numbers to objects 250 # attribute feature numbers to objects
251 objectCriteria = getObjectCriteria(objectNumbers) 251 objectCriteria = getObjectCriteria(objectNumbers)
252 queryStatement = 'SELECT P.trajectory_id, OF.object_id from positions P, objects_features OF WHERE P.trajectory_id = OF.trajectory_id' 252 queryStatement = 'SELECT trajectory_id, object_id FROM objects_features'
253 if objectNumbers is not None: 253 if objectNumbers is not None:
254 queryStatement += ' and OF.object_id '+objectCriteria 254 queryStatement += ' WHERE object_id '+objectCriteria
255 queryStatement += ' group by P.trajectory_id order by OF.object_id' # order is important to group all features per object 255 queryStatement += ' ORDER BY object_id' # order is important to group all features per object
256 cursor.execute(queryStatement) 256 cursor.execute(queryStatement)
257 logging.debug(queryStatement) 257 logging.debug(queryStatement)
258 258
259 featureNumbers = {} 259 featureNumbers = {}
260 for row in cursor: 260 for row in cursor: