Skip to content

Commit

Permalink
add basic tests for the supported types
Browse files Browse the repository at this point in the history
  • Loading branch information
Tishj committed Apr 29, 2024
1 parent d4ffc83 commit 094afc1
Show file tree
Hide file tree
Showing 3 changed files with 144 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ SRCS = src/quack_heap_seq_scan.cpp \

OBJS = $(subst .cpp,.o, $(SRCS))

REGRESS = basic
REGRESS = basic \
type_support

PG_CONFIG ?= pg_config

Expand Down
95 changes: 95 additions & 0 deletions expected/type_support.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
-- CHAR
CREATE TABLE chr(a CHAR);
INSERT INTO chr SELECT CAST(a AS CHAR) from (VALUES (-128), (0), (127)) t(a);
SELECT * FROM chr;
a
---
-
0
1
(3 rows)

-- SMALLINT
CREATE TABLE small(a SMALLINT);
INSERT INTO small SELECT CAST(a AS SMALLINT) from (VALUES (-32768), (0), (32767)) t(a);
SELECT * FROM small;
a
--------
-32768
0
32767
(3 rows)

-- INTEGER
CREATE TABLE intgr(a INTEGER);
INSERT INTO intgr SELECT CAST(a AS INTEGER) from (VALUES (-2147483648), (0), (2147483647)) t(a);
SELECT * FROM intgr;
a
-------------
-2147483648
0
2147483647
(3 rows)

-- BIGINT
CREATE TABLE big(a BIGINT);
INSERT INTO big SELECT CAST(a AS BIGINT) from (VALUES (-9223372036854775808), (0), (9223372036854775807)) t(a);
SELECT * FROM big;
a
----------------------
-9223372036854775808
0
9223372036854775807
(3 rows)

--- BOOL
CREATE TABLE bool_tbl(a BOOL);
INSERT INTO bool_tbl SELECT CAST(a AS BOOL) from (VALUES (False), (NULL), (True)) t(a);
SELECT * FROM bool_tbl;
a
---
f

t
(3 rows)

--- VARCHAR
CREATE TABLE varchar_tbl(a VARCHAR);
INSERT INTO varchar_tbl SELECT CAST(a AS VARCHAR) from (VALUES (''), (NULL), ('test'), ('this is a long string')) t(a);
SELECT * FROM varchar_tbl;
a
-----------------------


test
this is a long string
(4 rows)

-- DATE
CREATE TABLE date_tbl(a DATE);
INSERT INTO date_tbl SELECT CAST(a AS DATE) FROM (VALUES ('2022-04-29'::DATE), (NULL), ('2023-05-15'::DATE)) t(a);
SELECT * FROM date_tbl;
a
------------
04-29-2022

05-15-2023
(3 rows)

-- TIMESTAMP
CREATE TABLE timestamp_tbl(a TIMESTAMP);
INSERT INTO timestamp_tbl SELECT CAST(a AS TIMESTAMP) FROM (VALUES ('2022-04-29 10:15:30'::TIMESTAMP), (NULL), ('2023-05-15 12:30:45'::TIMESTAMP)) t(a);
SELECT * FROM timestamp_tbl;
a
--------------------------
Fri Apr 29 10:15:30 2022

Mon May 15 12:30:45 2023
(3 rows)

DROP TABLE small;
DROP TABLE intgr;
DROP TABLE big;
DROP TABLE varchar_tbl;
DROP TABLE date_tbl;
DROP TABLE timestamp_tbl;
47 changes: 47 additions & 0 deletions sql/type_support.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

-- CHAR
CREATE TABLE chr(a CHAR);
INSERT INTO chr SELECT CAST(a AS CHAR) from (VALUES (-128), (0), (127)) t(a);
SELECT * FROM chr;

-- SMALLINT
CREATE TABLE small(a SMALLINT);
INSERT INTO small SELECT CAST(a AS SMALLINT) from (VALUES (-32768), (0), (32767)) t(a);
SELECT * FROM small;

-- INTEGER
CREATE TABLE intgr(a INTEGER);
INSERT INTO intgr SELECT CAST(a AS INTEGER) from (VALUES (-2147483648), (0), (2147483647)) t(a);
SELECT * FROM intgr;

-- BIGINT
CREATE TABLE big(a BIGINT);
INSERT INTO big SELECT CAST(a AS BIGINT) from (VALUES (-9223372036854775808), (0), (9223372036854775807)) t(a);
SELECT * FROM big;

--- BOOL
CREATE TABLE bool_tbl(a BOOL);
INSERT INTO bool_tbl SELECT CAST(a AS BOOL) from (VALUES (False), (NULL), (True)) t(a);
SELECT * FROM bool_tbl;

--- VARCHAR
CREATE TABLE varchar_tbl(a VARCHAR);
INSERT INTO varchar_tbl SELECT CAST(a AS VARCHAR) from (VALUES (''), (NULL), ('test'), ('this is a long string')) t(a);
SELECT * FROM varchar_tbl;

-- DATE
CREATE TABLE date_tbl(a DATE);
INSERT INTO date_tbl SELECT CAST(a AS DATE) FROM (VALUES ('2022-04-29'::DATE), (NULL), ('2023-05-15'::DATE)) t(a);
SELECT * FROM date_tbl;

-- TIMESTAMP
CREATE TABLE timestamp_tbl(a TIMESTAMP);
INSERT INTO timestamp_tbl SELECT CAST(a AS TIMESTAMP) FROM (VALUES ('2022-04-29 10:15:30'::TIMESTAMP), (NULL), ('2023-05-15 12:30:45'::TIMESTAMP)) t(a);
SELECT * FROM timestamp_tbl;

DROP TABLE small;
DROP TABLE intgr;
DROP TABLE big;
DROP TABLE varchar_tbl;
DROP TABLE date_tbl;
DROP TABLE timestamp_tbl;

0 comments on commit 094afc1

Please sign in to comment.