@malloydata/malloy-tests 0.0.98-dev231026204034 → 0.0.98-dev231026204054
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.
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
/* eslint-disable no-console */
|
|
25
26
|
const runtimes_1 = require("../../runtimes");
|
|
26
27
|
const util_1 = require("../../util");
|
|
27
28
|
require("../../util/db-jest-matchers");
|
|
@@ -108,12 +109,31 @@ describe('Postgres tests', () => {
|
|
|
108
109
|
zone,
|
|
109
110
|
});
|
|
110
111
|
test('can cast TIMESTAMPTZ to timestamp', async () => {
|
|
111
|
-
await expect(`run:
|
|
112
|
+
await expect(`run: postgres.sql("""
|
|
112
113
|
SELECT TIMESTAMPTZ '2020-02-20 00:00:00 ${zone}' as t_tstz
|
|
113
114
|
""") -> {
|
|
114
115
|
select: mex_220 is t_tstz::timestamp
|
|
115
116
|
}`).malloyResultMatches(runtime, { mex_220: zone_2020.toJSDate() });
|
|
116
117
|
});
|
|
117
118
|
});
|
|
119
|
+
describe('numbers', () => {
|
|
120
|
+
it.each([
|
|
121
|
+
'SMALLINT',
|
|
122
|
+
'INTEGER',
|
|
123
|
+
'BIGINT',
|
|
124
|
+
'DECIMAL',
|
|
125
|
+
'NUMERIC',
|
|
126
|
+
'REAL',
|
|
127
|
+
'DOUBLE PRECISION',
|
|
128
|
+
])('supports %s', async (sqlType) => {
|
|
129
|
+
const result = await runtime
|
|
130
|
+
.loadQuery(`run: postgres.sql("SELECT 10::${sqlType} as d")`)
|
|
131
|
+
.run();
|
|
132
|
+
const field = result.data.field.allFields[0];
|
|
133
|
+
expect(field.isAtomicField()).toBe(true);
|
|
134
|
+
expect(field.isNumber()).toBe(true);
|
|
135
|
+
expect(result.data.value[0]['d']).toEqual(10);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
118
138
|
});
|
|
119
139
|
//# sourceMappingURL=postgres.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.spec.js","sourceRoot":"","sources":["../../../src/databases/postgres/postgres.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;
|
|
1
|
+
{"version":3,"file":"postgres.spec.js","sourceRoot":"","sources":["../../../src/databases/postgres/postgres.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@jest/globals": "^29.4.3",
|
|
21
|
-
"@malloydata/db-bigquery": "^0.0.98-
|
|
22
|
-
"@malloydata/db-duckdb": "^0.0.98-
|
|
23
|
-
"@malloydata/db-postgres": "^0.0.98-
|
|
24
|
-
"@malloydata/malloy": "^0.0.98-
|
|
25
|
-
"@malloydata/render": "^0.0.98-
|
|
21
|
+
"@malloydata/db-bigquery": "^0.0.98-dev231026204054",
|
|
22
|
+
"@malloydata/db-duckdb": "^0.0.98-dev231026204054",
|
|
23
|
+
"@malloydata/db-postgres": "^0.0.98-dev231026204054",
|
|
24
|
+
"@malloydata/malloy": "^0.0.98-dev231026204054",
|
|
25
|
+
"@malloydata/render": "^0.0.98-dev231026204054",
|
|
26
26
|
"jsdom": "^22.1.0",
|
|
27
27
|
"luxon": "^1.26.4",
|
|
28
28
|
"madge": "^6.0.0"
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"@types/jsdom": "^21.1.1",
|
|
32
32
|
"@types/luxon": "^1.26.4"
|
|
33
33
|
},
|
|
34
|
-
"version": "0.0.98-
|
|
34
|
+
"version": "0.0.98-dev231026204054"
|
|
35
35
|
}
|
|
@@ -23,9 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
/* eslint-disable no-console */
|
|
25
25
|
|
|
26
|
-
import {ok} from 'assert';
|
|
27
26
|
import {RuntimeList} from '../../runtimes';
|
|
28
|
-
import {Runtime} from '@malloydata/malloy';
|
|
27
|
+
import {AtomicField, Runtime} from '@malloydata/malloy';
|
|
29
28
|
import {describeIfDatabaseAvailable} from '../../util';
|
|
30
29
|
import '../../util/db-jest-matchers';
|
|
31
30
|
import {DateTime} from 'luxon';
|
|
@@ -134,7 +133,7 @@ describe('Postgres tests', () => {
|
|
|
134
133
|
});
|
|
135
134
|
test('can cast TIMESTAMPTZ to timestamp', async () => {
|
|
136
135
|
await expect(
|
|
137
|
-
`run:
|
|
136
|
+
`run: postgres.sql("""
|
|
138
137
|
SELECT TIMESTAMPTZ '2020-02-20 00:00:00 ${zone}' as t_tstz
|
|
139
138
|
""") -> {
|
|
140
139
|
select: mex_220 is t_tstz::timestamp
|
|
@@ -142,4 +141,24 @@ describe('Postgres tests', () => {
|
|
|
142
141
|
).malloyResultMatches(runtime, {mex_220: zone_2020.toJSDate()});
|
|
143
142
|
});
|
|
144
143
|
});
|
|
144
|
+
|
|
145
|
+
describe('numbers', () => {
|
|
146
|
+
it.each([
|
|
147
|
+
'SMALLINT',
|
|
148
|
+
'INTEGER',
|
|
149
|
+
'BIGINT',
|
|
150
|
+
'DECIMAL',
|
|
151
|
+
'NUMERIC',
|
|
152
|
+
'REAL',
|
|
153
|
+
'DOUBLE PRECISION',
|
|
154
|
+
])('supports %s', async sqlType => {
|
|
155
|
+
const result = await runtime
|
|
156
|
+
.loadQuery(`run: postgres.sql("SELECT 10::${sqlType} as d")`)
|
|
157
|
+
.run();
|
|
158
|
+
const field = result.data.field.allFields[0];
|
|
159
|
+
expect(field.isAtomicField()).toBe(true);
|
|
160
|
+
expect((field as AtomicField).isNumber()).toBe(true);
|
|
161
|
+
expect(result.data.value[0]['d']).toEqual(10);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
145
164
|
});
|