mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
Merge pull request #1089 from James226/master
Add support for serialising UUID type within MSSQL #961
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
import uuid
|
||||||
|
|
||||||
from redash.query_runner import *
|
from redash.query_runner import *
|
||||||
from redash.utils import JSONEncoder
|
from redash.utils import JSONEncoder
|
||||||
@@ -22,6 +23,12 @@ types_map = {
|
|||||||
5: TYPE_FLOAT,
|
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):
|
class SqlServer(BaseSQLQueryRunner):
|
||||||
@classmethod
|
@classmethod
|
||||||
def configuration_schema(cls):
|
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]
|
rows = [dict(zip((c['name'] for c in columns), row)) for row in data]
|
||||||
|
|
||||||
data = {'columns': columns, 'rows': rows}
|
data = {'columns': columns, 'rows': rows}
|
||||||
json_data = json.dumps(data, cls=JSONEncoder)
|
json_data = json.dumps(data, cls=MSSQLJSONEncoder)
|
||||||
error = None
|
error = None
|
||||||
else:
|
else:
|
||||||
error = "No data was returned."
|
error = "No data was returned."
|
||||||
|
|||||||
Reference in New Issue
Block a user