You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by be...@apache.org on 2018/09/11 05:16:21 UTC

[incubator-superset] branch master updated: [sql lab] handle large ints, prevent overflow (#5829)

This is an automated email from the ASF dual-hosted git repository.

beto pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 039e7c5  [sql lab] handle large ints, prevent overflow (#5829)
039e7c5 is described below

commit 039e7c56d8d7338759213f3acd0d7a81a724781f
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Mon Sep 10 22:16:18 2018 -0700

    [sql lab] handle large ints, prevent overflow (#5829)
    
    * [sql lab] handle large ints, prevent overflow
    
    * Fix tests
---
 superset/assets/package.json                            |  1 +
 superset/assets/spec/javascripts/sqllab/actions_spec.js |  9 +--------
 superset/assets/src/SqlLab/actions.js                   |  7 +++++--
 superset/assets/yarn.lock                               | 10 ++++++++++
 yarn.lock                                               |  4 ----
 5 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/superset/assets/package.json b/superset/assets/package.json
index d93106e..4d137a4 100644
--- a/superset/assets/package.json
+++ b/superset/assets/package.json
@@ -77,6 +77,7 @@
     "immutable": "^3.8.2",
     "jed": "^1.1.1",
     "jquery": "3.1.1",
+    "json-bigint": "^0.3.0",
     "lodash.throttle": "^4.1.1",
     "mapbox-gl": "^0.45.0",
     "mathjs": "^3.20.2",
diff --git a/superset/assets/spec/javascripts/sqllab/actions_spec.js b/superset/assets/spec/javascripts/sqllab/actions_spec.js
index 5909ca8..c3d4aa2 100644
--- a/superset/assets/spec/javascripts/sqllab/actions_spec.js
+++ b/superset/assets/spec/javascripts/sqllab/actions_spec.js
@@ -56,7 +56,7 @@ describe('async actions', () => {
     });
 
     it('calls querySuccess on ajax success', () => {
-      ajaxStub.yieldsTo('success', { data: '' });
+      ajaxStub.yieldsTo('success', '{ "data": "" }');
       makeRequest();
       expect(dispatch.callCount).to.equal(2);
       expect(dispatch.getCall(1).args[0].type).to.equal(actions.QUERY_SUCCESS);
@@ -86,13 +86,6 @@ describe('async actions', () => {
       expect(dispatch.args[0][0].type).to.equal(actions.START_QUERY);
     });
 
-    it('calls querySuccess on ajax success', () => {
-      ajaxStub.yieldsTo('success', { data: '' });
-      makeRequest();
-      expect(dispatch.callCount).to.equal(2);
-      expect(dispatch.getCall(1).args[0].type).to.equal(actions.QUERY_SUCCESS);
-    });
-
     it('calls queryFailed on ajax error', () => {
       ajaxStub.yieldsTo('error', { responseJSON: { error: 'error text' } });
       makeRequest();
diff --git a/superset/assets/src/SqlLab/actions.js b/superset/assets/src/SqlLab/actions.js
index efd4b97..81bd913 100644
--- a/superset/assets/src/SqlLab/actions.js
+++ b/superset/assets/src/SqlLab/actions.js
@@ -2,6 +2,8 @@
 /* eslint no-undef: 2 */
 import $ from 'jquery';
 import shortid from 'shortid';
+import JSONbig from 'json-bigint';
+
 import { now } from '../modules/dates';
 import { t } from '../locales';
 import {
@@ -125,10 +127,11 @@ export function fetchQueryResults(query) {
     const sqlJsonUrl = `/superset/results/${query.resultsKey}/`;
     $.ajax({
       type: 'GET',
-      dataType: 'json',
+      dataType: 'text',
       url: sqlJsonUrl,
       success(results) {
-        dispatch(querySuccess(query, results));
+        const parsedResults = JSONbig.parse(results);
+        dispatch(querySuccess(query, parsedResults));
       },
       error(err) {
         let msg = t('Failed at retrieving results from the results backend');
diff --git a/superset/assets/yarn.lock b/superset/assets/yarn.lock
index 243371e..5271b82 100644
--- a/superset/assets/yarn.lock
+++ b/superset/assets/yarn.lock
@@ -2288,6 +2288,10 @@ bignumber.js@^2.1.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
 
+bignumber.js@^7.0.0:
+  version "7.2.1"
+  resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f"
+
 binary-extensions@^1.0.0:
   version "1.11.0"
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
@@ -7003,6 +7007,12 @@ jsesc@~0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
 
+json-bigint@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-0.3.0.tgz#0ccd912c4b8270d05f056fbd13814b53d3825b1e"
+  dependencies:
+    bignumber.js "^7.0.0"
+
 json-buffer@3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index fb57ccd..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,4 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-