Skip to content

Commit 7379b84

Browse files
committed
fix: TypeError: date.match is not a function at BaseTimeDimension.formatFromDate
1 parent f529660 commit 7379b84

File tree

4 files changed

+74
-77
lines changed

4 files changed

+74
-77
lines changed

packages/cubejs-schema-compiler/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"istanbul": "^0.4.5",
4242
"mocha": "^3.4.2",
4343
"mssql": "^6.1.0",
44-
"mysql": "^2.17.1",
44+
"mysql": "^2.18.1",
4545
"nyc": "^15.0.0",
4646
"pg-promise": "^7.3.2",
4747
"request": "^2.88.0",

packages/cubejs-schema-compiler/test/MySqlPreAggregationsTest.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ describe('MySqlPreAggregations', function test() {
7676
dimensionReferences: [source],
7777
timeDimensionReference: createdAt,
7878
granularity: 'day',
79-
partitionGranularity: 'month'
79+
partitionGranularity: 'month',
80+
scheduledRefresh: true
8081
},
8182
googleRollup: {
8283
type: 'rollup',
@@ -171,6 +172,45 @@ describe('MySqlPreAggregations', function test() {
171172
});
172173
});
173174

175+
it('partitioned scheduled refresh', () => {
176+
return compiler.compile().then(async () => {
177+
const query = new MySqlQuery({ joinGraph, cubeEvaluator, compiler }, {
178+
measures: [
179+
'visitors.count'
180+
],
181+
dimensions: [
182+
'visitors.source'
183+
],
184+
timezone: 'America/Los_Angeles',
185+
preAggregationsSchema: '',
186+
timeDimensions: [{
187+
dimension: 'visitors.createdAt',
188+
granularity: 'day',
189+
dateRange: ['2016-12-30', '2017-01-30']
190+
}],
191+
order: [{
192+
id: 'visitors.createdAt'
193+
}],
194+
});
195+
196+
const preAggregations = cubeEvaluator.scheduledPreAggregations();
197+
const partitionedPreAgg =
198+
preAggregations.find(p => p.preAggregationName === 'partitioned' && p.cube === 'visitors');
199+
200+
const minMaxQueries = query.preAggregationStartEndQueries('visitors', partitionedPreAgg.preAggregation);
201+
202+
console.log(minMaxQueries);
203+
204+
const res = await dbRunner.testQueries(minMaxQueries);
205+
206+
console.log(res);
207+
208+
res.should.be.deepEqual(
209+
[{ 'max(`visitors`.created_at)': '2017-01-07T08:00:00.000Z' }]
210+
);
211+
});
212+
});
213+
174214
it('segment', () => compiler.compile().then(() => {
175215
const query = new MySqlQuery({ joinGraph, cubeEvaluator, compiler }, {
176216
measures: [

packages/cubejs-schema-compiler/yarn.lock

Lines changed: 27 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
invariant "^2.2.4"
5252
semver "^5.5.0"
5353

54-
"@babel/core@^7.7.5", "@babel/core@^7.9.0":
54+
"@babel/core@^7.7.5":
5555
version "7.9.0"
5656
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
5757
integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==
@@ -742,17 +742,6 @@
742742
levenary "^1.1.1"
743743
semver "^5.5.0"
744744

745-
"@babel/register@^7.9.0":
746-
version "7.9.0"
747-
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b"
748-
integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==
749-
dependencies:
750-
find-cache-dir "^2.0.0"
751-
lodash "^4.17.13"
752-
make-dir "^2.1.0"
753-
pirates "^4.0.0"
754-
source-map-support "^0.5.16"
755-
756745
"@babel/standalone@^7.3.4":
757746
version "7.8.6"
758747
resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.8.6.tgz#1364534775c83bf7b7988e4ca98823bef56a0a53"
@@ -1118,10 +1107,10 @@ bcrypt-pbkdf@^1.0.0:
11181107
dependencies:
11191108
tweetnacl "^0.14.3"
11201109

1121-
bignumber.js@7.2.1:
1122-
version "7.2.1"
1123-
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f"
1124-
integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==
1110+
bignumber.js@9.0.0:
1111+
version "9.0.0"
1112+
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075"
1113+
integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==
11251114

11261115
bl@^1.0.0:
11271116
version "1.2.2"
@@ -1914,15 +1903,6 @@ file-entry-cache@^5.0.1:
19141903
dependencies:
19151904
flat-cache "^2.0.1"
19161905

1917-
find-cache-dir@^2.0.0:
1918-
version "2.1.0"
1919-
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
1920-
integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
1921-
dependencies:
1922-
commondir "^1.0.1"
1923-
make-dir "^2.0.0"
1924-
pkg-dir "^3.0.0"
1925-
19261906
find-cache-dir@^3.2.0:
19271907
version "3.3.1"
19281908
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
@@ -2745,14 +2725,6 @@ loose-envify@^1.0.0:
27452725
dependencies:
27462726
js-tokens "^3.0.0 || ^4.0.0"
27472727

2748-
make-dir@^2.0.0, make-dir@^2.1.0:
2749-
version "2.1.0"
2750-
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
2751-
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
2752-
dependencies:
2753-
pify "^4.0.1"
2754-
semver "^5.6.0"
2755-
27562728
make-dir@^3.0.0, make-dir@^3.0.2:
27572729
version "3.0.2"
27582730
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392"
@@ -2879,13 +2851,13 @@ [email protected]:
28792851
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
28802852
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
28812853

2882-
mysql@^2.17.1:
2883-
version "2.17.1"
2884-
resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.17.1.tgz#62bba4a039a9b2f73638cd1652ce50fc6f682899"
2885-
integrity sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA==
2854+
mysql@^2.18.1:
2855+
version "2.18.1"
2856+
resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717"
2857+
integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==
28862858
dependencies:
2887-
bignumber.js "7.2.1"
2888-
readable-stream "2.3.6"
2859+
bignumber.js "9.0.0"
2860+
readable-stream "2.3.7"
28892861
safe-buffer "5.1.2"
28902862
sqlstring "2.3.1"
28912863

@@ -2924,11 +2896,6 @@ node-duration@^1.0.4:
29242896
resolved "https://registry.yarnpkg.com/node-duration/-/node-duration-1.0.4.tgz#3e94ecc0e473691c89c4560074503362071cecac"
29252897
integrity sha512-eUXYNSY7DL53vqfTosggWkvyIW3bhAcqBDIlolgNYlZhianXTrCL50rlUJWD1eRqkIxMppXTfiFbp+9SjpPrgA==
29262898

2927-
node-modules-regexp@^1.0.0:
2928-
version "1.0.0"
2929-
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
2930-
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
2931-
29322899
node-preload@^0.2.0:
29332900
version "0.2.1"
29342901
resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301"
@@ -3265,32 +3232,13 @@ pify@^2.0.0:
32653232
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
32663233
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
32673234

3268-
pify@^4.0.1:
3269-
version "4.0.1"
3270-
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
3271-
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
3272-
3273-
pirates@^4.0.0:
3274-
version "4.0.1"
3275-
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
3276-
integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
3277-
dependencies:
3278-
node-modules-regexp "^1.0.0"
3279-
32803235
pkg-dir@^2.0.0:
32813236
version "2.0.0"
32823237
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
32833238
integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
32843239
dependencies:
32853240
find-up "^2.1.0"
32863241

3287-
pkg-dir@^3.0.0:
3288-
version "3.0.0"
3289-
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
3290-
integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
3291-
dependencies:
3292-
find-up "^3.0.0"
3293-
32943242
pkg-dir@^4.1.0:
32953243
version "4.2.0"
32963244
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -3400,7 +3348,20 @@ read-pkg@^2.0.0:
34003348
normalize-package-data "^2.3.2"
34013349
path-type "^2.0.0"
34023350

3403-
[email protected], readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5:
3351+
3352+
version "2.3.7"
3353+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
3354+
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
3355+
dependencies:
3356+
core-util-is "~1.0.0"
3357+
inherits "~2.0.3"
3358+
isarray "~1.0.0"
3359+
process-nextick-args "~2.0.0"
3360+
safe-buffer "~5.1.1"
3361+
string_decoder "~1.1.1"
3362+
util-deprecate "~1.0.1"
3363+
3364+
readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5:
34043365
version "2.3.6"
34053366
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
34063367
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
@@ -3647,7 +3608,7 @@ [email protected]:
36473608
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
36483609
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
36493610

3650-
semver@^5.4.1, semver@^5.6.0:
3611+
semver@^5.4.1:
36513612
version "5.7.1"
36523613
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
36533614
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -3744,20 +3705,12 @@ slice-ansi@^2.1.0:
37443705
astral-regex "^1.0.0"
37453706
is-fullwidth-code-point "^2.0.0"
37463707

3747-
source-map-support@^0.5.16:
3748-
version "0.5.16"
3749-
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
3750-
integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
3751-
dependencies:
3752-
buffer-from "^1.0.0"
3753-
source-map "^0.6.0"
3754-
37553708
source-map@^0.5.0:
37563709
version "0.5.7"
37573710
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
37583711
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
37593712

3760-
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
3713+
source-map@^0.6.1, source-map@~0.6.1:
37613714
version "0.6.1"
37623715
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
37633716
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==

packages/cubejs-server-core/core/RefreshScheduler.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ class RefreshScheduler {
2525
}))
2626
);
2727

28-
const extractDate = ({ data }) => data[0] && data[0][Object.keys(data[0])[0]].toString();
28+
const extractDate = ({ data }) => {
29+
// TODO some backends return dates as objects here. Use ApiGateway data transformation ?
30+
data = JSON.parse(JSON.stringify(data));
31+
return data[0] && data[0][Object.keys(data[0])[0]];
32+
};
2933

3034
const baseQuery = {
3135
...queryingOptions,

0 commit comments

Comments
 (0)