Skip to content

Commit 8156070

Browse files
committed
test: add EXTRACT fixture with 18 keyword variants to kitchen-sink
Replace standalone extract.test.ts with fixture-based testing that follows the project's standard pattern: - Add __fixtures__/kitchen-sink/misc/extract.sql with EPOCH, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, CENTURY, MILLENNIUM, DOW, DOY, QUARTER, WEEK, TIMEZONE, TIMEZONE_HOUR, TIMEZONE_MINUTE - Regenerate generated.json and kitchen-sink test file - Remove ad-hoc misc/extract.test.ts
1 parent 8726ce6 commit 8156070

4 files changed

Lines changed: 64 additions & 36 deletions

File tree

__fixtures__/generated/generated.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21372,6 +21372,24 @@
2137221372
"misc/indexes-11.sql": "DROP INDEX CONCURRENTLY IF EXISTS my_index CASCADE",
2137321373
"misc/indexes-12.sql": "CREATE UNIQUE INDEX new_unique_idx ON new_example(a, b) INCLUDE (c)",
2137421374
"misc/indexes-13.sql": "CREATE INDEX CONCURRENTLY idx_with_operator ON boom.merkle_tree USING GIN ( name gin_trgm_ops ( param1 = 32, param2 = true) )",
21375+
"misc/extract-1.sql": "SELECT EXTRACT(EPOCH FROM now())",
21376+
"misc/extract-2.sql": "SELECT EXTRACT(EPOCH FROM DATE '1970-01-01')",
21377+
"misc/extract-3.sql": "SELECT EXTRACT(EPOCH FROM TIMESTAMP '1970-01-01')",
21378+
"misc/extract-4.sql": "SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40')",
21379+
"misc/extract-5.sql": "SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40')",
21380+
"misc/extract-6.sql": "SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40')",
21381+
"misc/extract-7.sql": "SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40')",
21382+
"misc/extract-8.sql": "SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40')",
21383+
"misc/extract-9.sql": "SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40')",
21384+
"misc/extract-10.sql": "SELECT EXTRACT(CENTURY FROM DATE '2001-01-01')",
21385+
"misc/extract-11.sql": "SELECT EXTRACT(MILLENNIUM FROM DATE '2001-01-01')",
21386+
"misc/extract-12.sql": "SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40')",
21387+
"misc/extract-13.sql": "SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40')",
21388+
"misc/extract-14.sql": "SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40')",
21389+
"misc/extract-15.sql": "SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40')",
21390+
"misc/extract-16.sql": "SELECT EXTRACT(TIMEZONE FROM CURRENT_TIMESTAMP)",
21391+
"misc/extract-17.sql": "SELECT EXTRACT(TIMEZONE_HOUR FROM CURRENT_TIMESTAMP)",
21392+
"misc/extract-18.sql": "SELECT EXTRACT(TIMEZONE_MINUTE FROM CURRENT_TIMESTAMP)",
2137521393
"misc/cascades-1.sql": "DROP TABLE IF EXISTS some_table CASCADE",
2137621394
"misc/cascades-2.sql": "DROP VIEW IF EXISTS some_view CASCADE",
2137721395
"misc/cascades-3.sql": "DROP MATERIALIZED VIEW IF EXISTS some_mat_view CASCADE",
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-- EXTRACT with various date/time field keywords
2+
-- Ref: constructive-io/constructive-db#748, constructive-io/pgsql-parser#289
3+
SELECT EXTRACT(EPOCH FROM now());
4+
SELECT EXTRACT(EPOCH FROM DATE '1970-01-01');
5+
SELECT EXTRACT(EPOCH FROM TIMESTAMP '1970-01-01');
6+
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');
7+
SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');
8+
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');
9+
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
10+
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');
11+
SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40');
12+
SELECT EXTRACT(CENTURY FROM DATE '2001-01-01');
13+
SELECT EXTRACT(MILLENNIUM FROM DATE '2001-01-01');
14+
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');
15+
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');
16+
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');
17+
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');
18+
SELECT EXTRACT(TIMEZONE FROM CURRENT_TIMESTAMP);
19+
SELECT EXTRACT(TIMEZONE_HOUR FROM CURRENT_TIMESTAMP);
20+
SELECT EXTRACT(TIMEZONE_MINUTE FROM CURRENT_TIMESTAMP);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
import { FixtureTestUtils } from '../../test-utils';
3+
const fixtures = new FixtureTestUtils();
4+
5+
it('misc-extract', async () => {
6+
await fixtures.runFixtureTests([
7+
"misc/extract-1.sql",
8+
"misc/extract-2.sql",
9+
"misc/extract-3.sql",
10+
"misc/extract-4.sql",
11+
"misc/extract-5.sql",
12+
"misc/extract-6.sql",
13+
"misc/extract-7.sql",
14+
"misc/extract-8.sql",
15+
"misc/extract-9.sql",
16+
"misc/extract-10.sql",
17+
"misc/extract-11.sql",
18+
"misc/extract-12.sql",
19+
"misc/extract-13.sql",
20+
"misc/extract-14.sql",
21+
"misc/extract-15.sql",
22+
"misc/extract-16.sql",
23+
"misc/extract-17.sql",
24+
"misc/extract-18.sql"
25+
]);
26+
});

packages/deparser/__tests__/misc/extract.test.ts

Lines changed: 0 additions & 36 deletions
This file was deleted.

0 commit comments

Comments
 (0)