123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854 |
- <sql-statement>
- --
- -- FLOAT4
- --
- CREATE TABLE FLOAT4_TBL (f1 float4);
- </sql-statement>
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES (' 0.0');
- </sql-statement>
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30 ');
- </sql-statement>
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES (' -34.84 ');
- </sql-statement>
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
- </sql-statement>
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
- </sql-statement>
- <sql-statement>
- -- test for over and under flow
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- -- test for over and under flow
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "10e70" is out of range for type real
- -- test for over and under flow
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "-10e70" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "10e-70" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "-10e-70" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'::float8);
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'::float8);
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: value out of range: overflow
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'::float8);
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'::float8);
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'::float8);
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: value out of range: overflow
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'::float8);
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'::float8);
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'::float8);
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: value out of range: underflow
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'::float8);
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'::float8);
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'::float8);
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: value out of range: underflow
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'::float8);
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "10e400" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "-10e400" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "10e-400" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: "-10e-400" is out of range for type real
- INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400');
- ^
- <sql-statement>
- -- bad input
- INSERT INTO FLOAT4_TBL(f1) VALUES ('');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- -- bad input
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: ""
- -- bad input
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES (' ');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES (' ');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: " "
- INSERT INTO FLOAT4_TBL(f1) VALUES (' ');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "xyz"
- INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "5.0.0"
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "5 . 0"
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "5. 0"
- INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: " - 3.0"
- INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0');
- ^
- <sql-statement>
- INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5');
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtFill!
- INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5');
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "123 5"
- INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5');
- ^
- <sql-statement>
- -- special inputs
- SELECT 'NaN'::float4;
- </sql-statement>
- <sql-statement>
- SELECT 'nan'::float4;
- </sql-statement>
- <sql-statement>
- SELECT ' NAN '::float4;
- </sql-statement>
- <sql-statement>
- SELECT 'infinity'::float4;
- </sql-statement>
- <sql-statement>
- SELECT ' -INFINiTY '::float4;
- </sql-statement>
- <sql-statement>
- -- bad special inputs
- SELECT 'N A N'::float4;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- -- bad special inputs
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "N A N"
- -- bad special inputs
- ^
- <sql-statement>
- SELECT 'NaN x'::float4;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT 'NaN x'::float4;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: "NaN x"
- SELECT 'NaN x'::float4;
- ^
- <sql-statement>
- SELECT ' INFINITY x'::float4;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT ' INFINITY x'::float4;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: invalid input syntax for type real: " INFINITY x"
- SELECT ' INFINITY x'::float4;
- ^
- <sql-statement>
- SELECT 'Infinity'::float4 + 100.0;
- </sql-statement>
- <sql-statement>
- SELECT 'Infinity'::float4 / 'Infinity'::float4;
- </sql-statement>
- <sql-statement>
- SELECT '42'::float4 / 'Infinity'::float4;
- </sql-statement>
- <sql-statement>
- SELECT 'nan'::float4 / 'nan'::float4;
- </sql-statement>
- <sql-statement>
- SELECT 'nan'::float4 / '0'::float4;
- </sql-statement>
- <sql-statement>
- SELECT 'nan'::numeric::float4;
- </sql-statement>
- <sql-statement>
- SELECT * FROM FLOAT4_TBL;
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
- </sql-statement>
- <sql-statement>
- SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
- </sql-statement>
- <sql-statement>
- SELECT f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
- WHERE f.f1 > '0.0';
- </sql-statement>
- <sql-statement>
- SELECT f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
- WHERE f.f1 > '0.0';
- </sql-statement>
- <sql-statement>
- SELECT f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
- WHERE f.f1 > '0.0';
- </sql-statement>
- <sql-statement>
- SELECT f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
- WHERE f.f1 > '0.0';
- </sql-statement>
- <sql-statement>
- -- test divide by zero
- SELECT f.f1 / '0.0' from FLOAT4_TBL f;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: YtMap!
- -- test divide by zero
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: division by zero
- -- test divide by zero
- ^
- <sql-statement>
- SELECT * FROM FLOAT4_TBL;
- </sql-statement>
- <sql-statement>
- -- test the unary float4abs operator
- SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
- </sql-statement>
- <sql-statement>
- UPDATE FLOAT4_TBL
- SET f1 = FLOAT4_TBL.f1 * '-1'
- WHERE FLOAT4_TBL.f1 > '0.0';
- </sql-statement>
- -stdin-:<main>: Fatal: Pre type annotation
- -stdin-:<main>: Fatal: tools/enum_parser/enum_serialization_runtime/enum_runtime.cpp:70: Key 'pg_update' not found in enum NYql::EYtSettingType. Valid options are: 'initial', 'infer_scheme', 'force_infer_schema', 'do_not_fail_on_invalid_schema', 'direct_read', 'view', 'mode', 'scheme', 'weak_concat', 'anonymous', 'with_qb', 'inline', 'sample', 'joinLabel', 'ignore_non_existing', 'warn_non_existing', 'xlock', 'unordered', 'nonUnique', 'userschema', 'usercolumns', 'statcolumns', 'syscolumns', 'ignoretypev3', 'memUsage', 'itemsCount', 'rowFactor', 'ordered', 'keyFilter', 'keyFilter2', 'take', 'skip', 'limit', 'sortLimitBy', 'sortBy', 'reduceBy', 'reduceFilterBy', 'forceTransform', 'weakFields', 'sharded', 'combineChunks', 'jobCount', 'joinReduce', 'firstAsPrimary', 'flow', 'keepSorted', 'keySwitch', 'uniqueBy', 'opHash', 'mapOutputType', 'reduceInputType', 'noDq', 'split', 'compression_codec', 'erasure_codec', 'expiration', 'replication_factor', 'user_attrs', 'media', 'primary_medium', 'keep_meta', 'monotonic_keys', 'mutationid'.
-
- <sql-statement>
- SELECT * FROM FLOAT4_TBL;
- </sql-statement>
- <sql-statement>
- -- test edge-case coercions to integer
- SELECT '32767.4'::float4::int2;
- </sql-statement>
- <sql-statement>
- SELECT '32767.6'::float4::int2;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '32767.6'::float4::int2;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: smallint out of range
- SELECT '32767.6'::float4::int2;
- ^
- <sql-statement>
- SELECT '-32768.4'::float4::int2;
- </sql-statement>
- <sql-statement>
- SELECT '-32768.6'::float4::int2;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '-32768.6'::float4::int2;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: smallint out of range
- SELECT '-32768.6'::float4::int2;
- ^
- <sql-statement>
- SELECT '2147483520'::float4::int4;
- </sql-statement>
- <sql-statement>
- SELECT '2147483647'::float4::int4;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '2147483647'::float4::int4;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: integer out of range
- SELECT '2147483647'::float4::int4;
- ^
- <sql-statement>
- SELECT '-2147483648.5'::float4::int4;
- </sql-statement>
- <sql-statement>
- SELECT '-2147483900'::float4::int4;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '-2147483900'::float4::int4;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: integer out of range
- SELECT '-2147483900'::float4::int4;
- ^
- <sql-statement>
- SELECT '9223369837831520256'::float4::int8;
- </sql-statement>
- <sql-statement>
- SELECT '9223372036854775807'::float4::int8;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '9223372036854775807'::float4::int8;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
- SELECT '9223372036854775807'::float4::int8;
- ^
- <sql-statement>
- SELECT '-9223372036854775808.5'::float4::int8;
- </sql-statement>
- <sql-statement>
- SELECT '-9223380000000000000'::float4::int8;
- </sql-statement>
- -stdin-:<main>: Fatal: Execution
- -stdin-:<main>:1:1: Fatal: Execution of node: Result
- SELECT '-9223380000000000000'::float4::int8;
- ^
- -stdin-:<main>:1:1: Fatal: ERROR: bigint out of range
- SELECT '-9223380000000000000'::float4::int8;
- ^
- <sql-statement>
- -- Test for correct input rounding in edge cases.
- -- These lists are from Paxson 1991, excluding subnormals and
- -- inputs of over 9 sig. digits.
- SELECT float4send('5e-20'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('67e14'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('985e15'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('55895e-16'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('7038531e-32'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('702990899e-20'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('3e-23'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('57e18'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('789e-35'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('2539e-18'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('76173e28'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('887745e-11'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('5382571e-37'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('82381273e-35'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('750486563e-38'::float4);
- </sql-statement>
- <sql-statement>
- -- Test that the smallest possible normalized input value inputs
- -- correctly, either in 9-significant-digit or shortest-decimal
- -- format.
- --
- -- exact val is 1.1754943508...
- -- shortest val is 1.1754944000
- -- midpoint to next val is 1.1754944208...
- SELECT float4send('1.17549435e-38'::float4);
- </sql-statement>
- <sql-statement>
- SELECT float4send('1.1754944e-38'::float4);
- </sql-statement>
- <sql-statement>
- -- test output (and round-trip safety) of various values.
- -- To ensure we're testing what we think we're testing, start with
- -- float values specified by bit patterns (as a useful side effect,
- -- this means we'll fail on non-IEEE platforms).
- create type xfloat4;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 255
- -- test output (and round-trip safety) of various values.
- ^
- <sql-statement>
- create function xfloat4in(cstring) returns xfloat4 immutable strict
- language internal as 'int4in';
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
- create function xfloat4in(cstring) returns xfloat4 immutable strict
- ^
- <sql-statement>
- create function xfloat4out(xfloat4) returns cstring immutable strict
- language internal as 'int4out';
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 261
- create function xfloat4out(xfloat4) returns cstring immutable strict
- ^
- <sql-statement>
- create type xfloat4 (input = xfloat4in, output = xfloat4out, like = float4);
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 255
- create type xfloat4 (input = xfloat4in, output = xfloat4out, like = float4);
- ^
- <sql-statement>
- create cast (xfloat4 as float4) without function;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 297
- create cast (xfloat4 as float4) without function;
- ^
- <sql-statement>
- create cast (float4 as xfloat4) without function;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 297
- create cast (float4 as xfloat4) without function;
- ^
- <sql-statement>
- create cast (xfloat4 as integer) without function;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 297
- create cast (xfloat4 as integer) without function;
- ^
- <sql-statement>
- create cast (integer as xfloat4) without function;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: RawStmt: alternative is not implemented yet : 297
- create cast (integer as xfloat4) without function;
- ^
- <sql-statement>
- -- float4: seeeeeee emmmmmmm mmmmmmmm mmmmmmmm
- -- we don't care to assume the platform's strtod() handles subnormals
- -- correctly; those are "use at your own risk". However we do test
- -- subnormal outputs, since those are under our control.
- with testdata(bits) as (values
- -- small subnormals
- (x'00000001'),
- (x'00000002'), (x'00000003'),
- (x'00000010'), (x'00000011'), (x'00000100'), (x'00000101'),
- (x'00004000'), (x'00004001'), (x'00080000'), (x'00080001'),
- -- stress values
- (x'0053c4f4'), -- 7693e-42
- (x'006c85c4'), -- 996622e-44
- (x'0041ca76'), -- 60419369e-46
- (x'004b7678'), -- 6930161142e-48
- -- taken from upstream testsuite
- (x'00000007'),
- (x'00424fe2'),
- -- borderline between subnormal and normal
- (x'007ffff0'), (x'007ffff1'), (x'007ffffe'), (x'007fffff'))
- select float4send(flt) as ibits,
- flt
- from (select bits::integer::xfloat4::float4 as flt
- from testdata
- offset 0) s;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:23:31: Error: Unknown type: xfloat4
- from (select bits::integer::xfloat4::float4 as flt
- ^
- -stdin-:<main>: Error: Type annotation
- -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
- -- float4: seeeeeee emmmmmmm mmmmmmmm mmmmmmmm
- ^
- -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
- -- float4: seeeeeee emmmmmmm mmmmmmmm mmmmmmmm
- ^
- <sql-statement>
- with testdata(bits) as (values
- (x'00000000'),
- -- smallest normal values
- (x'00800000'), (x'00800001'), (x'00800004'), (x'00800005'),
- (x'00800006'),
- -- small normal values chosen for short vs. long output
- (x'008002f1'), (x'008002f2'), (x'008002f3'),
- (x'00800e17'), (x'00800e18'), (x'00800e19'),
- -- assorted values (random mantissae)
- (x'01000001'), (x'01102843'), (x'01a52c98'),
- (x'0219c229'), (x'02e4464d'), (x'037343c1'), (x'03a91b36'),
- (x'047ada65'), (x'0496fe87'), (x'0550844f'), (x'05999da3'),
- (x'060ea5e2'), (x'06e63c45'), (x'07f1e548'), (x'0fc5282b'),
- (x'1f850283'), (x'2874a9d6'),
- -- values around 5e-08
- (x'3356bf94'), (x'3356bf95'), (x'3356bf96'),
- -- around 1e-07
- (x'33d6bf94'), (x'33d6bf95'), (x'33d6bf96'),
- -- around 3e-07 .. 1e-04
- (x'34a10faf'), (x'34a10fb0'), (x'34a10fb1'),
- (x'350637bc'), (x'350637bd'), (x'350637be'),
- (x'35719786'), (x'35719787'), (x'35719788'),
- (x'358637bc'), (x'358637bd'), (x'358637be'),
- (x'36a7c5ab'), (x'36a7c5ac'), (x'36a7c5ad'),
- (x'3727c5ab'), (x'3727c5ac'), (x'3727c5ad'),
- -- format crossover at 1e-04
- (x'38d1b714'), (x'38d1b715'), (x'38d1b716'),
- (x'38d1b717'), (x'38d1b718'), (x'38d1b719'),
- (x'38d1b71a'), (x'38d1b71b'), (x'38d1b71c'),
- (x'38d1b71d'),
- --
- (x'38dffffe'), (x'38dfffff'), (x'38e00000'),
- (x'38efffff'), (x'38f00000'), (x'38f00001'),
- (x'3a83126e'), (x'3a83126f'), (x'3a831270'),
- (x'3c23d709'), (x'3c23d70a'), (x'3c23d70b'),
- (x'3dcccccc'), (x'3dcccccd'), (x'3dccccce'),
- -- chosen to need 9 digits for 3dcccd70
- (x'3dcccd6f'), (x'3dcccd70'), (x'3dcccd71'),
- --
- (x'3effffff'), (x'3f000000'), (x'3f000001'),
- (x'3f333332'), (x'3f333333'), (x'3f333334'),
- -- approach 1.0 with increasing numbers of 9s
- (x'3f666665'), (x'3f666666'), (x'3f666667'),
- (x'3f7d70a3'), (x'3f7d70a4'), (x'3f7d70a5'),
- (x'3f7fbe76'), (x'3f7fbe77'), (x'3f7fbe78'),
- (x'3f7ff971'), (x'3f7ff972'), (x'3f7ff973'),
- (x'3f7fff57'), (x'3f7fff58'), (x'3f7fff59'),
- (x'3f7fffee'), (x'3f7fffef'),
- -- values very close to 1
- (x'3f7ffff0'), (x'3f7ffff1'), (x'3f7ffff2'),
- (x'3f7ffff3'), (x'3f7ffff4'), (x'3f7ffff5'),
- (x'3f7ffff6'), (x'3f7ffff7'), (x'3f7ffff8'),
- (x'3f7ffff9'), (x'3f7ffffa'), (x'3f7ffffb'),
- (x'3f7ffffc'), (x'3f7ffffd'), (x'3f7ffffe'),
- (x'3f7fffff'),
- (x'3f800000'),
- (x'3f800001'), (x'3f800002'), (x'3f800003'),
- (x'3f800004'), (x'3f800005'), (x'3f800006'),
- (x'3f800007'), (x'3f800008'), (x'3f800009'),
- -- values 1 to 1.1
- (x'3f80000f'), (x'3f800010'), (x'3f800011'),
- (x'3f800012'), (x'3f800013'), (x'3f800014'),
- (x'3f800017'), (x'3f800018'), (x'3f800019'),
- (x'3f80001a'), (x'3f80001b'), (x'3f80001c'),
- (x'3f800029'), (x'3f80002a'), (x'3f80002b'),
- (x'3f800053'), (x'3f800054'), (x'3f800055'),
- (x'3f800346'), (x'3f800347'), (x'3f800348'),
- (x'3f8020c4'), (x'3f8020c5'), (x'3f8020c6'),
- (x'3f8147ad'), (x'3f8147ae'), (x'3f8147af'),
- (x'3f8ccccc'), (x'3f8ccccd'), (x'3f8cccce'),
- --
- (x'3fc90fdb'), -- pi/2
- (x'402df854'), -- e
- (x'40490fdb'), -- pi
- --
- (x'409fffff'), (x'40a00000'), (x'40a00001'),
- (x'40afffff'), (x'40b00000'), (x'40b00001'),
- (x'411fffff'), (x'41200000'), (x'41200001'),
- (x'42c7ffff'), (x'42c80000'), (x'42c80001'),
- (x'4479ffff'), (x'447a0000'), (x'447a0001'),
- (x'461c3fff'), (x'461c4000'), (x'461c4001'),
- (x'47c34fff'), (x'47c35000'), (x'47c35001'),
- (x'497423ff'), (x'49742400'), (x'49742401'),
- (x'4b18967f'), (x'4b189680'), (x'4b189681'),
- (x'4cbebc1f'), (x'4cbebc20'), (x'4cbebc21'),
- (x'4e6e6b27'), (x'4e6e6b28'), (x'4e6e6b29'),
- (x'501502f8'), (x'501502f9'), (x'501502fa'),
- (x'51ba43b6'), (x'51ba43b7'), (x'51ba43b8'),
- -- stress values
- (x'1f6c1e4a'), -- 5e-20
- (x'59be6cea'), -- 67e14
- (x'5d5ab6c4'), -- 985e15
- (x'2cc4a9bd'), -- 55895e-16
- (x'15ae43fd'), -- 7038531e-32
- (x'2cf757ca'), -- 702990899e-20
- (x'665ba998'), -- 25933168707e13
- (x'743c3324'), -- 596428896559e20
- -- exercise fixed-point memmoves
- (x'47f1205a'),
- (x'4640e6ae'),
- (x'449a5225'),
- (x'42f6e9d5'),
- (x'414587dd'),
- (x'3f9e064b'),
- -- these cases come from the upstream's testsuite
- -- BoundaryRoundEven
- (x'4c000004'),
- (x'50061c46'),
- (x'510006a8'),
- -- ExactValueRoundEven
- (x'48951f84'),
- (x'45fd1840'),
- -- LotsOfTrailingZeros
- (x'39800000'),
- (x'3b200000'),
- (x'3b900000'),
- (x'3bd00000'),
- -- Regression
- (x'63800000'),
- (x'4b000000'),
- (x'4b800000'),
- (x'4c000001'),
- (x'4c800b0d'),
- (x'00d24584'),
- (x'00d90b88'),
- (x'45803f34'),
- (x'4f9f24f7'),
- (x'3a8722c3'),
- (x'5c800041'),
- (x'15ae43fd'),
- (x'5d4cccfb'),
- (x'4c800001'),
- (x'57800ed8'),
- (x'5f000000'),
- (x'700000f0'),
- (x'5f23e9ac'),
- (x'5e9502f9'),
- (x'5e8012b1'),
- (x'3c000028'),
- (x'60cde861'),
- (x'03aa2a50'),
- (x'43480000'),
- (x'4c000000'),
- -- LooksLikePow5
- (x'5D1502F9'),
- (x'5D9502F9'),
- (x'5E1502F9'),
- -- OutputLength
- (x'3f99999a'),
- (x'3f9d70a4'),
- (x'3f9df3b6'),
- (x'3f9e0419'),
- (x'3f9e0610'),
- (x'3f9e064b'),
- (x'3f9e0651'),
- (x'03d20cfe')
- )
- select float4send(flt) as ibits,
- flt,
- flt::text::float4 as r_flt,
- float4send(flt::text::float4) as obits,
- float4send(flt::text::float4) = float4send(flt) as correct
- from (select bits::integer::xfloat4::float4 as flt
- from testdata
- offset 0) s;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:163:31: Error: Unknown type: xfloat4
- from (select bits::integer::xfloat4::float4 as flt
- ^
- -stdin-:<main>: Error: Type annotation
- -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect
- with testdata(bits) as (values
- ^
- -stdin-:<main>:1:1: Error: Recursive query does not have the form non-recursive-term UNION [ALL] recursive-term
- with testdata(bits) as (values
- ^
- <sql-statement>
- -- clean up, lest opr_sanity complain
- drop type xfloat4 cascade;
- </sql-statement>
- -stdin-:<main>: Error: Parse Sql
- -stdin-:<main>:1:1: Error: DropStmt: alternative is not implemented yet : 373
- -- clean up, lest opr_sanity complain
- ^
|