aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/postgresql/original/cases/char.sql
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
commit31773f157bf8164364649b5f470f52dece0a4317 (patch)
tree33d0f7eef45303ab68cf08ab381ce5e5e36c5240 /yql/essentials/tests/postgresql/original/cases/char.sql
parent2c7938962d8689e175574fc1e817c05049f27905 (diff)
parenteff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff)
downloadydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz
Merge branch 'rightlib' into mergelibs-241120-1113
Diffstat (limited to 'yql/essentials/tests/postgresql/original/cases/char.sql')
-rw-r--r--yql/essentials/tests/postgresql/original/cases/char.sql75
1 files changed, 75 insertions, 0 deletions
diff --git a/yql/essentials/tests/postgresql/original/cases/char.sql b/yql/essentials/tests/postgresql/original/cases/char.sql
new file mode 100644
index 0000000000..79e6e565ba
--- /dev/null
+++ b/yql/essentials/tests/postgresql/original/cases/char.sql
@@ -0,0 +1,75 @@
+--
+-- CHAR
+--
+
+-- fixed-length by value
+-- internally passed by value if <= 4 bytes in storage
+
+SELECT char 'c' = char 'c' AS true;
+
+--
+-- Build a table for testing
+--
+
+CREATE TABLE CHAR_TBL(f1 char);
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+
+-- try char's of greater than 1 length
+INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM CHAR_TBL;
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 < 'a';
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 > 'a';
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+DROP TABLE CHAR_TBL;
+
+--
+-- Now test longer arrays of char
+--
+
+CREATE TABLE CHAR_TBL(f1 char(4));
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
+
+SELECT * FROM CHAR_TBL;