Skip to content

Commit 868d4fb

Browse files
authored
Merge pull request #319 from dataminelab/sql-view-expection-for-big-integers
Query view expection for big integers
2 parents f172dea + 7aea73b commit 868d4fb

File tree

8 files changed

+1101
-96
lines changed

8 files changed

+1101
-96
lines changed

client/app/lib/value-format.js

Lines changed: 0 additions & 86 deletions
This file was deleted.

client/app/services/query-result.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { QueryResultError } from "@/services/query";
55
import { Auth } from "@/services/auth";
66
import { isString, uniqBy, each, isNumber, includes, extend, forOwn, get } from "lodash";
77

8+
const JSONbigString = require('json-bigint')({ storeAsString: true });
89
const logger = debug("redash:services:QueryResult");
910
const filterTypes = ["filter", "multi-filter", "multiFilter"];
1011

@@ -45,7 +46,9 @@ function getColumnFriendlyName(column) {
4546

4647
const createOrSaveUrl = data => (data.id ? `api/query_results/${data.id}` : "api/query_results");
4748
const QueryResultResource = {
48-
get: ({ id }) => axios.get(`api/query_results/${id}`),
49+
get: ({ id }) => axios.get(`api/query_results/${id}`, {
50+
transformResponse: (response) => JSONbigString.parse(response)
51+
}),
4952
post: data => axios.post(createOrSaveUrl(data), data),
5053
};
5154

@@ -335,7 +338,9 @@ class QueryResult {
335338
queryResult.deferred.onStatusChange(ExecutionStatus.LOADING_RESULT);
336339

337340
axios
338-
.get(`api/queries/${queryId}/results/${id}.json`)
341+
.get(`api/queries/${queryId}/results/${id}.json`, {
342+
transformResponse: (response) => JSONbigString.parse(response)
343+
})
339344
.then(response => {
340345
// Success handler
341346
queryResult.isLoadingResult = false;

client/app/services/report-result.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { QueryResultError } from "@/services/query";
55
import { Auth } from "@/services/auth";
66
import { isString, uniqBy, each, isNumber, includes, extend, forOwn, get } from "lodash";
77

8+
const JSONbigString = require('json-bigint')({ storeAsString: true });
89
const logger = debug("redash:services:QueryResult");
910
const filterTypes = ["filter", "multi-filter", "multiFilter"];
1011

@@ -45,7 +46,9 @@ function getColumnFriendlyName(column) {
4546

4647
const createOrSaveUrl = data => (data.id ? `api/query_results/${data.id}` : "api/query_results");
4748
const QueryResultResource = {
48-
get: ({ id }) => axios.get(`api/query_results/${id}`),
49+
get: ({ id }) => axios.get(`api/query_results/${id}`, {
50+
transformResponse: (response) => JSONbigString.parse(response)
51+
}),
4952
post: data => axios.post(createOrSaveUrl(data), data),
5053
};
5154

@@ -333,7 +336,9 @@ class QueryResult {
333336
queryResult.deferred.onStatusChange(ExecutionStatus.LOADING_RESULT);
334337

335338
axios
336-
.get(`api/queries/${queryId}/results/${id}.json`)
339+
.get(`api/queries/${queryId}/results/${id}.json`, {
340+
transformResponse: (response) => JSONbigString.parse(response)
341+
})
337342
.then(response => {
338343
// Success handler
339344
queryResult.isLoadingResult = false;

client/package-lock.json

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"immutable": "4.0.0-rc.9",
7777
"immutable-class": "0.9.8",
7878
"js-cookie": "^2.2.1",
79+
"json-bigint": "^1.0.0",
7980
"lodash": "^4.17.20",
8081
"lz-string": "^1.4.4",
8182
"markdown": "0.5.0",

0 commit comments

Comments
 (0)