Redshift shouldn't be here

This commit is contained in:
Eran Kampf
2014-01-30 16:03:58 +02:00
parent b056e49ec5
commit b0159c8246

View File

@@ -18,11 +18,11 @@ def mysql(connection_string):
return column_name
def query_runner(query):
# TODO: remove these lines
import settings
connection_string = settings.CONNECTION_STRING
# ENDTODO
# # TODO: remove these lines
# import settings
# connection_string = settings.CONNECTION_STRING
# # ENDTODO
print connection_string
if connection_string.endswith(';'):
connection_string = connection_string[0:-1]
@@ -63,59 +63,4 @@ def mysql(connection_string):
return json_data, error
return query_runner
def redshift(connection_string):
def column_friendly_name(column_name):
return column_name
def wait(conn):
while 1:
state = conn.poll()
if state == psycopg2.extensions.POLL_OK:
break
elif state == psycopg2.extensions.POLL_WRITE:
select.select([], [conn.fileno()], [])
elif state == psycopg2.extensions.POLL_READ:
select.select([conn.fileno()], [], [])
else:
raise psycopg2.OperationalError("poll() returned %s" % state)
def query_runner(query):
connection = psycopg2.connect(connection_string, async=True)
wait(connection)
cursor = connection.cursor()
try:
cursor.execute(query)
wait(connection)
column_names = [col.name for col in cursor.description]
rows = [dict(zip(column_names, row)) for row in cursor]
columns = [{'name': col.name,
'friendly_name': column_friendly_name(col.name),
'type': None} for col in cursor.description]
data = {'columns': columns, 'rows': rows}
json_data = json.dumps(data, cls=JSONEncoder)
error = None
cursor.close()
except psycopg2.DatabaseError as e:
json_data = None
error = e.message
except KeyboardInterrupt:
connection.cancel()
error = "Query cancelled by user."
json_data = None
except Exception as e:
raise sys.exc_info()[1], None, sys.exc_info()[2]
finally:
connection.close()
return json_data, error
return query_runner
return query_runner