Add support for serialising UUID type within MSSQL #961

This commit is contained in:
James Parker
2016-05-27 09:22:38 +01:00
parent 6edb0ca8ec
commit 5b654fd1c8

View File

@@ -1,6 +1,7 @@
import json
import logging
import sys
import uuid
from redash.query_runner import *
from redash.utils import JSONEncoder
@@ -22,6 +23,12 @@ types_map = {
5: TYPE_FLOAT,
}
class MSSQLJSONEncoder(JSONEncoder):
def default(self, o):
if isinstance(o, uuid.UUID):
return str(o)
return super(MSSQLJSONEncoder, self).default(o)
class SqlServer(BaseSQLQueryRunner):
@classmethod
def configuration_schema(cls):
@@ -123,7 +130,7 @@ class SqlServer(BaseSQLQueryRunner):
rows = [dict(zip((c['name'] for c in columns), row)) for row in data]
data = {'columns': columns, 'rows': rows}
json_data = json.dumps(data, cls=JSONEncoder)
json_data = json.dumps(data, cls=MSSQLJSONEncoder)
error = None
else:
error = "No data was returned."