Mercurial > hg > nsaunier > traffic-intelligence
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: |
