@malloydata/malloy-tests 0.0.135 → 0.0.136-dev240326234246

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 (118) hide show
  1. package/dist/api.spec.d.ts +1 -0
  2. package/dist/api.spec.js +113 -0
  3. package/dist/api.spec.js.map +1 -0
  4. package/dist/databases/all/db_index.spec.d.ts +1 -0
  5. package/dist/databases/all/db_index.spec.js +126 -0
  6. package/dist/databases/all/db_index.spec.js.map +1 -0
  7. package/dist/databases/all/expr.spec.d.ts +1 -0
  8. package/dist/databases/all/expr.spec.js +652 -0
  9. package/dist/databases/all/expr.spec.js.map +1 -0
  10. package/dist/databases/all/functions.spec.d.ts +1 -0
  11. package/dist/databases/all/functions.spec.js +1180 -0
  12. package/dist/databases/all/functions.spec.js.map +1 -0
  13. package/dist/databases/all/join.spec.d.ts +1 -0
  14. package/dist/databases/all/join.spec.js +255 -0
  15. package/dist/databases/all/join.spec.js.map +1 -0
  16. package/dist/databases/all/lenses.spec.d.ts +1 -0
  17. package/dist/databases/all/lenses.spec.js +374 -0
  18. package/dist/databases/all/lenses.spec.js.map +1 -0
  19. package/dist/databases/all/nomodel.spec.d.ts +1 -0
  20. package/dist/databases/all/nomodel.spec.js +1070 -0
  21. package/dist/databases/all/nomodel.spec.js.map +1 -0
  22. package/dist/databases/all/orderby.spec.d.ts +1 -0
  23. package/dist/databases/all/orderby.spec.js +170 -0
  24. package/dist/databases/all/orderby.spec.js.map +1 -0
  25. package/dist/databases/all/problems.spec.d.ts +1 -0
  26. package/dist/databases/all/problems.spec.js +106 -0
  27. package/dist/databases/all/problems.spec.js.map +1 -0
  28. package/dist/databases/all/sql_expressions.spec.d.ts +1 -0
  29. package/dist/databases/all/sql_expressions.spec.js +73 -0
  30. package/dist/databases/all/sql_expressions.spec.js.map +1 -0
  31. package/dist/databases/all/time.spec.d.ts +1 -0
  32. package/dist/databases/all/time.spec.js +602 -0
  33. package/dist/databases/all/time.spec.js.map +1 -0
  34. package/dist/databases/bigquery/double_truncation.spec.d.ts +1 -0
  35. package/dist/databases/bigquery/double_truncation.spec.js +50 -0
  36. package/dist/databases/bigquery/double_truncation.spec.js.map +1 -0
  37. package/dist/databases/bigquery/handexpr.spec.d.ts +1 -0
  38. package/dist/databases/bigquery/handexpr.spec.js +723 -0
  39. package/dist/databases/bigquery/handexpr.spec.js.map +1 -0
  40. package/dist/databases/bigquery/injestion_time_partitioning.spec.d.ts +1 -0
  41. package/dist/databases/bigquery/injestion_time_partitioning.spec.js +235 -0
  42. package/dist/databases/bigquery/injestion_time_partitioning.spec.js.map +1 -0
  43. package/dist/databases/bigquery/joined_filters.spec.d.ts +1 -0
  44. package/dist/databases/bigquery/joined_filters.spec.js +72 -0
  45. package/dist/databases/bigquery/joined_filters.spec.js.map +1 -0
  46. package/dist/databases/bigquery/json.spec.d.ts +1 -0
  47. package/dist/databases/bigquery/json.spec.js +66 -0
  48. package/dist/databases/bigquery/json.spec.js.map +1 -0
  49. package/dist/databases/bigquery/malloy_query.spec.d.ts +1 -0
  50. package/dist/databases/bigquery/malloy_query.spec.js +840 -0
  51. package/dist/databases/bigquery/malloy_query.spec.js.map +1 -0
  52. package/dist/databases/bigquery/performance.skipped.spec.d.ts +1 -0
  53. package/dist/databases/bigquery/performance.skipped.spec.js +70 -0
  54. package/dist/databases/bigquery/performance.skipped.spec.js.map +1 -0
  55. package/dist/databases/bigquery/time.spec.d.ts +1 -0
  56. package/dist/databases/bigquery/time.spec.js +52 -0
  57. package/dist/databases/bigquery/time.spec.js.map +1 -0
  58. package/dist/databases/bigquery/wildcard_table_names.spec.d.ts +1 -0
  59. package/dist/databases/bigquery/wildcard_table_names.spec.js +212 -0
  60. package/dist/databases/bigquery/wildcard_table_names.spec.js.map +1 -0
  61. package/dist/databases/bigquery-duckdb/nested_source_table.spec.d.ts +1 -0
  62. package/dist/databases/bigquery-duckdb/nested_source_table.spec.js +213 -0
  63. package/dist/databases/bigquery-duckdb/nested_source_table.spec.js.map +1 -0
  64. package/dist/databases/duckdb/duckdb.spec.d.ts +1 -0
  65. package/dist/databases/duckdb/duckdb.spec.js +124 -0
  66. package/dist/databases/duckdb/duckdb.spec.js.map +1 -0
  67. package/dist/databases/duckdb/streaming.spec.d.ts +1 -0
  68. package/dist/databases/duckdb/streaming.spec.js +142 -0
  69. package/dist/databases/duckdb/streaming.spec.js.map +1 -0
  70. package/dist/databases/multi-connection/multi_connection.spec.d.ts +1 -0
  71. package/dist/databases/multi-connection/multi_connection.spec.js +120 -0
  72. package/dist/databases/multi-connection/multi_connection.spec.js.map +1 -0
  73. package/dist/databases/postgres/postgres.spec.d.ts +1 -0
  74. package/dist/databases/postgres/postgres.spec.js +140 -0
  75. package/dist/databases/postgres/postgres.spec.js.map +1 -0
  76. package/dist/databases/shared/test_list.d.ts +3 -0
  77. package/dist/databases/shared/test_list.js +5 -0
  78. package/dist/databases/shared/test_list.js.map +1 -0
  79. package/dist/databases/streaming/streaming.spec.d.ts +1 -0
  80. package/dist/databases/streaming/streaming.spec.js +93 -0
  81. package/dist/databases/streaming/streaming.spec.js.map +1 -0
  82. package/dist/dependencies.spec.d.ts +1 -0
  83. package/dist/dependencies.spec.js +63 -0
  84. package/dist/dependencies.spec.js.map +1 -0
  85. package/dist/index.d.ts +4 -0
  86. package/dist/index.js +49 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/jestMatcher.spec.d.ts +1 -0
  89. package/dist/jestMatcher.spec.js +81 -0
  90. package/dist/jestMatcher.spec.js.map +1 -0
  91. package/dist/model/sql_source.spec.d.ts +1 -0
  92. package/dist/model/sql_source.spec.js +47 -0
  93. package/dist/model/sql_source.spec.js.map +1 -0
  94. package/dist/models/faa_model.d.ts +5 -0
  95. package/dist/models/faa_model.js +997 -0
  96. package/dist/models/faa_model.js.map +1 -0
  97. package/dist/models/medicare_model.d.ts +4 -0
  98. package/dist/models/medicare_model.js +259 -0
  99. package/dist/models/medicare_model.js.map +1 -0
  100. package/dist/render/drill.spec.d.ts +1 -0
  101. package/dist/render/drill.spec.js +107 -0
  102. package/dist/render/drill.spec.js.map +1 -0
  103. package/dist/render/render.spec.d.ts +1 -0
  104. package/dist/render/render.spec.js +548 -0
  105. package/dist/render/render.spec.js.map +1 -0
  106. package/dist/runtimes.d.ts +35 -0
  107. package/dist/runtimes.js +180 -0
  108. package/dist/runtimes.js.map +1 -0
  109. package/dist/tags.spec.d.ts +8 -0
  110. package/dist/tags.spec.js +490 -0
  111. package/dist/tags.spec.js.map +1 -0
  112. package/dist/util/db-jest-matchers.d.ts +30 -0
  113. package/dist/util/db-jest-matchers.js +157 -0
  114. package/dist/util/db-jest-matchers.js.map +1 -0
  115. package/dist/util/index.d.ts +15 -0
  116. package/dist/util/index.js +182 -0
  117. package/dist/util/index.js.map +1 -0
  118. package/package.json +8 -8
@@ -0,0 +1,997 @@
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.testModel = exports.FLIGHTS_EXPLORE = void 0;
26
+ const util_1 = require("../util");
27
+ const medicare_model_1 = require("./medicare_model");
28
+ function withJoin(leftKey, rightKey) {
29
+ return {
30
+ type: 'one',
31
+ matrixOperation: 'left',
32
+ onExpression: [
33
+ { type: 'field', path: leftKey.split('.') },
34
+ '=',
35
+ { type: 'field', path: rightKey.split('.') },
36
+ ],
37
+ };
38
+ }
39
+ /** Flight Model */
40
+ exports.FLIGHTS_EXPLORE = {
41
+ type: 'struct',
42
+ name: 'malloy-data.malloytest.flights',
43
+ as: 'flights',
44
+ dialect: 'standardsql',
45
+ structSource: {
46
+ type: 'table',
47
+ tablePath: 'malloy-data.malloytest.flights',
48
+ },
49
+ structRelationship: { type: 'basetable', connectionName: 'bigquery' },
50
+ primaryKey: 'id2',
51
+ fields: [
52
+ // Fields in the flights table.
53
+ { type: 'string', name: 'carrier' },
54
+ { type: 'string', name: 'origin', as: 'origin_code' },
55
+ { type: 'timestamp', name: 'dep_time' },
56
+ { type: 'string', name: 'destination', as: 'destination_code' },
57
+ { type: 'string', name: 'flight_num' },
58
+ { type: 'number', name: 'flight_time', numberType: 'integer' },
59
+ { type: 'string', name: 'tail_num' },
60
+ { type: 'number', name: 'dep_delay', numberType: 'integer' },
61
+ { type: 'number', name: 'arr_delay', numberType: 'integer' },
62
+ { type: 'number', name: 'taxi_out', numberType: 'integer' },
63
+ { type: 'number', name: 'taxi_in', numberType: 'integer' },
64
+ { type: 'number', name: 'distance', numberType: 'integer' },
65
+ { type: 'string', name: 'cancelled' },
66
+ { type: 'string', name: 'diverted' },
67
+ { type: 'number', name: 'id2', numberType: 'integer' },
68
+ {
69
+ type: 'number',
70
+ name: 'flight_count',
71
+ expressionType: 'aggregate',
72
+ e: [{ type: 'aggregate', function: 'count', e: [] }],
73
+ },
74
+ {
75
+ type: 'number',
76
+ name: 'total_distance',
77
+ expressionType: 'aggregate',
78
+ e: [
79
+ {
80
+ type: 'aggregate',
81
+ function: 'sum',
82
+ e: [{ type: 'field', path: ['distance'] }],
83
+ },
84
+ ],
85
+ },
86
+ // carriers
87
+ {
88
+ type: 'struct',
89
+ name: 'malloy-data.malloytest.carriers',
90
+ as: 'carriers',
91
+ dialect: 'standardsql',
92
+ structSource: {
93
+ type: 'table',
94
+ tablePath: 'malloy-data.malloytest.carriers',
95
+ },
96
+ structRelationship: {
97
+ type: 'one',
98
+ matrixOperation: 'left',
99
+ onExpression: [
100
+ { type: 'field', path: ['carrier'] },
101
+ '=',
102
+ { type: 'field', path: ['carriers', 'code'] },
103
+ ],
104
+ },
105
+ primaryKey: 'code',
106
+ fields: [
107
+ { type: 'string', name: 'code' },
108
+ { type: 'string', name: 'name' },
109
+ { type: 'string', name: 'nickname' },
110
+ ],
111
+ },
112
+ // aircraft
113
+ {
114
+ type: 'struct',
115
+ name: 'malloy-data.malloytest.aircraft',
116
+ as: 'aircraft',
117
+ dialect: 'standardsql',
118
+ structSource: {
119
+ type: 'table',
120
+ tablePath: 'malloy-data.malloytest.aircraft',
121
+ },
122
+ structRelationship: withJoin('tail_num', 'aircraft.tail_num'),
123
+ primaryKey: 'tail_num',
124
+ fields: [
125
+ { type: 'string', name: 'tail_num' },
126
+ { type: 'string', name: 'aircraft_serial' },
127
+ { type: 'string', name: 'aircraft_model_code' },
128
+ { type: 'string', name: 'aircraft_engine_code' },
129
+ { type: 'number', name: 'year_built', numberType: 'integer' },
130
+ {
131
+ type: 'number',
132
+ name: 'aircraft_type_id',
133
+ numberType: 'integer',
134
+ },
135
+ {
136
+ type: 'number',
137
+ name: 'aircraft_engine_type_id',
138
+ numberType: 'integer',
139
+ },
140
+ {
141
+ type: 'number',
142
+ name: 'registrant_type_id',
143
+ numberType: 'integer',
144
+ },
145
+ { type: 'string', name: 'name' },
146
+ { type: 'string', name: 'address1' },
147
+ { type: 'string', name: 'address2' },
148
+ { type: 'string', name: 'city' },
149
+ { type: 'string', name: 'state' },
150
+ { type: 'string', name: 'zip' },
151
+ { type: 'string', name: 'region' },
152
+ { type: 'string', name: 'county' },
153
+ { type: 'string', name: 'country' },
154
+ { type: 'string', name: 'certification' },
155
+ { type: 'string', name: 'status_code' },
156
+ { type: 'string', name: 'mode_s_code' },
157
+ { type: 'string', name: 'fract_owner' },
158
+ {
159
+ type: 'number',
160
+ name: 'aircraft_count',
161
+ expressionType: 'aggregate',
162
+ e: [{ type: 'aggregate', function: 'count', e: [] }],
163
+ },
164
+ {
165
+ type: 'number',
166
+ name: 'total_engines',
167
+ expressionType: 'aggregate',
168
+ e: [
169
+ {
170
+ type: 'aggregate',
171
+ function: 'sum',
172
+ e: [{ type: 'field', path: ['aircraft_models', 'engines'] }],
173
+ },
174
+ ],
175
+ },
176
+ // subjoin aircraft models
177
+ {
178
+ type: 'struct',
179
+ name: 'malloy-data.malloytest.aircraft_models',
180
+ as: 'aircraft_models',
181
+ dialect: 'standardsql',
182
+ primaryKey: 'aircraft_model_code',
183
+ structSource: {
184
+ type: 'table',
185
+ tablePath: 'malloy-data.malloytest.aircraft_models',
186
+ },
187
+ structRelationship: withJoin('aircraft_model_code', 'aircraft_models.aircraft_model_code'),
188
+ fields: [
189
+ { type: 'string', name: 'aircraft_model_code' },
190
+ { type: 'string', name: 'manufacturer' },
191
+ { type: 'string', name: 'model' },
192
+ {
193
+ type: 'number',
194
+ name: 'aircraft_type_id',
195
+ numberType: 'integer',
196
+ },
197
+ {
198
+ type: 'number',
199
+ name: 'aircraft_engine_type_id',
200
+ numberType: 'integer',
201
+ },
202
+ {
203
+ type: 'number',
204
+ name: 'aircraft_category_id',
205
+ numberType: 'integer',
206
+ },
207
+ { type: 'number', name: 'amateur', numberType: 'integer' },
208
+ { type: 'number', name: 'engines', numberType: 'integer' },
209
+ { type: 'number', name: 'seats', numberType: 'integer' },
210
+ { type: 'number', name: 'weight', numberType: 'integer' },
211
+ { type: 'number', name: 'speed', numberType: 'integer' },
212
+ {
213
+ type: 'number',
214
+ expressionType: 'aggregate',
215
+ name: 'total_seats',
216
+ e: [
217
+ {
218
+ type: 'aggregate',
219
+ function: 'sum',
220
+ e: [{ type: 'field', path: ['seats'] }],
221
+ },
222
+ ],
223
+ },
224
+ ],
225
+ },
226
+ ],
227
+ },
228
+ // origin
229
+ {
230
+ type: 'struct',
231
+ name: 'malloy-data.malloytest.airports',
232
+ as: 'origin',
233
+ dialect: 'standardsql',
234
+ structSource: {
235
+ type: 'table',
236
+ tablePath: 'malloy-data.malloytest.airports',
237
+ },
238
+ structRelationship: withJoin('origin_code', 'origin.code'),
239
+ primaryKey: 'code',
240
+ fields: [
241
+ { type: 'number', name: 'id', numberType: 'integer' },
242
+ { type: 'string', name: 'code' },
243
+ { type: 'string', name: 'site_number' },
244
+ { type: 'string', name: 'fac_type', as: 'facility_type' },
245
+ { type: 'string', name: 'fac_use', as: 'facility_use' },
246
+ { type: 'string', name: 'faa_region' },
247
+ { type: 'string', name: 'faa_dist' },
248
+ { type: 'string', name: 'city' },
249
+ { type: 'string', name: 'county' },
250
+ { type: 'string', name: 'state' },
251
+ { type: 'string', name: 'full_name' },
252
+ { type: 'string', name: 'own_type' },
253
+ { type: 'number', name: 'longitude', numberType: 'float' },
254
+ { type: 'number', name: 'latitude', numberType: 'float' },
255
+ { type: 'number', name: 'elevation', numberType: 'integer' },
256
+ { type: 'string', name: 'aero_cht' },
257
+ { type: 'number', name: 'cbd_dist', numberType: 'integer' },
258
+ { type: 'string', name: 'cbd_dir' },
259
+ { type: 'string', name: 'act_date' },
260
+ { type: 'string', name: 'cert' },
261
+ { type: 'string', name: 'fed_agree' },
262
+ { type: 'string', name: 'cust_intl' },
263
+ { type: 'string', name: 'c_ldg_rts' },
264
+ { type: 'string', name: 'joint_use' },
265
+ { type: 'string', name: 'mil_rts' },
266
+ { type: 'string', name: 'cntl_twr' },
267
+ { type: 'string', name: 'major' },
268
+ {
269
+ type: 'number',
270
+ name: 'count',
271
+ expressionType: 'aggregate',
272
+ e: [{ type: 'aggregate', function: 'count', e: [] }],
273
+ },
274
+ ],
275
+ },
276
+ // destination
277
+ {
278
+ type: 'struct',
279
+ name: 'malloy-data.malloytest.airports',
280
+ as: 'destination',
281
+ dialect: 'standardsql',
282
+ structSource: {
283
+ type: 'table',
284
+ tablePath: 'malloy-data.malloytest.airports',
285
+ },
286
+ structRelationship: withJoin('destination_code', 'destination.code'),
287
+ primaryKey: 'code',
288
+ fields: [
289
+ { type: 'number', name: 'id', numberType: 'integer' },
290
+ { type: 'string', name: 'code' },
291
+ { type: 'string', name: 'site_number' },
292
+ { type: 'string', name: 'fac_type', as: 'facility_type' },
293
+ { type: 'string', name: 'fac_use', as: 'facility_use' },
294
+ { type: 'string', name: 'faa_region' },
295
+ { type: 'string', name: 'faa_dist' },
296
+ { type: 'string', name: 'city' },
297
+ { type: 'string', name: 'county' },
298
+ { type: 'string', name: 'state' },
299
+ { type: 'string', name: 'full_name' },
300
+ { type: 'string', name: 'own_type' },
301
+ { type: 'number', name: 'longitude', numberType: 'float' },
302
+ { type: 'number', name: 'latitude', numberType: 'float' },
303
+ { type: 'number', name: 'elevation', numberType: 'integer' },
304
+ { type: 'string', name: 'aero_cht' },
305
+ { type: 'number', name: 'cbd_dist', numberType: 'integer' },
306
+ { type: 'string', name: 'cbd_dir' },
307
+ { type: 'string', name: 'act_date' },
308
+ { type: 'string', name: 'cert' },
309
+ { type: 'string', name: 'fed_agree' },
310
+ { type: 'string', name: 'cust_intl' },
311
+ { type: 'string', name: 'c_ldg_rts' },
312
+ { type: 'string', name: 'joint_use' },
313
+ { type: 'string', name: 'mil_rts' },
314
+ { type: 'string', name: 'cntl_twr' },
315
+ { type: 'string', name: 'major' },
316
+ {
317
+ type: 'number',
318
+ name: 'count',
319
+ expressionType: 'aggregate',
320
+ e: [{ type: 'aggregate', function: 'count', e: [] }],
321
+ },
322
+ ],
323
+ },
324
+ // derived table from a named query.
325
+ {
326
+ type: 'struct',
327
+ name: 'aircraft_facts',
328
+ dialect: 'standardsql',
329
+ structSource: {
330
+ type: 'query',
331
+ query: {
332
+ type: 'query',
333
+ structRef: 'flights',
334
+ name: 'aircraft_facts_query',
335
+ pipeline: [
336
+ {
337
+ type: 'reduce',
338
+ queryFields: (0, util_1.fToQF)([
339
+ 'tail_num',
340
+ {
341
+ type: 'number',
342
+ name: 'lifetime_distance',
343
+ expressionType: 'aggregate',
344
+ e: [
345
+ {
346
+ type: 'aggregate',
347
+ function: 'sum',
348
+ e: [{ type: 'field', path: ['distance'] }],
349
+ },
350
+ ],
351
+ },
352
+ ]),
353
+ },
354
+ ],
355
+ },
356
+ },
357
+ structRelationship: withJoin('tail_num', 'aircraft_facts.tail_num'),
358
+ primaryKey: 'tail_num',
359
+ fields: [
360
+ { type: 'string', name: 'tail_num' },
361
+ { type: 'number', name: 'lifetime_distance' },
362
+ ],
363
+ },
364
+ {
365
+ type: 'turtle',
366
+ name: 'flights_by_carrier',
367
+ pipeline: [
368
+ {
369
+ type: 'reduce',
370
+ queryFields: (0, util_1.fToQF)([
371
+ 'carriers.name',
372
+ 'flight_count',
373
+ // { name: "origin.count", as: "origin_count" },
374
+ {
375
+ type: 'number',
376
+ name: 'origin_count',
377
+ expressionType: 'aggregate',
378
+ e: [
379
+ {
380
+ type: 'aggregate',
381
+ function: 'count',
382
+ e: [],
383
+ structPath: ['origin'],
384
+ },
385
+ ],
386
+ },
387
+ {
388
+ type: 'number',
389
+ name: 'my_total_distance',
390
+ expressionType: 'aggregate',
391
+ e: [
392
+ {
393
+ type: 'aggregate',
394
+ function: 'sum',
395
+ e: [{ type: 'field', path: ['distance'] }],
396
+ },
397
+ ],
398
+ },
399
+ ]),
400
+ orderBy: [{ field: 'name', dir: 'asc' }],
401
+ },
402
+ ],
403
+ },
404
+ {
405
+ type: 'turtle',
406
+ name: 'flights_by_carrier_2001_2002',
407
+ pipeline: [
408
+ {
409
+ type: 'reduce',
410
+ queryFields: (0, util_1.fToQF)([
411
+ 'carriers.name',
412
+ {
413
+ name: 'flights_2001',
414
+ type: 'number',
415
+ expressionType: 'aggregate',
416
+ e: [
417
+ {
418
+ type: 'filterExpression',
419
+ filterList: [(0, util_1.fYearEq)('dep_time', 2001)],
420
+ e: [
421
+ {
422
+ type: 'aggregate',
423
+ function: 'count',
424
+ e: [],
425
+ },
426
+ ],
427
+ },
428
+ ],
429
+ },
430
+ {
431
+ name: 'flights_2002',
432
+ type: 'number',
433
+ expressionType: 'aggregate',
434
+ e: [
435
+ {
436
+ type: 'filterExpression',
437
+ filterList: [(0, util_1.fYearEq)('dep_time', 2001)],
438
+ e: [
439
+ {
440
+ type: 'aggregate',
441
+ function: 'count',
442
+ e: [],
443
+ },
444
+ ],
445
+ },
446
+ ],
447
+ },
448
+ ]),
449
+ orderBy: [{ field: 'name', dir: 'asc' }],
450
+ },
451
+ ],
452
+ },
453
+ // EXPLORE flights | REDUCE destination.city, flight_count ORDER BY 2 desc
454
+ {
455
+ type: 'turtle',
456
+ name: 'flights_by_city_top_5',
457
+ pipeline: [
458
+ {
459
+ type: 'reduce',
460
+ queryFields: (0, util_1.fToQF)(['destination.city', 'flight_count']),
461
+ orderBy: [{ field: 2, dir: 'desc' }],
462
+ limit: 5,
463
+ },
464
+ ],
465
+ },
466
+ // EXPLORE flights [origin.state:'CA] | REDUCE aircraft.aircraft_models.manufacturer, aircraft.aircraft_models.manufacturer.
467
+ // aircraft.aircraft_count, flight_count ORDER BY flight_count LIMIT 5
468
+ {
469
+ type: 'turtle',
470
+ name: 'flights_by_model',
471
+ pipeline: [
472
+ {
473
+ type: 'reduce',
474
+ queryFields: (0, util_1.fToQF)([
475
+ 'aircraft.aircraft_models.manufacturer',
476
+ 'aircraft.aircraft_models.model',
477
+ 'aircraft.aircraft_count',
478
+ 'flight_count',
479
+ ]),
480
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
481
+ filterList: [(0, util_1.fStringEq)('origin.state', 'CA')],
482
+ limit: 5,
483
+ },
484
+ ],
485
+ },
486
+ // EXPLORE flights | REDUCE tail_num, total_distance as lifetime_distance
487
+ {
488
+ type: 'turtle',
489
+ name: 'aircraft_facts_query',
490
+ pipeline: [
491
+ {
492
+ type: 'reduce',
493
+ queryFields: (0, util_1.fToQF)([
494
+ 'tail_num',
495
+ {
496
+ type: 'number',
497
+ name: 'lifetime_distance',
498
+ expressionType: 'aggregate',
499
+ e: [
500
+ {
501
+ type: 'aggregate',
502
+ function: 'sum',
503
+ e: [{ type: 'field', path: ['distance'] }],
504
+ },
505
+ ],
506
+ },
507
+ ]),
508
+ },
509
+ ],
510
+ },
511
+ // expore flights | reduce carriers.name, aircraft.total_engines, flight_count
512
+ {
513
+ type: 'turtle',
514
+ name: 'carriers_by_total_engines',
515
+ pipeline: [
516
+ {
517
+ type: 'reduce',
518
+ queryFields: (0, util_1.fToQF)([
519
+ 'carriers.name',
520
+ 'aircraft.total_engines',
521
+ 'flight_count',
522
+ ]),
523
+ },
524
+ ],
525
+ },
526
+ // expore flights | reduce aircraft_facts.lifetime_distance, flight_count
527
+ {
528
+ type: 'turtle',
529
+ name: 'aircraft_facts_test',
530
+ pipeline: [
531
+ {
532
+ type: 'reduce',
533
+ queryFields: (0, util_1.fToQF)([
534
+ 'aircraft_facts.lifetime_distance',
535
+ 'flight_count',
536
+ ]),
537
+ },
538
+ ],
539
+ },
540
+ // expore flights | reduce flight_count, origin.city, origin.state
541
+ {
542
+ type: 'turtle',
543
+ name: 'measures_first',
544
+ pipeline: [
545
+ {
546
+ type: 'reduce',
547
+ queryFields: (0, util_1.fToQF)(['flight_count', 'origin.city', 'origin.state']),
548
+ },
549
+ ],
550
+ },
551
+ // explore flights
552
+ // | reduce
553
+ // carrier
554
+ // flight_count
555
+ // top_5_routes is (reduce top 5 order by 3 desc
556
+ // origin_code
557
+ // destination_code,
558
+ // flight_count
559
+ // )
560
+ {
561
+ type: 'turtle',
562
+ name: 'first_turtle',
563
+ pipeline: [
564
+ {
565
+ type: 'reduce',
566
+ queryFields: (0, util_1.fToQF)([
567
+ 'carrier',
568
+ 'flight_count',
569
+ {
570
+ type: 'turtle',
571
+ name: 'top_5_routes',
572
+ pipeline: [
573
+ {
574
+ type: 'reduce',
575
+ queryFields: (0, util_1.fToQF)([
576
+ 'origin_code',
577
+ 'destination_code',
578
+ 'flight_count',
579
+ ]),
580
+ limit: 5,
581
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
582
+ },
583
+ ],
584
+ },
585
+ ]),
586
+ },
587
+ ],
588
+ },
589
+ // explore flights
590
+ // | reduce order by 3 desc
591
+ // origin_code
592
+ // destination_code
593
+ // flight_count
594
+ {
595
+ type: 'turtle',
596
+ name: 'top_5_routes',
597
+ pipeline: [
598
+ {
599
+ type: 'reduce',
600
+ queryFields: (0, util_1.fToQF)([
601
+ 'origin_code',
602
+ 'destination_code',
603
+ 'flight_count',
604
+ ]),
605
+ limit: 5,
606
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
607
+ },
608
+ ],
609
+ },
610
+ // EXPLORE flights | REDUCE carrier, flight_count, top_5_routes
611
+ {
612
+ type: 'turtle',
613
+ name: 'carriers_routes',
614
+ pipeline: [
615
+ {
616
+ type: 'reduce',
617
+ queryFields: (0, util_1.fToQF)(['carrier', 'flight_count', 'top_5_routes']),
618
+ },
619
+ ],
620
+ },
621
+ // EXPLORE flights [destination.state: 'NY] | REDUCE destination.code as newyork_airport, flight_count ORDER BY 2 DESC
622
+ {
623
+ type: 'turtle',
624
+ name: 'new_york_airports',
625
+ pipeline: [
626
+ {
627
+ type: 'reduce',
628
+ queryFields: (0, util_1.fToQF)(['destination.code', 'flight_count']),
629
+ filterList: [(0, util_1.fStringEq)('destination.state', 'NY')],
630
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
631
+ },
632
+ ],
633
+ },
634
+ // EXPLORE flights | REDUCE aircraft.aircraft_models.manufacturer, aircraft.aircraft_count, flight_count ORDER BY 3 DESC
635
+ {
636
+ type: 'turtle',
637
+ name: 'flights_by_manufacturer',
638
+ pipeline: [
639
+ {
640
+ type: 'reduce',
641
+ queryFields: (0, util_1.fToQF)([
642
+ 'aircraft.aircraft_models.manufacturer',
643
+ 'aircraft.aircraft_count',
644
+ 'flight_count',
645
+ ]),
646
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
647
+ limit: 5,
648
+ },
649
+ ],
650
+ },
651
+ // EXPLORE flights [origin.state:'CA'x] | REDUCE carrier, flight_count, top_5_routes, flights_by_manufacturer
652
+ {
653
+ type: 'turtle',
654
+ name: 'carriers_routes_manufacturer',
655
+ pipeline: [
656
+ {
657
+ type: 'reduce',
658
+ queryFields: (0, util_1.fToQF)([
659
+ 'carrier',
660
+ 'flight_count',
661
+ 'top_5_routes',
662
+ 'flights_by_manufacturer',
663
+ ]),
664
+ filterList: [(0, util_1.fStringEq)('origin.state', 'CA')],
665
+ },
666
+ ],
667
+ },
668
+ {
669
+ type: 'turtle',
670
+ name: 'top_5_routes_carriers',
671
+ pipeline: [
672
+ {
673
+ type: 'reduce',
674
+ queryFields: (0, util_1.fToQF)([
675
+ 'origin_code',
676
+ 'destination_code',
677
+ 'flight_count',
678
+ 'flights_by_carrier',
679
+ ]),
680
+ limit: 5,
681
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
682
+ },
683
+ ],
684
+ },
685
+ {
686
+ type: 'turtle',
687
+ name: 'flights_by_carrier_with_totals',
688
+ pipeline: [
689
+ {
690
+ type: 'reduce',
691
+ filterList: [(0, util_1.fStringEq)('origin.state', 'CA')],
692
+ queryFields: (0, util_1.fToQF)([
693
+ {
694
+ type: 'turtle',
695
+ name: 'main',
696
+ pipeline: [
697
+ {
698
+ type: 'reduce',
699
+ queryFields: (0, util_1.fToQF)([
700
+ 'carriers.name',
701
+ 'flight_count',
702
+ //{ name: "origin.count", as: "origin_count" },
703
+ {
704
+ type: 'number',
705
+ name: 'origin_count',
706
+ expressionType: 'aggregate',
707
+ e: [
708
+ {
709
+ type: 'aggregate',
710
+ function: 'count',
711
+ e: [],
712
+ structPath: ['origin'],
713
+ },
714
+ ],
715
+ },
716
+ ]),
717
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
718
+ },
719
+ ],
720
+ },
721
+ {
722
+ type: 'turtle',
723
+ name: 'totals',
724
+ pipeline: [
725
+ {
726
+ type: 'reduce',
727
+ queryFields: (0, util_1.fToQF)(['flight_count']),
728
+ },
729
+ ],
730
+ },
731
+ ]),
732
+ },
733
+ ],
734
+ },
735
+ {
736
+ type: 'turtle',
737
+ name: 'flight_detail',
738
+ pipeline: [
739
+ {
740
+ type: 'reduce',
741
+ orderBy: [{ field: 'dep_time', dir: 'asc' }],
742
+ queryFields: (0, util_1.fToQF)([
743
+ 'id2',
744
+ 'dep_time',
745
+ 'tail_num',
746
+ 'carrier',
747
+ 'origin_code',
748
+ 'destination_code',
749
+ 'distance',
750
+ 'dep_delay',
751
+ ]),
752
+ limit: 500,
753
+ },
754
+ ],
755
+ },
756
+ {
757
+ type: 'turtle',
758
+ name: 'some_measures',
759
+ pipeline: [
760
+ {
761
+ type: 'reduce',
762
+ queryFields: (0, util_1.fToQF)([
763
+ 'flight_count',
764
+ 'total_distance',
765
+ 'aircraft.aircraft_count',
766
+ ]),
767
+ },
768
+ ],
769
+ },
770
+ {
771
+ type: 'turtle',
772
+ name: 'flights_routes_sessionized',
773
+ pipeline: [
774
+ {
775
+ type: 'reduce',
776
+ filterList: [
777
+ (0, util_1.fStringEq)('origin.state', 'CA'),
778
+ (0, util_1.fStringEq)('carrier', 'UA'),
779
+ ],
780
+ limit: 20,
781
+ queryFields: (0, util_1.fToQF)([
782
+ {
783
+ type: 'timestamp',
784
+ name: 'dep_time',
785
+ as: 'dep_date',
786
+ timeframe: 'day',
787
+ },
788
+ 'carrier',
789
+ {
790
+ type: 'turtle',
791
+ name: 'routes',
792
+ pipeline: [
793
+ {
794
+ type: 'reduce',
795
+ queryFields: (0, util_1.fToQF)([
796
+ 'origin_code',
797
+ 'destination_code',
798
+ 'flight_count',
799
+ {
800
+ type: 'turtle',
801
+ name: 'flight_detail',
802
+ pipeline: [
803
+ {
804
+ type: 'reduce',
805
+ orderBy: [{ field: 'dep_time', dir: 'asc' }],
806
+ limit: 5,
807
+ queryFields: (0, util_1.fToQF)([
808
+ 'id2',
809
+ 'dep_time',
810
+ 'tail_num',
811
+ 'flight_num',
812
+ 'dep_delay',
813
+ ]),
814
+ },
815
+ ],
816
+ },
817
+ ]),
818
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
819
+ },
820
+ ],
821
+ },
822
+ ]),
823
+ },
824
+ ],
825
+ },
826
+ /*
827
+ FROM flights |
828
+ REDUCE
829
+ dep_time.date as dep_date,
830
+ carrier,
831
+ flight_count,
832
+ (REDUCE
833
+ tail_num,
834
+ flight_count,
835
+ (REDUCE
836
+ id2, dep_time, origin_code, destination_code, flight_num, dep_delay
837
+ ORDER BY 2
838
+ )
839
+ ) as aircraft
840
+ */
841
+ {
842
+ type: 'turtle',
843
+ name: 'flights_aircraft_sessionized',
844
+ pipeline: [
845
+ {
846
+ type: 'reduce',
847
+ filterList: [(0, util_1.fStringEq)('carrier', 'UA')],
848
+ limit: 2,
849
+ queryFields: (0, util_1.fToQF)([
850
+ {
851
+ type: 'timestamp',
852
+ name: 'dep_time',
853
+ as: 'dep_date',
854
+ timeframe: 'day',
855
+ },
856
+ 'carrier',
857
+ 'flight_count',
858
+ {
859
+ type: 'turtle',
860
+ name: 'aircraft',
861
+ pipeline: [
862
+ {
863
+ type: 'reduce',
864
+ limit: 10,
865
+ queryFields: (0, util_1.fToQF)([
866
+ 'tail_num',
867
+ 'flight_count',
868
+ {
869
+ type: 'turtle',
870
+ name: 'flight_detail',
871
+ pipeline: [
872
+ {
873
+ type: 'reduce',
874
+ orderBy: [{ field: 'dep_time', dir: 'asc' }],
875
+ queryFields: (0, util_1.fToQF)([
876
+ 'id2',
877
+ 'dep_time',
878
+ 'origin_code',
879
+ 'destination_code',
880
+ 'flight_num',
881
+ 'dep_delay',
882
+ ]),
883
+ },
884
+ ],
885
+ },
886
+ ]),
887
+ orderBy: [{ field: 'flight_count', dir: 'desc' }],
888
+ },
889
+ ],
890
+ },
891
+ ]),
892
+ },
893
+ ],
894
+ },
895
+ {
896
+ type: 'turtle',
897
+ name: 'search_index',
898
+ pipeline: [
899
+ {
900
+ type: 'index',
901
+ weightMeasure: 'flight_count',
902
+ indexFields: (0, util_1.fToIF)([
903
+ 'carrier',
904
+ 'origin_code',
905
+ 'destination_code',
906
+ 'carriers.name',
907
+ 'carriers.nickname',
908
+ 'carriers.code',
909
+ 'origin.code',
910
+ 'origin.full_name',
911
+ 'origin.city',
912
+ 'origin.state',
913
+ 'destination.code',
914
+ 'destination.full_name',
915
+ 'destination.city',
916
+ 'destination.state',
917
+ 'aircraft.aircraft_model_code',
918
+ 'aircraft.aircraft_models.manufacturer',
919
+ 'aircraft.aircraft_models.model',
920
+ ]),
921
+ },
922
+ ],
923
+ },
924
+ // {
925
+ // type: "reduce",
926
+ // name: "some_measures",
927
+ // fields: ["flight_count", "total_distance"],
928
+ // },
929
+ ],
930
+ };
931
+ const tableAirports = {
932
+ type: 'struct',
933
+ name: 'malloy-data.malloytest.airports',
934
+ as: 'table_airports',
935
+ dialect: 'standardsql',
936
+ structSource: {
937
+ type: 'table',
938
+ tablePath: 'malloy-data.malloytest.airports',
939
+ },
940
+ structRelationship: { type: 'basetable', connectionName: 'bigquery' },
941
+ primaryKey: 'code',
942
+ fields: [
943
+ { type: 'number', name: 'id', numberType: 'integer' },
944
+ { type: 'string', name: 'code' },
945
+ { type: 'string', name: 'site_number' },
946
+ { type: 'string', name: 'fac_type', as: 'facility_type' },
947
+ { type: 'string', name: 'fac_use', as: 'facility_use' },
948
+ { type: 'string', name: 'faa_region' },
949
+ { type: 'string', name: 'faa_dist' },
950
+ { type: 'string', name: 'city' },
951
+ { type: 'string', name: 'county' },
952
+ { type: 'string', name: 'state' },
953
+ { type: 'string', name: 'full_name' },
954
+ { type: 'string', name: 'own_type' },
955
+ { type: 'number', name: 'longitude', numberType: 'float' },
956
+ { type: 'number', name: 'latitude', numberType: 'float' },
957
+ { type: 'number', name: 'elevation', numberType: 'integer' },
958
+ { type: 'string', name: 'aero_cht' },
959
+ { type: 'number', name: 'cbd_dist', numberType: 'integer' },
960
+ { type: 'string', name: 'cbd_dir' },
961
+ { type: 'string', name: 'act_date' },
962
+ { type: 'string', name: 'cert' },
963
+ { type: 'string', name: 'fed_agree' },
964
+ { type: 'string', name: 'cust_intl' },
965
+ { type: 'string', name: 'c_ldg_rts' },
966
+ { type: 'string', name: 'joint_use' },
967
+ { type: 'string', name: 'mil_rts' },
968
+ { type: 'string', name: 'cntl_twr' },
969
+ { type: 'string', name: 'major' },
970
+ {
971
+ type: 'number',
972
+ name: 'count',
973
+ expressionType: 'aggregate',
974
+ e: [{ type: 'aggregate', function: 'count', e: [] }],
975
+ },
976
+ ],
977
+ };
978
+ /** Test model */
979
+ exports.testModel = {
980
+ name: 'Hand Coded Models',
981
+ exports: [
982
+ 'flights',
983
+ 'table_airports',
984
+ 'medicare_test',
985
+ 'medicare_state_facts',
986
+ // "aircraft",
987
+ ],
988
+ contents: {
989
+ flights: exports.FLIGHTS_EXPLORE,
990
+ table_airports: tableAirports,
991
+ medicare_test: medicare_model_1.medicareModel,
992
+ medicare_state_facts: medicare_model_1.medicareStateFacts,
993
+ // aircraft: aircraftHandStructDef,
994
+ },
995
+ };
996
+ // // clang-format on
997
+ //# sourceMappingURL=faa_model.js.map