@malloydata/malloy-tests 0.0.66-dev230807232724

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +29 -0
  2. package/bin/dump_malloytest.sh +1 -0
  3. package/bin/postgres_init.sh +9 -0
  4. package/bin/postgres_start.sh +2 -0
  5. package/bin/postgres_stop.sh +2 -0
  6. package/data/duckdb/README.md +4 -0
  7. package/data/duckdb/aircraft.parquet +0 -0
  8. package/data/duckdb/aircraft_models.parquet +0 -0
  9. package/data/duckdb/airports.parquet +0 -0
  10. package/data/duckdb/alltypes.parquet +0 -0
  11. package/data/duckdb/alltypes2.parquet +0 -0
  12. package/data/duckdb/bq_medicare_test.parquet +0 -0
  13. package/data/duckdb/carriers.parquet +0 -0
  14. package/data/duckdb/flights/part.0.parquet +0 -0
  15. package/data/duckdb/flights/part.1.parquet +0 -0
  16. package/data/duckdb/flights/part.2.parquet +0 -0
  17. package/data/duckdb/flights.parquet +0 -0
  18. package/data/duckdb/flights_partitioned.parquet +0 -0
  19. package/data/duckdb/ga_sample.parquet +0 -0
  20. package/data/duckdb/numbers.parquet +0 -0
  21. package/data/duckdb/state_facts.parquet +0 -0
  22. package/data/duckdb/test.json +3 -0
  23. package/data/duckdb/words.parquet +0 -0
  24. package/data/duckdb/words_bigger.parquet +0 -0
  25. package/data/postgres/malloytest-postgres.sql.gz +0 -0
  26. package/data/postgres/state_facts.sql +366 -0
  27. package/dist/api.spec.d.ts +1 -0
  28. package/dist/api.spec.js +77 -0
  29. package/dist/api.spec.js.map +1 -0
  30. package/dist/databases/all/expr.spec.d.ts +3 -0
  31. package/dist/databases/all/expr.spec.js +581 -0
  32. package/dist/databases/all/expr.spec.js.map +1 -0
  33. package/dist/databases/all/functions.spec.d.ts +2 -0
  34. package/dist/databases/all/functions.spec.js +784 -0
  35. package/dist/databases/all/functions.spec.js.map +1 -0
  36. package/dist/databases/all/index.spec.d.ts +2 -0
  37. package/dist/databases/all/index.spec.js +154 -0
  38. package/dist/databases/all/index.spec.js.map +1 -0
  39. package/dist/databases/all/join.spec.d.ts +2 -0
  40. package/dist/databases/all/join.spec.js +309 -0
  41. package/dist/databases/all/join.spec.js.map +1 -0
  42. package/dist/databases/all/nomodel.spec.d.ts +2 -0
  43. package/dist/databases/all/nomodel.spec.js +957 -0
  44. package/dist/databases/all/nomodel.spec.js.map +1 -0
  45. package/dist/databases/all/orderby.spec.d.ts +2 -0
  46. package/dist/databases/all/orderby.spec.js +224 -0
  47. package/dist/databases/all/orderby.spec.js.map +1 -0
  48. package/dist/databases/all/problems.spec.d.ts +2 -0
  49. package/dist/databases/all/problems.spec.js +113 -0
  50. package/dist/databases/all/problems.spec.js.map +1 -0
  51. package/dist/databases/all/sql_expressions.spec.d.ts +2 -0
  52. package/dist/databases/all/sql_expressions.spec.js +96 -0
  53. package/dist/databases/all/sql_expressions.spec.js.map +1 -0
  54. package/dist/databases/all/time.spec.d.ts +3 -0
  55. package/dist/databases/all/time.spec.js +647 -0
  56. package/dist/databases/all/time.spec.js.map +1 -0
  57. package/dist/databases/bigquery/double_truncation.spec.d.ts +1 -0
  58. package/dist/databases/bigquery/double_truncation.spec.js +50 -0
  59. package/dist/databases/bigquery/double_truncation.spec.js.map +1 -0
  60. package/dist/databases/bigquery/handexpr.spec.d.ts +1 -0
  61. package/dist/databases/bigquery/handexpr.spec.js +713 -0
  62. package/dist/databases/bigquery/handexpr.spec.js.map +1 -0
  63. package/dist/databases/bigquery/injestion_time_partitioning.spec.d.ts +1 -0
  64. package/dist/databases/bigquery/injestion_time_partitioning.spec.js +235 -0
  65. package/dist/databases/bigquery/injestion_time_partitioning.spec.js.map +1 -0
  66. package/dist/databases/bigquery/joined_filters.spec.d.ts +1 -0
  67. package/dist/databases/bigquery/joined_filters.spec.js +72 -0
  68. package/dist/databases/bigquery/joined_filters.spec.js.map +1 -0
  69. package/dist/databases/bigquery/json.spec.d.ts +1 -0
  70. package/dist/databases/bigquery/json.spec.js +86 -0
  71. package/dist/databases/bigquery/json.spec.js.map +1 -0
  72. package/dist/databases/bigquery/malloy_query.spec.d.ts +1 -0
  73. package/dist/databases/bigquery/malloy_query.spec.js +906 -0
  74. package/dist/databases/bigquery/malloy_query.spec.js.map +1 -0
  75. package/dist/databases/bigquery/performance.skipped.spec.d.ts +1 -0
  76. package/dist/databases/bigquery/performance.skipped.spec.js +70 -0
  77. package/dist/databases/bigquery/performance.skipped.spec.js.map +1 -0
  78. package/dist/databases/bigquery/time.spec.d.ts +1 -0
  79. package/dist/databases/bigquery/time.spec.js +55 -0
  80. package/dist/databases/bigquery/time.spec.js.map +1 -0
  81. package/dist/databases/bigquery/wildcard_table_names.spec.d.ts +1 -0
  82. package/dist/databases/bigquery/wildcard_table_names.spec.js +212 -0
  83. package/dist/databases/bigquery/wildcard_table_names.spec.js.map +1 -0
  84. package/dist/databases/bigquery-duckdb/nested_source_table.spec.d.ts +1 -0
  85. package/dist/databases/bigquery-duckdb/nested_source_table.spec.js +247 -0
  86. package/dist/databases/bigquery-duckdb/nested_source_table.spec.js.map +1 -0
  87. package/dist/databases/bigquery-postgres/multi_connection.spec.d.ts +1 -0
  88. package/dist/databases/bigquery-postgres/multi_connection.spec.js +138 -0
  89. package/dist/databases/bigquery-postgres/multi_connection.spec.js.map +1 -0
  90. package/dist/databases/bigquery-postgres/streaming.spec.d.ts +1 -0
  91. package/dist/databases/bigquery-postgres/streaming.spec.js +88 -0
  92. package/dist/databases/bigquery-postgres/streaming.spec.js.map +1 -0
  93. package/dist/databases/duckdb/duckdb.spec.d.ts +1 -0
  94. package/dist/databases/duckdb/duckdb.spec.js +116 -0
  95. package/dist/databases/duckdb/duckdb.spec.js.map +1 -0
  96. package/dist/databases/postgres/postgres.spec.d.ts +1 -0
  97. package/dist/databases/postgres/postgres.spec.js +137 -0
  98. package/dist/databases/postgres/postgres.spec.js.map +1 -0
  99. package/dist/databases/shared/test_list.d.ts +3 -0
  100. package/dist/databases/shared/test_list.js +24 -0
  101. package/dist/databases/shared/test_list.js.map +1 -0
  102. package/dist/dependencies.spec.d.ts +1 -0
  103. package/dist/dependencies.spec.js +63 -0
  104. package/dist/dependencies.spec.js.map +1 -0
  105. package/dist/index.d.ts +11 -0
  106. package/dist/index.js +49 -0
  107. package/dist/index.js.map +1 -0
  108. package/dist/model/utils.spec.d.ts +1 -0
  109. package/dist/model/utils.spec.js +38 -0
  110. package/dist/model/utils.spec.js.map +1 -0
  111. package/dist/models/faa_model.d.ts +5 -0
  112. package/dist/models/faa_model.js +977 -0
  113. package/dist/models/faa_model.js.map +1 -0
  114. package/dist/models/medicare_model.d.ts +4 -0
  115. package/dist/models/medicare_model.js +243 -0
  116. package/dist/models/medicare_model.js.map +1 -0
  117. package/dist/render/render.spec.d.ts +1 -0
  118. package/dist/render/render.spec.js +551 -0
  119. package/dist/render/render.spec.js.map +1 -0
  120. package/dist/runtimes.d.ts +33 -0
  121. package/dist/runtimes.js +147 -0
  122. package/dist/runtimes.js.map +1 -0
  123. package/dist/tags.spec.d.ts +1 -0
  124. package/dist/tags.spec.js +259 -0
  125. package/dist/tags.spec.js.map +1 -0
  126. package/dist/util/db-jest-matchers.d.ts +19 -0
  127. package/dist/util/db-jest-matchers.js +90 -0
  128. package/dist/util/db-jest-matchers.js.map +1 -0
  129. package/dist/util/index.d.ts +16 -0
  130. package/dist/util/index.js +171 -0
  131. package/dist/util/index.js.map +1 -0
  132. package/package.json +35 -0
  133. package/src/api.spec.ts +84 -0
  134. package/src/databases/all/expr.spec.ts +704 -0
  135. package/src/databases/all/functions.spec.ts +1135 -0
  136. package/src/databases/all/index.spec.ts +178 -0
  137. package/src/databases/all/join.spec.ts +350 -0
  138. package/src/databases/all/nomodel.spec.ts +1159 -0
  139. package/src/databases/all/orderby.spec.ts +268 -0
  140. package/src/databases/all/problems.spec.ts +121 -0
  141. package/src/databases/all/sql_expressions.spec.ts +107 -0
  142. package/src/databases/all/time.spec.ts +793 -0
  143. package/src/databases/bigquery/double_truncation.spec.ts +51 -0
  144. package/src/databases/bigquery/handexpr.spec.ts +782 -0
  145. package/src/databases/bigquery/injestion_time_partitioning.spec.ts +268 -0
  146. package/src/databases/bigquery/joined_filters.spec.ts +75 -0
  147. package/src/databases/bigquery/json.spec.ts +95 -0
  148. package/src/databases/bigquery/malloy_query.spec.ts +1036 -0
  149. package/src/databases/bigquery/performance.skipped.spec.ts +73 -0
  150. package/src/databases/bigquery/time.spec.ts +59 -0
  151. package/src/databases/bigquery/wildcard_table_names.spec.ts +233 -0
  152. package/src/databases/bigquery-duckdb/nested_source_table.spec.ts +268 -0
  153. package/src/databases/bigquery-postgres/multi_connection.spec.ts +143 -0
  154. package/src/databases/bigquery-postgres/streaming.spec.ts +100 -0
  155. package/src/databases/duckdb/duckdb.spec.ts +131 -0
  156. package/src/databases/postgres/postgres.spec.ts +167 -0
  157. package/src/databases/shared/test_list.ts +24 -0
  158. package/src/dependencies.spec.ts +62 -0
  159. package/src/index.ts +36 -0
  160. package/src/model/utils.spec.ts +37 -0
  161. package/src/models/faa_model.ts +995 -0
  162. package/src/models/medicare_model.ts +246 -0
  163. package/src/render/__snapshots__/render.spec.ts.snap +12574 -0
  164. package/src/render/render.spec.ts +670 -0
  165. package/src/runtimes.ts +182 -0
  166. package/src/tags.spec.ts +277 -0
  167. package/src/util/db-jest-matchers.ts +128 -0
  168. package/src/util/index.ts +191 -0
  169. package/tsconfig.json +25 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nomodel.spec.js","sourceRoot":"","sources":["../../../src/databases/all/nomodel.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RuntimeList } from '../../runtimes';
2
+ export declare const orderBySharedTests: (runtimes: RuntimeList, _splitFunction?: ((column: string, splitChar: string) => string) | undefined) => void;
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /* eslint-disable no-console */
3
+ /*
4
+ * Copyright 2023 Google LLC
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining
7
+ * a copy of this software and associated documentation files
8
+ * (the "Software"), to deal in the Software without restriction,
9
+ * including without limitation the rights to use, copy, modify, merge,
10
+ * publish, distribute, sublicense, and/or sell copies of the Software,
11
+ * and to permit persons to whom the Software is furnished to do so,
12
+ * subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be
15
+ * included in all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.orderBySharedTests = void 0;
27
+ const runtimes_1 = require("../../runtimes");
28
+ const util_1 = require("../../util");
29
+ const orderBySharedTests = (runtimes, _splitFunction) => {
30
+ afterAll(async () => {
31
+ await runtimes.closeAll();
32
+ });
33
+ async function validateCompilation(databaseName, sql) {
34
+ try {
35
+ const runtime = runtimes.runtimeMap.get(databaseName);
36
+ if (runtime === undefined) {
37
+ throw new Error(`Unknown database ${databaseName}`);
38
+ }
39
+ await (await runtime.connections.lookupConnection(databaseName)).runSQL(`WITH test AS(\n${sql}) SELECT '[{"foo":1}]' as results`);
40
+ }
41
+ catch (e) {
42
+ console.log(`SQL: didn't compile\n=============\n${sql}`);
43
+ throw e;
44
+ }
45
+ return true;
46
+ }
47
+ const expressionModels = new Map();
48
+ runtimes.runtimeMap.forEach((runtime, databaseName) => expressionModels.set(databaseName, runtime.loadModel(`
49
+ source: models is table('malloytest.aircraft_models'){
50
+ measure: model_count is count()
51
+ }
52
+ `)));
53
+ expressionModels.forEach((orderByModel, databaseName) => {
54
+ it(`boolean type - ${databaseName}`, async () => {
55
+ const result = await orderByModel
56
+ .loadQuery(`
57
+ query: models-> {
58
+ group_by: big is seats >=20
59
+ aggregate: model_count is count()
60
+ }
61
+ `)
62
+ .run();
63
+ expect(result.data.row(0).cell('big').value).toBe(false);
64
+ expect(result.data.row(0).cell('model_count').value).toBe(58451);
65
+ });
66
+ it(`boolean in pipeline - ${databaseName}`, async () => {
67
+ const result = await orderByModel
68
+ .loadQuery(`
69
+ query: models->{
70
+ group_by:
71
+ manufacturer,
72
+ big is seats >=21
73
+ aggregate: model_count is count()
74
+ }->{
75
+ group_by: big
76
+ aggregate: model_count is model_count.sum()
77
+ }
78
+ `)
79
+ .run();
80
+ expect(result.data.row(0).cell('big').value).toBe(false);
81
+ expect(result.data.row(0).cell('model_count').value).toBe(58500);
82
+ });
83
+ it(`filtered measures in model are aggregates #352 - ${databaseName}`, async () => {
84
+ const result = await orderByModel
85
+ .loadQuery(`
86
+ query: models->{
87
+ aggregate: j_names is model_count {where: manufacturer ~ 'J%'}
88
+ }
89
+ -> {
90
+ group_by: j_names
91
+ }
92
+ `)
93
+ .run();
94
+ expect(result.data.row(0).cell('j_names').value).toBe(1358);
95
+ });
96
+ it(`reserved words are quoted - ${databaseName}`, async () => {
97
+ const sql = await orderByModel
98
+ .loadQuery(`
99
+ query: models->{
100
+ aggregate: fetch is count()
101
+ }->{
102
+ group_by: fetch
103
+ }
104
+ `)
105
+ .getSQL();
106
+ await validateCompilation(databaseName, sql);
107
+ });
108
+ it(`reserved words are quoted in turtles - ${databaseName}`, async () => {
109
+ const sql = await orderByModel
110
+ .loadQuery(`
111
+ query: models->{
112
+ nest: withx is {
113
+ group_by: select is UPPER(manufacturer)
114
+ aggregate: fetch is count()
115
+ }
116
+ } -> {
117
+ project:
118
+ withxz is lower(withx.select)
119
+ fetch is withx.fetch
120
+ }
121
+ `)
122
+ .getSQL();
123
+ await validateCompilation(databaseName, sql);
124
+ });
125
+ it.skip('reserved words in structure definitions', async () => {
126
+ const sql = await orderByModel
127
+ .loadQuery(`
128
+ query: models->{
129
+ nest: withx is {
130
+ group_by: is select is UPPER(manufacturer)
131
+ aggregate: fetch is count()
132
+ }
133
+ } -> {
134
+ project: withxis lower(withx.select)
135
+ project: fetch is with.fetch
136
+ }
137
+ `)
138
+ .getSQL();
139
+ await validateCompilation(databaseName, sql);
140
+ });
141
+ it(`aggregate and scalar conditions - ${databaseName}`, async () => {
142
+ const sql = await orderByModel
143
+ .loadQuery(`
144
+ query: models->{
145
+ aggregate: model_count is count(){? manufacturer ? ~'A%' }
146
+ }
147
+ `)
148
+ .getSQL();
149
+ await validateCompilation(databaseName, sql);
150
+ });
151
+ // I'm not sure I have the syntax right here...
152
+ it(`modeled having simple - ${databaseName}`, async () => {
153
+ const result = await orderByModel
154
+ .loadQuery(`
155
+ source: popular_names is from(models->{
156
+ having: model_count > 100
157
+ group_by: manufacturer
158
+ aggregate: model_count
159
+ })
160
+
161
+ query: popular_names->{
162
+ order_by: 2
163
+ project: manufacturer, model_count
164
+ }
165
+ `)
166
+ .run();
167
+ expect(result.data.row(0).cell('model_count').value).toBe(102);
168
+ });
169
+ it(`modeled having complex - ${databaseName}`, async () => {
170
+ const result = await orderByModel
171
+ .loadQuery(`
172
+ source: popular_names is from(models->{
173
+ having: model_count > 100
174
+ group_by: manufacturer
175
+ aggregate: model_count
176
+ nest: l is {
177
+ top: 5
178
+ group_by: manufacturer
179
+ aggregate: model_count
180
+ }
181
+ })
182
+
183
+ query: popular_names->{
184
+ order_by: 2
185
+ project: manufacturer, model_count
186
+ }
187
+ `)
188
+ .run();
189
+ expect(result.data.row(0).cell('model_count').value).toBe(102);
190
+ });
191
+ it(`turtle references joined element - ${databaseName}`, async () => {
192
+ const sql = await orderByModel
193
+ .loadQuery(`
194
+ source: a is table('malloytest.aircraft'){
195
+ primary_key: tail_num
196
+ measure: aircraft_count is count(*)
197
+ }
198
+
199
+ source: f is table('malloytest.flights'){
200
+ primary_key: id2
201
+ join_one: a with tail_num
202
+
203
+ measure: flight_count is count()
204
+ query: foo is {
205
+ group_by: carrier
206
+ aggregate: flight_count
207
+ aggregate: a.aircraft_count
208
+ }
209
+ }
210
+ query: f->foo
211
+ `)
212
+ .getSQL();
213
+ await validateCompilation(databaseName, sql);
214
+ });
215
+ });
216
+ };
217
+ exports.orderBySharedTests = orderBySharedTests;
218
+ const runtimes = new runtimes_1.RuntimeList((0, util_1.databasesFromEnvironmentOr)(runtimes_1.allDatabases));
219
+ /*
220
+ * This test file reuses common tests definitions.
221
+ * For actual test development please go to: test/src/databases/shared/orderby.spec.ts
222
+ */
223
+ (0, exports.orderBySharedTests)(runtimes);
224
+ //# sourceMappingURL=orderby.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderby.spec.js","sourceRoot":"","sources":["../../../src/databases/all/orderby.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RuntimeList } from '../../runtimes';
2
+ export declare const problemsSharedTests: (runtimes: RuntimeList, _splitFunction?: ((column: string, splitChar: string) => string) | undefined) => void;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright 2023 Google LLC
4
+ *
5
+ * Permission is hereby granted, free of charge, to any person obtaining
6
+ * a copy of this software and associated documentation files
7
+ * (the "Software"), to deal in the Software without restriction,
8
+ * including without limitation the rights to use, copy, modify, merge,
9
+ * publish, distribute, sublicense, and/or sell copies of the Software,
10
+ * and to permit persons to whom the Software is furnished to do so,
11
+ * subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be
14
+ * included in all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.problemsSharedTests = void 0;
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ const runtimes_1 = require("../../runtimes");
28
+ const util_1 = require("../../util");
29
+ const problemsSharedTests = (runtimes, _splitFunction) => {
30
+ afterAll(async () => {
31
+ await runtimes.closeAll();
32
+ });
33
+ async function getError(fn) {
34
+ try {
35
+ await fn();
36
+ }
37
+ catch (error) {
38
+ return error;
39
+ }
40
+ }
41
+ runtimes.runtimeMap.forEach((runtime, databaseName) => {
42
+ describe('warnings', () => {
43
+ // Today we don't show errors after the first model entry with an error,
44
+ // so this can't work yet.
45
+ it.skip(`can appear after errors - ${databaseName}`, async () => {
46
+ const source = `
47
+ source: foo is table('asdfds');
48
+ source: bar is table('malloytest.state_facts') {
49
+ dimension: a is LENGTH('foo')
50
+ }
51
+ `;
52
+ const error = await getError(() => runtime.getModel(source));
53
+ expect(error).not.toBeUndefined();
54
+ expect(error).toMatchObject({
55
+ problems: [
56
+ {
57
+ severity: 'error',
58
+ },
59
+ {
60
+ message: "Case insensitivity for function names is deprecated, use 'length' instead",
61
+ severity: 'warn',
62
+ },
63
+ ],
64
+ });
65
+ });
66
+ it(`can appear before errors - ${databaseName}`, async () => {
67
+ const source = `
68
+ source: bar is table('malloytest.state_facts') {
69
+ dimension: a is LENGTH('foo')
70
+ }
71
+ source: foo is table('asdfds');
72
+ `;
73
+ const error = await getError(() => runtime.getModel(source));
74
+ expect(error).not.toBeUndefined();
75
+ expect(error).toMatchObject({
76
+ problems: [
77
+ {
78
+ message: "Case insensitivity for function names is deprecated, use 'length' instead",
79
+ severity: 'warn',
80
+ },
81
+ {
82
+ severity: 'error',
83
+ },
84
+ ],
85
+ });
86
+ });
87
+ it(`can appear alone - ${databaseName}`, async () => {
88
+ const source = `
89
+ source: bar is table('malloytest.state_facts') {
90
+ dimension: a is LENGTH('foo')
91
+ }
92
+ `;
93
+ const model = await runtime.getModel(source);
94
+ expect(model).toMatchObject({
95
+ problems: [
96
+ {
97
+ message: "Case insensitivity for function names is deprecated, use 'length' instead",
98
+ severity: 'warn',
99
+ },
100
+ ],
101
+ });
102
+ });
103
+ });
104
+ });
105
+ };
106
+ exports.problemsSharedTests = problemsSharedTests;
107
+ const runtimes = new runtimes_1.RuntimeList((0, util_1.databasesFromEnvironmentOr)(runtimes_1.allDatabases));
108
+ /*
109
+ * This test file reuses common tests definitions.
110
+ * For actual test development please go to: test/src/databases/shared/problems.spec.ts
111
+ */
112
+ (0, exports.problemsSharedTests)(runtimes);
113
+ //# sourceMappingURL=problems.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"problems.spec.js","sourceRoot":"","sources":["../../../src/databases/all/problems.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,8DAA8D;AAC9D,6CAAyD;AACzD,qCAAsD;AAE/C,MAAM,mBAAmB,GAAG,CACjC,QAAqB,EACrB,cAA8D,EAC9D,EAAE;IACF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,QAAQ,CAAI,EAAoB;QAC7C,IAAI;YACF,MAAM,EAAE,EAAE,CAAC;SACZ;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QACpD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACxB,wEAAwE;YACxE,0BAA0B;YAC1B,EAAE,CAAC,IAAI,CAAC,6BAA6B,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC9D,MAAM,MAAM,GAAG;;;;;OAKhB,CAAC;gBACA,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;oBAC1B,QAAQ,EAAE;wBACR;4BACE,QAAQ,EAAE,OAAO;yBAClB;wBACD;4BACE,OAAO,EACL,2EAA2E;4BAC7E,QAAQ,EAAE,MAAM;yBACjB;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8BAA8B,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,MAAM,GAAG;;;;;OAKhB,CAAC;gBACA,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;oBAC1B,QAAQ,EAAE;wBACR;4BACE,OAAO,EACL,2EAA2E;4BAC7E,QAAQ,EAAE,MAAM;yBACjB;wBACD;4BACE,QAAQ,EAAE,OAAO;yBAClB;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sBAAsB,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;gBAClD,MAAM,MAAM,GAAG;;;;OAIhB,CAAC;gBACA,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;oBAC1B,QAAQ,EAAE;wBACR;4BACE,OAAO,EACL,2EAA2E;4BAC7E,QAAQ,EAAE,MAAM;yBACjB;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArFW,QAAA,mBAAmB,uBAqF9B;AAEF,MAAM,QAAQ,GAAG,IAAI,sBAAW,CAAC,IAAA,iCAA0B,EAAC,uBAAY,CAAC,CAAC,CAAC;AAE3E;;;GAGG;AACH,IAAA,2BAAmB,EAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RuntimeList } from '../../runtimes';
2
+ export declare const sqlExpressionsSharedTests: (runtimes: RuntimeList, _splitFunction?: ((column: string, splitChar: string) => string) | undefined) => void;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /* eslint-disable no-console */
3
+ /*
4
+ * Copyright 2023 Google LLC
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining
7
+ * a copy of this software and associated documentation files
8
+ * (the "Software"), to deal in the Software without restriction,
9
+ * including without limitation the rights to use, copy, modify, merge,
10
+ * publish, distribute, sublicense, and/or sell copies of the Software,
11
+ * and to permit persons to whom the Software is furnished to do so,
12
+ * subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be
15
+ * included in all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ */
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.sqlExpressionsSharedTests = void 0;
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ const runtimes_1 = require("../../runtimes");
29
+ const util_1 = require("../../util");
30
+ // No prebuilt shared model, each test is complete. Makes debugging easier.
31
+ const sqlExpressionsSharedTests = (runtimes, _splitFunction) => {
32
+ afterAll(async () => {
33
+ await runtimes.closeAll();
34
+ });
35
+ runtimes.runtimeMap.forEach((runtime, databaseName) => {
36
+ it(`sql expression with turducken - ${databaseName}`, async () => {
37
+ const result = await runtime
38
+ .loadQuery(`
39
+ run: ${databaseName}.sql(
40
+ """SELECT * FROM (%{
41
+ ${databaseName}.table('malloytest.state_facts') -> {
42
+ aggregate: c is count()
43
+ }
44
+ }) AS state_facts """
45
+ ) -> {
46
+ project: *
47
+ }
48
+ `)
49
+ .run();
50
+ expect(result.data.value[0]['c']).toBe(51);
51
+ });
52
+ it(`sql expression in second of two queries in same block, dependent on first query - ${databaseName}`, async () => {
53
+ const result = await runtime
54
+ .loadQuery(`
55
+ query:
56
+ a is ${databaseName}.table('malloytest.state_facts') -> {
57
+ aggregate: c is count()
58
+ }
59
+ b is ${databaseName}.sql(
60
+ """SELECT * FROM (%{ -> a -> { project: * } }) AS state_facts """
61
+ ) -> {
62
+ project: *
63
+ }
64
+ run: b
65
+ `)
66
+ .run();
67
+ expect(result.data.value[0]['c']).toBe(51);
68
+ });
69
+ it(`sql expression in other sql expression - ${databaseName}`, async () => {
70
+ const result = await runtime
71
+ .loadQuery(`
72
+ run: ${databaseName}.sql("""
73
+ SELECT * from (%{
74
+ ${databaseName}.sql("""SELECT 1 as one""") -> { group_by: one }
75
+ }) as the_table
76
+ """) -> { group_by: one }
77
+ `)
78
+ .run();
79
+ expect(result.data.value[0]['one']).toBe(1);
80
+ });
81
+ it(`run sql expression as query - ${databaseName}`, async () => {
82
+ const result = await runtime
83
+ .loadQuery(`run: ${databaseName}.sql("""SELECT 1 as one""")`)
84
+ .run();
85
+ expect(result.data.value[0]['one']).toBe(1);
86
+ });
87
+ });
88
+ };
89
+ exports.sqlExpressionsSharedTests = sqlExpressionsSharedTests;
90
+ const runtimes = new runtimes_1.RuntimeList((0, util_1.databasesFromEnvironmentOr)(runtimes_1.allDatabases));
91
+ /*
92
+ * This test file reuses common tests definitions.
93
+ * For actual test development please go to: test/src/databases/shared/sql_expressions.spec.ts
94
+ */
95
+ (0, exports.sqlExpressionsSharedTests)(runtimes);
96
+ //# sourceMappingURL=sql_expressions.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql_expressions.spec.js","sourceRoot":"","sources":["../../../src/databases/all/sql_expressions.spec.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,8DAA8D;AAE9D,6CAAyD;AACzD,qCAAsD;AAEtD,4EAA4E;AAErE,MAAM,yBAAyB,GAAG,CACvC,QAAqB,EACrB,cAA8D,EAC9D,EAAE;IACF,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QACpD,EAAE,CAAC,mCAAmC,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,GAAG,MAAM,OAAO;iBACzB,SAAS,CACR;eACK,YAAY;;cAEb,YAAY;;;;;;;OAOnB,CACE;iBACA,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qFAAqF,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YACjH,MAAM,MAAM,GAAG,MAAM,OAAO;iBACzB,SAAS,CACR;;iBAEO,YAAY;;;iBAGZ,YAAY;;;;;;OAMtB,CACE;iBACA,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,4CAA4C,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,MAAM,GAAG,MAAM,OAAO;iBACzB,SAAS,CACR;eACK,YAAY;;cAEb,YAAY;;;OAGnB,CACE;iBACA,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,iCAAiC,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,GAAG,MAAM,OAAO;iBACzB,SAAS,CAAC,QAAQ,YAAY,6BAA6B,CAAC;iBAC5D,GAAG,EAAE,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnEW,QAAA,yBAAyB,6BAmEpC;AAEF,MAAM,QAAQ,GAAG,IAAI,sBAAW,CAAC,IAAA,iCAA0B,EAAC,uBAAY,CAAC,CAAC,CAAC;AAE3E;;;GAGG;AACH,IAAA,iCAAyB,EAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RuntimeList } from '../../runtimes';
2
+ import '../../util/db-jest-matchers';
3
+ export declare const timeSharedTests: (runtimes: RuntimeList, _splitFunction?: ((column: string, splitChar: string) => string) | undefined) => void;