aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/postgresql/cases/boolean.err
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/cases/boolean.err
parent2c7938962d8689e175574fc1e817c05049f27905 (diff)
parenteff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff)
downloadydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz
Merge branch 'rightlib' into mergelibs-241120-1113
Diffstat (limited to 'yql/essentials/tests/postgresql/cases/boolean.err')
-rw-r--r--yql/essentials/tests/postgresql/cases/boolean.err510
1 files changed, 510 insertions, 0 deletions
diff --git a/yql/essentials/tests/postgresql/cases/boolean.err b/yql/essentials/tests/postgresql/cases/boolean.err
new file mode 100644
index 0000000000..60a444e2d1
--- /dev/null
+++ b/yql/essentials/tests/postgresql/cases/boolean.err
@@ -0,0 +1,510 @@
+<sql-statement>
+--
+-- BOOLEAN
+--
+--
+-- sanity check - if this fails go insane!
+--
+SELECT 1 AS one;
+</sql-statement>
+<sql-statement>
+-- ******************testing built-in type bool********************
+-- check bool input syntax
+SELECT true AS true;
+</sql-statement>
+<sql-statement>
+SELECT false AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool ' f ' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'true' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'test' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'test' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "test"
+
+ SELECT bool 'test' AS error;
+ ^
+<sql-statement>
+SELECT bool 'false' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'foo' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'foo' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "foo"
+
+ SELECT bool 'foo' AS error;
+ ^
+<sql-statement>
+SELECT bool 'y' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'yes' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'yeah' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'yeah' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "yeah"
+
+ SELECT bool 'yeah' AS error;
+ ^
+<sql-statement>
+SELECT bool 'n' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'no' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'nay' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'nay' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "nay"
+
+ SELECT bool 'nay' AS error;
+ ^
+<sql-statement>
+SELECT bool 'on' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'off' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'of' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 'o' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'o' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "o"
+
+ SELECT bool 'o' AS error;
+ ^
+<sql-statement>
+SELECT bool 'on_' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'on_' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "on_"
+
+ SELECT bool 'on_' AS error;
+ ^
+<sql-statement>
+SELECT bool 'off_' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool 'off_' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "off_"
+
+ SELECT bool 'off_' AS error;
+ ^
+<sql-statement>
+SELECT bool '1' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool '11' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool '11' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "11"
+
+ SELECT bool '11' AS error;
+ ^
+<sql-statement>
+SELECT bool '0' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool '000' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool '000' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "000"
+
+ SELECT bool '000' AS error;
+ ^
+<sql-statement>
+SELECT bool '' AS error;
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT bool '' AS error;
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: ""
+
+ SELECT bool '' AS error;
+ ^
+<sql-statement>
+-- and, or, not in qualifications
+SELECT bool 't' or bool 'f' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' and bool 'f' AS false;
+</sql-statement>
+<sql-statement>
+SELECT not bool 'f' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' = bool 'f' AS false;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' <> bool 'f' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' > bool 'f' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 't' >= bool 'f' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'f' < bool 't' AS true;
+</sql-statement>
+<sql-statement>
+SELECT bool 'f' <= bool 't' AS true;
+</sql-statement>
+<sql-statement>
+-- explicit casts to/from text
+SELECT 'TrUe'::text::boolean AS true, 'fAlse'::text::boolean AS false;
+</sql-statement>
+<sql-statement>
+SELECT ' true '::text::boolean AS true,
+ ' FALSE'::text::boolean AS false;
+</sql-statement>
+<sql-statement>
+SELECT true::boolean::text AS true, false::boolean::text AS false;
+</sql-statement>
+<sql-statement>
+SELECT ' tru e '::text::boolean AS invalid; -- error
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT ' tru e '::text::boolean AS invalid; -- error
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: " tru e "
+
+ SELECT ' tru e '::text::boolean AS invalid; -- error
+ ^
+<sql-statement>
+SELECT ''::text::boolean AS invalid; -- error
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: Result
+ SELECT ''::text::boolean AS invalid; -- error
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: ""
+
+ SELECT ''::text::boolean AS invalid; -- error
+ ^
+<sql-statement>
+CREATE TABLE BOOLTBL1 (f1 bool);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL1 (f1) VALUES (bool 't');
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL1 (f1) VALUES (bool 'True');
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL1 (f1) VALUES (bool 'true');
+</sql-statement>
+<sql-statement>
+-- BOOLTBL1 should be full of true's at this point
+SELECT BOOLTBL1.* FROM BOOLTBL1;
+</sql-statement>
+<sql-statement>
+SELECT BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 = bool 'true';
+</sql-statement>
+<sql-statement>
+SELECT BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 <> bool 'false';
+</sql-statement>
+<sql-statement>
+SELECT BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE booleq(bool 'false', f1);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL1 (f1) VALUES (bool 'f');
+</sql-statement>
+<sql-statement>
+SELECT BOOLTBL1.*
+ FROM BOOLTBL1
+ WHERE f1 = bool 'false';
+</sql-statement>
+<sql-statement>
+CREATE TABLE BOOLTBL2 (f1 bool);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL2 (f1) VALUES (bool 'f');
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL2 (f1) VALUES (bool 'false');
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL2 (f1) VALUES (bool 'False');
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL2 (f1) VALUES (bool 'FALSE');
+</sql-statement>
+<sql-statement>
+-- This is now an invalid expression
+-- For pre-v6.3 this evaluated to false - thomas 1997-10-23
+INSERT INTO BOOLTBL2 (f1)
+ VALUES (bool 'XXX');
+</sql-statement>
+-stdin-:<main>: Fatal: Execution
+
+ -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
+ -- This is now an invalid expression
+ ^
+ -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type boolean: "XXX"
+
+ -- This is now an invalid expression
+ ^
+<sql-statement>
+-- BOOLTBL2 should be full of false's at this point
+SELECT BOOLTBL2.* FROM BOOLTBL2;
+</sql-statement>
+<sql-statement>
+SELECT BOOLTBL1.*, BOOLTBL2.*
+ FROM BOOLTBL1, BOOLTBL2
+ WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
+</sql-statement>
+-stdin-:<main>: Error: Type annotation
+
+ -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+ -stdin-:<main>:1:1: Error: Duplicated member: f1
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+<sql-statement>
+SELECT BOOLTBL1.*, BOOLTBL2.*
+ FROM BOOLTBL1, BOOLTBL2
+ WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
+</sql-statement>
+-stdin-:<main>: Error: Type annotation
+
+ -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+ -stdin-:<main>:1:1: Error: Duplicated member: f1
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+<sql-statement>
+SELECT BOOLTBL1.*, BOOLTBL2.*
+ FROM BOOLTBL1, BOOLTBL2
+ WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = bool 'false';
+</sql-statement>
+-stdin-:<main>: Error: Type annotation
+
+ -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+ -stdin-:<main>:1:1: Error: Duplicated member: f1
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+<sql-statement>
+SELECT BOOLTBL1.*, BOOLTBL2.*
+ FROM BOOLTBL1, BOOLTBL2
+ WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = bool 'true'
+ ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
+</sql-statement>
+-stdin-:<main>: Error: Type annotation
+
+ -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+ -stdin-:<main>:1:1: Error: Duplicated member: f1
+ SELECT BOOLTBL1.*, BOOLTBL2.*
+ ^
+<sql-statement>
+--
+-- SQL syntax
+-- Try all combinations to ensure that we get nothing when we expect nothing
+-- - thomas 2000-01-04
+--
+SELECT f1
+ FROM BOOLTBL1
+ WHERE f1 IS TRUE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL1
+ WHERE f1 IS NOT FALSE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL1
+ WHERE f1 IS FALSE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL1
+ WHERE f1 IS NOT TRUE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL2
+ WHERE f1 IS TRUE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL2
+ WHERE f1 IS NOT FALSE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL2
+ WHERE f1 IS FALSE;
+</sql-statement>
+<sql-statement>
+SELECT f1
+ FROM BOOLTBL2
+ WHERE f1 IS NOT TRUE;
+</sql-statement>
+<sql-statement>
+--
+-- Tests for BooleanTest
+--
+CREATE TABLE BOOLTBL3 (d text, b bool, o int);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL3 (d, b, o) VALUES ('true', true, 1);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL3 (d, b, o) VALUES ('false', false, 2);
+</sql-statement>
+<sql-statement>
+INSERT INTO BOOLTBL3 (d, b, o) VALUES ('null', null, 3);
+</sql-statement>
+<sql-statement>
+SELECT
+ d,
+ b IS TRUE AS istrue,
+ b IS NOT TRUE AS isnottrue,
+ b IS FALSE AS isfalse,
+ b IS NOT FALSE AS isnotfalse,
+ b IS UNKNOWN AS isunknown,
+ b IS NOT UNKNOWN AS isnotunknown
+FROM booltbl3 ORDER BY o;
+</sql-statement>
+-stdin-:<main>: Fatal: Table metadata loading
+
+ -stdin-:<main>: Fatal: ydb/library/yql/providers/yt/gateway/file/yql_yt_file_services.cpp:44: Table not found: plato.booltbl3
+
+<sql-statement>
+-- Test to make sure short-circuiting and NULL handling is
+-- correct. Use a table as source to prevent constant simplification
+-- to interfer.
+CREATE TABLE booltbl4(isfalse bool, istrue bool, isnul bool);
+</sql-statement>
+<sql-statement>
+INSERT INTO booltbl4 VALUES (false, true, null);
+</sql-statement>
+<sql-statement>
+\pset null '(null)'
+</sql-statement>
+<sql-statement>
+-- AND expression need to return null if there's any nulls and not all
+-- of the value are true
+SELECT istrue AND isnul AND istrue FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT istrue AND istrue AND isnul FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isnul AND istrue AND istrue FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isfalse AND isnul AND istrue FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT istrue AND isfalse AND isnul FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isnul AND istrue AND isfalse FROM booltbl4;
+</sql-statement>
+<sql-statement>
+-- OR expression need to return null if there's any nulls and none
+-- of the value is true
+SELECT isfalse OR isnul OR isfalse FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isfalse OR isfalse OR isnul FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isnul OR isfalse OR isfalse FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isfalse OR isnul OR istrue FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT istrue OR isfalse OR isnul FROM booltbl4;
+</sql-statement>
+<sql-statement>
+SELECT isnul OR istrue OR isfalse FROM booltbl4;
+</sql-statement>
+<sql-statement>
+--
+-- Clean up
+-- Many tables are retained by the regression test, but these do not seem
+-- particularly useful so just get rid of them for now.
+-- - thomas 1997-11-30
+--
+DROP TABLE BOOLTBL1;
+</sql-statement>
+<sql-statement>
+DROP TABLE BOOLTBL2;
+</sql-statement>
+<sql-statement>
+DROP TABLE BOOLTBL3;
+</sql-statement>
+<sql-statement>
+DROP TABLE BOOLTBL4;
+</sql-statement>