-- -- FLOAT4 -- --Testcase 46: CREATE EXTENSION sqlite_fdw; --Testcase 47: CREATE SERVER sqlite_svr FOREIGN DATA WRAPPER sqlite_fdw OPTIONS (database '/tmp/sqlitefdw_test_core.db'); --Testcase 48: CREATE FOREIGN TABLE FLOAT4_TBL(f1 float4 OPTIONS (key 'true')) SERVER sqlite_svr; --Testcase 49: CREATE FOREIGN TABLE FLOAT4_TMP(f1 float4, id int OPTIONS (key 'true')) SERVER sqlite_svr; --Testcase 1: INSERT INTO FLOAT4_TBL(f1) VALUES (' 0.0'); --Testcase 2: INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30 '); --Testcase 3: INSERT INTO FLOAT4_TBL(f1) VALUES (' -34.84 '); --Testcase 4: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20'); --Testcase 5: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20'); -- test for over and under flow --Testcase 6: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'); ERROR: "10e70" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'); ^ --Testcase 7: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'); ERROR: "-10e70" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'); ^ --Testcase 8: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'); ERROR: "10e-70" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'); ^ --Testcase 9: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'); ERROR: "-10e-70" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'); ^ --Testcase 50: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'::float8); ERROR: value out of range: overflow --Testcase 51: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'::float8); ERROR: value out of range: overflow --Testcase 52: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70'::float8); ERROR: value out of range: underflow --Testcase 53: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70'::float8); ERROR: value out of range: underflow --Testcase 54: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400'); ERROR: "10e400" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400'); ^ --Testcase 55: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400'); ERROR: "-10e400" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400'); ^ --Testcase 56: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400'); ERROR: "10e-400" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400'); ^ --Testcase 57: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400'); ERROR: "-10e-400" is out of range for type real LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400'); ^ -- bad input --Testcase 10: INSERT INTO FLOAT4_TBL(f1) VALUES (''); ERROR: invalid input syntax for type real: "" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES (''); ^ --Testcase 11: INSERT INTO FLOAT4_TBL(f1) VALUES (' '); ERROR: invalid input syntax for type real: " " LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES (' '); ^ --Testcase 12: INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz'); ERROR: invalid input syntax for type real: "xyz" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz'); ^ --Testcase 13: INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0'); ERROR: invalid input syntax for type real: "5.0.0" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0'); ^ --Testcase 14: INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0'); ERROR: invalid input syntax for type real: "5 . 0" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0'); ^ --Testcase 15: INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0'); ERROR: invalid input syntax for type real: "5. 0" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0'); ^ --Testcase 16: INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0'); ERROR: invalid input syntax for type real: " - 3.0" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0'); ^ --Testcase 17: INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5'); ERROR: invalid input syntax for type real: "123 5" LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5'); ^ -- special inputs --Testcase 18: DELETE FROM FLOAT4_TMP; --Testcase 58: INSERT INTO FLOAT4_TMP VALUES ('NaN'::float4); --Testcase 59: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 20: DELETE FROM FLOAT4_TMP; --Testcase 60: INSERT INTO FLOAT4_TMP VALUES ('nan'::float4); --Testcase 61: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 21: DELETE FROM FLOAT4_TMP; --Testcase 62: INSERT INTO FLOAT4_TMP VALUES (' NAN '::float4); --Testcase 63: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 22: DELETE FROM FLOAT4_TMP; --Testcase 64: INSERT INTO FLOAT4_TMP VALUES ('infinity'::float4); --Testcase 65: SELECT f1 FROM FLOAT4_TMP; f1 ---------- Infinity (1 row) --Testcase 23: DELETE FROM FLOAT4_TMP; --Testcase 66: INSERT INTO FLOAT4_TMP VALUES (' -INFINiTY '::float4); --Testcase 67: SELECT f1 FROM FLOAT4_TMP; f1 ----------- -Infinity (1 row) -- bad special inputs --Testcase 25: DELETE FROM FLOAT4_TMP; --Testcase 68: INSERT INTO FLOAT4_TMP VALUES ('N A N'::float4); ERROR: invalid input syntax for type real: "N A N" LINE 1: INSERT INTO FLOAT4_TMP VALUES ('N A N'::float4); ^ --Testcase 69: SELECT f1 FROM FLOAT4_TMP; f1 ---- (0 rows) --Testcase 26: DELETE FROM FLOAT4_TMP; --Testcase 70: INSERT INTO FLOAT4_TMP VALUES ('NaN x'::float4); ERROR: invalid input syntax for type real: "NaN x" LINE 1: INSERT INTO FLOAT4_TMP VALUES ('NaN x'::float4); ^ --Testcase 71: SELECT f1 FROM FLOAT4_TMP; f1 ---- (0 rows) --Testcase 27: DELETE FROM FLOAT4_TMP; --Testcase 72: INSERT INTO FLOAT4_TMP VALUES (' INFINITY x'::float4); ERROR: invalid input syntax for type real: " INFINITY x" LINE 1: INSERT INTO FLOAT4_TMP VALUES (' INFINITY x'::float4); ^ --Testcase 73: SELECT f1 FROM FLOAT4_TMP; f1 ---- (0 rows) --Testcase 28: DELETE FROM FLOAT4_TMP; --Testcase 74: INSERT INTO FLOAT4_TMP VALUES ('Infinity'::float4 + 100.0); --Testcase 75: SELECT f1 FROM FLOAT4_TMP; f1 ---------- Infinity (1 row) --Testcase 30: DELETE FROM FLOAT4_TMP; --Testcase 76: INSERT INTO FLOAT4_TMP VALUES ('Infinity'::float4 / 'Infinity'::float4); --Testcase 77: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 31: DELETE FROM FLOAT4_TMP; --Testcase 78: INSERT INTO FLOAT4_TMP VALUES ('nan'::float4 / 'nan'::float4); --Testcase 79: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 32: DELETE FROM FLOAT4_TMP; --Testcase 80: INSERT INTO FLOAT4_TMP VALUES ('nan'::numeric::float4); --Testcase 81: SELECT f1 FROM FLOAT4_TMP; f1 ---- (1 row) --Testcase 34: SELECT '' AS five, * FROM FLOAT4_TBL; five | f1 ------+--------------- | 0 | 1004.3 | -34.84 | 1.2345679e+20 | 1.2345679e-20 (5 rows) --SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3'; --SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3'; --SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1; --SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3'; --Testcase 35: SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1; four | f1 ------+--------------- | 0 | 1004.3 | -34.84 | 1.2345679e-20 (4 rows) --Testcase 36: SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3'; four | f1 ------+--------------- | 0 | 1004.3 | -34.84 | 1.2345679e-20 (4 rows) --Testcase 37: SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f WHERE f.f1 > '0.0'; three | f1 | x -------+---------------+---------------- | 1004.3 | -10043 | 1.2345679e+20 | -1.2345678e+21 | 1.2345679e-20 | -1.2345678e-19 (3 rows) --Testcase 38: SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f WHERE f.f1 > '0.0'; three | f1 | x -------+---------------+--------------- | 1004.3 | 994.3 | 1.2345679e+20 | 1.2345679e+20 | 1.2345679e-20 | -10 (3 rows) --Testcase 39: SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f WHERE f.f1 > '0.0'; three | f1 | x -------+---------------+---------------- | 1004.3 | -100.43 | 1.2345679e+20 | -1.2345679e+19 | 1.2345679e-20 | -1.2345679e-21 (3 rows) --Testcase 40: SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f WHERE f.f1 > '0.0'; three | f1 | x -------+---------------+--------------- | 1004.3 | 1014.3 | 1.2345679e+20 | 1.2345679e+20 | 1.2345679e-20 | 10 (3 rows) -- test divide by zero --Testcase 41: SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f; ERROR: division by zero --Testcase 42: SELECT '' AS five, * FROM FLOAT4_TBL; five | f1 ------+--------------- | 0 | 1004.3 | -34.84 | 1.2345679e+20 | 1.2345679e-20 (5 rows) -- test the unary float4abs operator --Testcase 43: SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f; five | f1 | abs_f1 ------+---------------+--------------- | 0 | 0 | 1004.3 | 1004.3 | -34.84 | 34.84 | 1.2345679e+20 | 1.2345679e+20 | 1.2345679e-20 | 1.2345679e-20 (5 rows) --Testcase 44: UPDATE FLOAT4_TBL SET f1 = FLOAT4_TBL.f1 * '-1' WHERE FLOAT4_TBL.f1 > '0.0'; --Testcase 45: SELECT '' AS five, * FROM FLOAT4_TBL; five | f1 ------+---------------- | 0 | -1004.3 | -34.84 | -1.2345679e+20 | -1.2345679e-20 (5 rows) -- test edge-case coercions to integer --Testcase 82: DELETE FROM FLOAT4_TMP; --Testcase 83: INSERT INTO FLOAT4_TMP VALUES ('32767.4'::float4); --Testcase 84: SELECT f1::int2 FROM FLOAT4_TMP; f1 ------- 32767 (1 row) --Testcase 85: DELETE FROM FLOAT4_TMP; --Testcase 86: INSERT INTO FLOAT4_TMP VALUES ('32767.6'::float4); --Testcase 87: SELECT f1::int2 FROM FLOAT4_TMP; ERROR: smallint out of range --Testcase 88: DELETE FROM FLOAT4_TMP; --Testcase 89: INSERT INTO FLOAT4_TMP VALUES ('-32768.4'::float4); --Testcase 90: SELECT f1::int2 FROM FLOAT4_TMP; f1 -------- -32768 (1 row) --Testcase 91: DELETE FROM FLOAT4_TMP; --Testcase 92: INSERT INTO FLOAT4_TMP VALUES ('-32768.6'::float4); --Testcase 93: SELECT f1::int2 FROM FLOAT4_TMP; ERROR: smallint out of range --Testcase 94: DELETE FROM FLOAT4_TMP; --Testcase 95: INSERT INTO FLOAT4_TMP VALUES ('2147483520'::float4); --Testcase 96: SELECT f1::int4 FROM FLOAT4_TMP; f1 ------------ 2147483520 (1 row) --Testcase 97: DELETE FROM FLOAT4_TMP; --Testcase 98: INSERT INTO FLOAT4_TMP VALUES ('2147483647'::float4); --Testcase 99: SELECT f1::int4 FROM FLOAT4_TMP; ERROR: integer out of range --Testcase 100: DELETE FROM FLOAT4_TMP; --Testcase 101: INSERT INTO FLOAT4_TMP VALUES ('-2147483648.5'::float4); --Testcase 102: SELECT f1::int4 FROM FLOAT4_TMP; f1 ------------- -2147483648 (1 row) --Testcase 103: DELETE FROM FLOAT4_TMP; --Testcase 104: INSERT INTO FLOAT4_TMP VALUES ('-2147483900'::float4); --Testcase 105: SELECT f1::int4 FROM FLOAT4_TMP; ERROR: integer out of range --Testcase 106: DELETE FROM FLOAT4_TMP; --Testcase 107: INSERT INTO FLOAT4_TMP VALUES ('9223369837831520256'::float4); --Testcase 108: SELECT f1::int8 FROM FLOAT4_TMP; f1 --------------------- 9223369837831520256 (1 row) --Testcase 109: DELETE FROM FLOAT4_TMP; --Testcase 110: INSERT INTO FLOAT4_TMP VALUES ('9223372036854775807'::float4); --Testcase 111: SELECT f1::int8 FROM FLOAT4_TMP; ERROR: bigint out of range --Testcase 112: DELETE FROM FLOAT4_TMP; --Testcase 113: INSERT INTO FLOAT4_TMP VALUES ('-9223372036854775808.5'::float4); --Testcase 114: SELECT f1::int8 FROM FLOAT4_TMP; f1 ---------------------- -9223372036854775808 (1 row) --Testcase 115: DELETE FROM FLOAT4_TMP; --Testcase 116: INSERT INTO FLOAT4_TMP VALUES ('-9223380000000000000'::float4); --Testcase 117: SELECT f1::int8 FROM FLOAT4_TMP; ERROR: bigint out of range -- Test for correct input rounding in edge cases. -- These lists are from Paxson 1991, excluding subnormals and -- inputs of over 9 sig. digits. --Testcase 118: DELETE FROM FLOAT4_TMP; --Testcase 119: INSERT INTO FLOAT4_TMP VALUES ('5e-20'::float4); --Testcase 120: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x1f6c1e4a (1 row) --Testcase 121: DELETE FROM FLOAT4_TMP; --Testcase 122: INSERT INTO FLOAT4_TMP VALUES ('67e14'::float4); --Testcase 123: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x59be6cea (1 row) --Testcase 124: DELETE FROM FLOAT4_TMP; --Testcase 125: INSERT INTO FLOAT4_TMP VALUES ('985e15'::float4); --Testcase 126: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x5d5ab6c4 (1 row) --Testcase 127: DELETE FROM FLOAT4_TMP; --Testcase 128: INSERT INTO FLOAT4_TMP VALUES ('55895e-16'::float4); --Testcase 129: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x2cc4a9bd (1 row) --Testcase 130: DELETE FROM FLOAT4_TMP; --Testcase 131: INSERT INTO FLOAT4_TMP VALUES ('7038531e-32'::float4); --Testcase 132: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x15ae43fd (1 row) --Testcase 133: DELETE FROM FLOAT4_TMP; --Testcase 134: INSERT INTO FLOAT4_TMP VALUES ('702990899e-20'::float4); --Testcase 135: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x2cf757ca (1 row) --Testcase 136: DELETE FROM FLOAT4_TMP; --Testcase 137: INSERT INTO FLOAT4_TMP VALUES ('3e-23'::float4); --Testcase 138: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x1a111234 (1 row) --Testcase 139: DELETE FROM FLOAT4_TMP; --Testcase 140: INSERT INTO FLOAT4_TMP VALUES ('57e18'::float4); --Testcase 141: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x6045c22c (1 row) --Testcase 142: DELETE FROM FLOAT4_TMP; --Testcase 143: INSERT INTO FLOAT4_TMP VALUES ('789e-35'::float4); --Testcase 144: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x0a23de70 (1 row) --Testcase 145: DELETE FROM FLOAT4_TMP; --Testcase 146: INSERT INTO FLOAT4_TMP VALUES ('2539e-18'::float4); --Testcase 147: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x2736f449 (1 row) --Testcase 148: DELETE FROM FLOAT4_TMP; --Testcase 149: INSERT INTO FLOAT4_TMP VALUES ('76173e28'::float4); --Testcase 150: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x7616398a (1 row) --Testcase 151: DELETE FROM FLOAT4_TMP; --Testcase 152: INSERT INTO FLOAT4_TMP VALUES ('887745e-11'::float4); --Testcase 153: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x3714f05c (1 row) --Testcase 154: DELETE FROM FLOAT4_TMP; --Testcase 155: INSERT INTO FLOAT4_TMP VALUES ('5382571e-37'::float4); --Testcase 156: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x0d2eaca7 (1 row) --Testcase 157: DELETE FROM FLOAT4_TMP; --Testcase 158: INSERT INTO FLOAT4_TMP VALUES ('82381273e-35'::float4); --Testcase 159: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x128289d1 (1 row) --Testcase 160: DELETE FROM FLOAT4_TMP; --Testcase 161: INSERT INTO FLOAT4_TMP VALUES ('750486563e-38'::float4); --Testcase 162: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x0f18377e (1 row) -- 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... --Testcase 163: DELETE FROM FLOAT4_TMP; --Testcase 164: INSERT INTO FLOAT4_TMP VALUES ('1.17549435e-38'::float4); --Testcase 165: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x00800000 (1 row) --Testcase 166: DELETE FROM FLOAT4_TMP; --Testcase 167: INSERT INTO FLOAT4_TMP VALUES('1.1754944e-38'::float4); --Testcase 168: SELECT float4send(f1) FROM FLOAT4_TMP; float4send ------------ \x00800000 (1 row) -- 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). --Testcase 169: create type xfloat4; --Testcase 170: create function xfloat4in(cstring) returns xfloat4 immutable strict language internal as 'int4in'; NOTICE: return type xfloat4 is only a shell --Testcase 171: create function xfloat4out(xfloat4) returns cstring immutable strict language internal as 'int4out'; NOTICE: argument type xfloat4 is only a shell --Testcase 172: create type xfloat4 (input = xfloat4in, output = xfloat4out, like = float4); --Testcase 173: create cast (xfloat4 as float4) without function; --Testcase 174: create cast (float4 as xfloat4) without function; --Testcase 175: create cast (xfloat4 as integer) without function; --Testcase 176: create cast (integer as xfloat4) without function; -- 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. --Testcase 177: create foreign table testdata(bits text, id int OPTIONS (key 'true')) server sqlite_svr; begin; --Testcase 178: insert into testdata(bits) 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'); --Testcase 179: select float4send(flt) as ibits, flt from (select bits::bit(32)::integer::xfloat4::float4 as flt from testdata offset 0) s; ibits | flt ------------+--------------- \x00000001 | 1e-45 \x00000002 | 3e-45 \x00000003 | 4e-45 \x00000010 | 2.2e-44 \x00000011 | 2.4e-44 \x00000100 | 3.59e-43 \x00000101 | 3.6e-43 \x00004000 | 2.2959e-41 \x00004001 | 2.296e-41 \x00080000 | 7.34684e-40 \x00080001 | 7.34685e-40 \x0053c4f4 | 7.693e-39 \x006c85c4 | 9.96622e-39 \x0041ca76 | 6.041937e-39 \x004b7678 | 6.930161e-39 \x00000007 | 1e-44 \x00424fe2 | 6.0898e-39 \x007ffff0 | 1.1754921e-38 \x007ffff1 | 1.1754922e-38 \x007ffffe | 1.1754941e-38 \x007fffff | 1.1754942e-38 (21 rows) rollback; begin; --Testcase 180: insert into testdata(bits) 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'); --Testcase 181: 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::bit(32)::integer::xfloat4::float4 as flt from testdata offset 0) s; ibits | flt | r_flt | obits | correct ------------+----------------+----------------+------------+--------- \x00000000 | 0 | 0 | \x00000000 | t \x00800000 | 1.1754944e-38 | 1.1754944e-38 | \x00800000 | t \x00800001 | 1.1754945e-38 | 1.1754945e-38 | \x00800001 | t \x00800004 | 1.1754949e-38 | 1.1754949e-38 | \x00800004 | t \x00800005 | 1.175495e-38 | 1.175495e-38 | \x00800005 | t \x00800006 | 1.1754952e-38 | 1.1754952e-38 | \x00800006 | t \x008002f1 | 1.1755999e-38 | 1.1755999e-38 | \x008002f1 | t \x008002f2 | 1.1756e-38 | 1.1756e-38 | \x008002f2 | t \x008002f3 | 1.1756001e-38 | 1.1756001e-38 | \x008002f3 | t \x00800e17 | 1.1759998e-38 | 1.1759998e-38 | \x00800e17 | t \x00800e18 | 1.176e-38 | 1.176e-38 | \x00800e18 | t \x00800e19 | 1.1760001e-38 | 1.1760001e-38 | \x00800e19 | t \x01000001 | 2.350989e-38 | 2.350989e-38 | \x01000001 | t \x01102843 | 2.647751e-38 | 2.647751e-38 | \x01102843 | t \x01a52c98 | 6.0675416e-38 | 6.0675416e-38 | \x01a52c98 | t \x0219c229 | 1.1296386e-37 | 1.1296386e-37 | \x0219c229 | t \x02e4464d | 3.354194e-37 | 3.354194e-37 | \x02e4464d | t \x037343c1 | 7.148906e-37 | 7.148906e-37 | \x037343c1 | t \x03a91b36 | 9.939175e-37 | 9.939175e-37 | \x03a91b36 | t \x047ada65 | 2.948764e-36 | 2.948764e-36 | \x047ada65 | t \x0496fe87 | 3.5498577e-36 | 3.5498577e-36 | \x0496fe87 | t \x0550844f | 9.804414e-36 | 9.804414e-36 | \x0550844f | t \x05999da3 | 1.4445957e-35 | 1.4445957e-35 | \x05999da3 | t \x060ea5e2 | 2.6829103e-35 | 2.6829103e-35 | \x060ea5e2 | t \x06e63c45 | 8.660494e-35 | 8.660494e-35 | \x06e63c45 | t \x07f1e548 | 3.639641e-34 | 3.639641e-34 | \x07f1e548 | t \x0fc5282b | 1.9441172e-29 | 1.9441172e-29 | \x0fc5282b | t \x1f850283 | 5.6331846e-20 | 5.6331846e-20 | \x1f850283 | t \x2874a9d6 | 1.3581548e-14 | 1.3581548e-14 | \x2874a9d6 | t \x3356bf94 | 4.9999997e-08 | 4.9999997e-08 | \x3356bf94 | t \x3356bf95 | 5e-08 | 5e-08 | \x3356bf95 | t \x3356bf96 | 5.0000004e-08 | 5.0000004e-08 | \x3356bf96 | t \x33d6bf94 | 9.9999994e-08 | 9.9999994e-08 | \x33d6bf94 | t \x33d6bf95 | 1e-07 | 1e-07 | \x33d6bf95 | t \x33d6bf96 | 1.0000001e-07 | 1.0000001e-07 | \x33d6bf96 | t \x34a10faf | 2.9999998e-07 | 2.9999998e-07 | \x34a10faf | t \x34a10fb0 | 3e-07 | 3e-07 | \x34a10fb0 | t \x34a10fb1 | 3.0000004e-07 | 3.0000004e-07 | \x34a10fb1 | t \x350637bc | 4.9999994e-07 | 4.9999994e-07 | \x350637bc | t \x350637bd | 5e-07 | 5e-07 | \x350637bd | t \x350637be | 5.0000006e-07 | 5.0000006e-07 | \x350637be | t \x35719786 | 8.999999e-07 | 8.999999e-07 | \x35719786 | t \x35719787 | 9e-07 | 9e-07 | \x35719787 | t \x35719788 | 9.0000003e-07 | 9.0000003e-07 | \x35719788 | t \x358637bc | 9.999999e-07 | 9.999999e-07 | \x358637bc | t \x358637bd | 1e-06 | 1e-06 | \x358637bd | t \x358637be | 1.0000001e-06 | 1.0000001e-06 | \x358637be | t \x36a7c5ab | 4.9999994e-06 | 4.9999994e-06 | \x36a7c5ab | t \x36a7c5ac | 5e-06 | 5e-06 | \x36a7c5ac | t \x36a7c5ad | 5.0000003e-06 | 5.0000003e-06 | \x36a7c5ad | t \x3727c5ab | 9.999999e-06 | 9.999999e-06 | \x3727c5ab | t \x3727c5ac | 1e-05 | 1e-05 | \x3727c5ac | t \x3727c5ad | 1.0000001e-05 | 1.0000001e-05 | \x3727c5ad | t \x38d1b714 | 9.9999976e-05 | 9.9999976e-05 | \x38d1b714 | t \x38d1b715 | 9.999998e-05 | 9.999998e-05 | \x38d1b715 | t \x38d1b716 | 9.999999e-05 | 9.999999e-05 | \x38d1b716 | t \x38d1b717 | 0.0001 | 0.0001 | \x38d1b717 | t \x38d1b718 | 0.000100000005 | 0.000100000005 | \x38d1b718 | t \x38d1b719 | 0.00010000001 | 0.00010000001 | \x38d1b719 | t \x38d1b71a | 0.00010000002 | 0.00010000002 | \x38d1b71a | t \x38d1b71b | 0.00010000003 | 0.00010000003 | \x38d1b71b | t \x38d1b71c | 0.000100000034 | 0.000100000034 | \x38d1b71c | t \x38d1b71d | 0.00010000004 | 0.00010000004 | \x38d1b71d | t \x38dffffe | 0.00010681151 | 0.00010681151 | \x38dffffe | t \x38dfffff | 0.000106811516 | 0.000106811516 | \x38dfffff | t \x38e00000 | 0.00010681152 | 0.00010681152 | \x38e00000 | t \x38efffff | 0.00011444091 | 0.00011444091 | \x38efffff | t \x38f00000 | 0.00011444092 | 0.00011444092 | \x38f00000 | t \x38f00001 | 0.000114440925 | 0.000114440925 | \x38f00001 | t \x3a83126e | 0.0009999999 | 0.0009999999 | \x3a83126e | t \x3a83126f | 0.001 | 0.001 | \x3a83126f | t \x3a831270 | 0.0010000002 | 0.0010000002 | \x3a831270 | t \x3c23d709 | 0.009999999 | 0.009999999 | \x3c23d709 | t \x3c23d70a | 0.01 | 0.01 | \x3c23d70a | t \x3c23d70b | 0.010000001 | 0.010000001 | \x3c23d70b | t \x3dcccccc | 0.099999994 | 0.099999994 | \x3dcccccc | t \x3dcccccd | 0.1 | 0.1 | \x3dcccccd | t \x3dccccce | 0.10000001 | 0.10000001 | \x3dccccce | t \x3dcccd6f | 0.10000121 | 0.10000121 | \x3dcccd6f | t \x3dcccd70 | 0.100001216 | 0.100001216 | \x3dcccd70 | t \x3dcccd71 | 0.10000122 | 0.10000122 | \x3dcccd71 | t \x3effffff | 0.49999997 | 0.49999997 | \x3effffff | t \x3f000000 | 0.5 | 0.5 | \x3f000000 | t \x3f000001 | 0.50000006 | 0.50000006 | \x3f000001 | t \x3f333332 | 0.6999999 | 0.6999999 | \x3f333332 | t \x3f333333 | 0.7 | 0.7 | \x3f333333 | t \x3f333334 | 0.70000005 | 0.70000005 | \x3f333334 | t \x3f666665 | 0.8999999 | 0.8999999 | \x3f666665 | t \x3f666666 | 0.9 | 0.9 | \x3f666666 | t \x3f666667 | 0.90000004 | 0.90000004 | \x3f666667 | t \x3f7d70a3 | 0.98999995 | 0.98999995 | \x3f7d70a3 | t \x3f7d70a4 | 0.99 | 0.99 | \x3f7d70a4 | t \x3f7d70a5 | 0.99000007 | 0.99000007 | \x3f7d70a5 | t \x3f7fbe76 | 0.99899995 | 0.99899995 | \x3f7fbe76 | t \x3f7fbe77 | 0.999 | 0.999 | \x3f7fbe77 | t \x3f7fbe78 | 0.9990001 | 0.9990001 | \x3f7fbe78 | t \x3f7ff971 | 0.9998999 | 0.9998999 | \x3f7ff971 | t \x3f7ff972 | 0.9999 | 0.9999 | \x3f7ff972 | t \x3f7ff973 | 0.99990004 | 0.99990004 | \x3f7ff973 | t \x3f7fff57 | 0.9999899 | 0.9999899 | \x3f7fff57 | t \x3f7fff58 | 0.99999 | 0.99999 | \x3f7fff58 | t \x3f7fff59 | 0.99999005 | 0.99999005 | \x3f7fff59 | t \x3f7fffee | 0.9999989 | 0.9999989 | \x3f7fffee | t \x3f7fffef | 0.999999 | 0.999999 | \x3f7fffef | t \x3f7ffff0 | 0.99999905 | 0.99999905 | \x3f7ffff0 | t \x3f7ffff1 | 0.9999991 | 0.9999991 | \x3f7ffff1 | t \x3f7ffff2 | 0.99999917 | 0.99999917 | \x3f7ffff2 | t \x3f7ffff3 | 0.9999992 | 0.9999992 | \x3f7ffff3 | t \x3f7ffff4 | 0.9999993 | 0.9999993 | \x3f7ffff4 | t \x3f7ffff5 | 0.99999934 | 0.99999934 | \x3f7ffff5 | t \x3f7ffff6 | 0.9999994 | 0.9999994 | \x3f7ffff6 | t \x3f7ffff7 | 0.99999946 | 0.99999946 | \x3f7ffff7 | t \x3f7ffff8 | 0.9999995 | 0.9999995 | \x3f7ffff8 | t \x3f7ffff9 | 0.9999996 | 0.9999996 | \x3f7ffff9 | t \x3f7ffffa | 0.99999964 | 0.99999964 | \x3f7ffffa | t \x3f7ffffb | 0.9999997 | 0.9999997 | \x3f7ffffb | t \x3f7ffffc | 0.99999976 | 0.99999976 | \x3f7ffffc | t \x3f7ffffd | 0.9999998 | 0.9999998 | \x3f7ffffd | t \x3f7ffffe | 0.9999999 | 0.9999999 | \x3f7ffffe | t \x3f7fffff | 0.99999994 | 0.99999994 | \x3f7fffff | t \x3f800000 | 1 | 1 | \x3f800000 | t \x3f800001 | 1.0000001 | 1.0000001 | \x3f800001 | t \x3f800002 | 1.0000002 | 1.0000002 | \x3f800002 | t \x3f800003 | 1.0000004 | 1.0000004 | \x3f800003 | t \x3f800004 | 1.0000005 | 1.0000005 | \x3f800004 | t \x3f800005 | 1.0000006 | 1.0000006 | \x3f800005 | t \x3f800006 | 1.0000007 | 1.0000007 | \x3f800006 | t \x3f800007 | 1.0000008 | 1.0000008 | \x3f800007 | t \x3f800008 | 1.000001 | 1.000001 | \x3f800008 | t \x3f800009 | 1.0000011 | 1.0000011 | \x3f800009 | t \x3f80000f | 1.0000018 | 1.0000018 | \x3f80000f | t \x3f800010 | 1.0000019 | 1.0000019 | \x3f800010 | t \x3f800011 | 1.000002 | 1.000002 | \x3f800011 | t \x3f800012 | 1.0000021 | 1.0000021 | \x3f800012 | t \x3f800013 | 1.0000023 | 1.0000023 | \x3f800013 | t \x3f800014 | 1.0000024 | 1.0000024 | \x3f800014 | t \x3f800017 | 1.0000027 | 1.0000027 | \x3f800017 | t \x3f800018 | 1.0000029 | 1.0000029 | \x3f800018 | t \x3f800019 | 1.000003 | 1.000003 | \x3f800019 | t \x3f80001a | 1.0000031 | 1.0000031 | \x3f80001a | t \x3f80001b | 1.0000032 | 1.0000032 | \x3f80001b | t \x3f80001c | 1.0000033 | 1.0000033 | \x3f80001c | t \x3f800029 | 1.0000049 | 1.0000049 | \x3f800029 | t \x3f80002a | 1.000005 | 1.000005 | \x3f80002a | t \x3f80002b | 1.0000051 | 1.0000051 | \x3f80002b | t \x3f800053 | 1.0000099 | 1.0000099 | \x3f800053 | t \x3f800054 | 1.00001 | 1.00001 | \x3f800054 | t \x3f800055 | 1.0000101 | 1.0000101 | \x3f800055 | t \x3f800346 | 1.0000999 | 1.0000999 | \x3f800346 | t \x3f800347 | 1.0001 | 1.0001 | \x3f800347 | t \x3f800348 | 1.0001001 | 1.0001001 | \x3f800348 | t \x3f8020c4 | 1.0009999 | 1.0009999 | \x3f8020c4 | t \x3f8020c5 | 1.001 | 1.001 | \x3f8020c5 | t \x3f8020c6 | 1.0010002 | 1.0010002 | \x3f8020c6 | t \x3f8147ad | 1.0099999 | 1.0099999 | \x3f8147ad | t \x3f8147ae | 1.01 | 1.01 | \x3f8147ae | t \x3f8147af | 1.0100001 | 1.0100001 | \x3f8147af | t \x3f8ccccc | 1.0999999 | 1.0999999 | \x3f8ccccc | t \x3f8ccccd | 1.1 | 1.1 | \x3f8ccccd | t \x3f8cccce | 1.1000001 | 1.1000001 | \x3f8cccce | t \x3fc90fdb | 1.5707964 | 1.5707964 | \x3fc90fdb | t \x402df854 | 2.7182817 | 2.7182817 | \x402df854 | t \x40490fdb | 3.1415927 | 3.1415927 | \x40490fdb | t \x409fffff | 4.9999995 | 4.9999995 | \x409fffff | t \x40a00000 | 5 | 5 | \x40a00000 | t \x40a00001 | 5.0000005 | 5.0000005 | \x40a00001 | t \x40afffff | 5.4999995 | 5.4999995 | \x40afffff | t \x40b00000 | 5.5 | 5.5 | \x40b00000 | t \x40b00001 | 5.5000005 | 5.5000005 | \x40b00001 | t \x411fffff | 9.999999 | 9.999999 | \x411fffff | t \x41200000 | 10 | 10 | \x41200000 | t \x41200001 | 10.000001 | 10.000001 | \x41200001 | t \x42c7ffff | 99.99999 | 99.99999 | \x42c7ffff | t \x42c80000 | 100 | 100 | \x42c80000 | t \x42c80001 | 100.00001 | 100.00001 | \x42c80001 | t \x4479ffff | 999.99994 | 999.99994 | \x4479ffff | t \x447a0000 | 1000 | 1000 | \x447a0000 | t \x447a0001 | 1000.00006 | 1000.00006 | \x447a0001 | t \x461c3fff | 9999.999 | 9999.999 | \x461c3fff | t \x461c4000 | 10000 | 10000 | \x461c4000 | t \x461c4001 | 10000.001 | 10000.001 | \x461c4001 | t \x47c34fff | 99999.99 | 99999.99 | \x47c34fff | t \x47c35000 | 100000 | 100000 | \x47c35000 | t \x47c35001 | 100000.01 | 100000.01 | \x47c35001 | t \x497423ff | 999999.94 | 999999.94 | \x497423ff | t \x49742400 | 1e+06 | 1e+06 | \x49742400 | t \x49742401 | 1.00000006e+06 | 1.00000006e+06 | \x49742401 | t \x4b18967f | 9.999999e+06 | 9.999999e+06 | \x4b18967f | t \x4b189680 | 1e+07 | 1e+07 | \x4b189680 | t \x4b189681 | 1.0000001e+07 | 1.0000001e+07 | \x4b189681 | t \x4cbebc1f | 9.999999e+07 | 9.999999e+07 | \x4cbebc1f | t \x4cbebc20 | 1e+08 | 1e+08 | \x4cbebc20 | t \x4cbebc21 | 1.0000001e+08 | 1.0000001e+08 | \x4cbebc21 | t \x4e6e6b27 | 9.9999994e+08 | 9.9999994e+08 | \x4e6e6b27 | t \x4e6e6b28 | 1e+09 | 1e+09 | \x4e6e6b28 | t \x4e6e6b29 | 1.00000006e+09 | 1.00000006e+09 | \x4e6e6b29 | t \x501502f8 | 9.999999e+09 | 9.999999e+09 | \x501502f8 | t \x501502f9 | 1e+10 | 1e+10 | \x501502f9 | t \x501502fa | 1.0000001e+10 | 1.0000001e+10 | \x501502fa | t \x51ba43b6 | 9.999999e+10 | 9.999999e+10 | \x51ba43b6 | t \x51ba43b7 | 1e+11 | 1e+11 | \x51ba43b7 | t \x51ba43b8 | 1.0000001e+11 | 1.0000001e+11 | \x51ba43b8 | t \x1f6c1e4a | 5e-20 | 5e-20 | \x1f6c1e4a | t \x59be6cea | 6.7e+15 | 6.7e+15 | \x59be6cea | t \x5d5ab6c4 | 9.85e+17 | 9.85e+17 | \x5d5ab6c4 | t \x2cc4a9bd | 5.5895e-12 | 5.5895e-12 | \x2cc4a9bd | t \x15ae43fd | 7.038531e-26 | 7.038531e-26 | \x15ae43fd | t \x2cf757ca | 7.0299088e-12 | 7.0299088e-12 | \x2cf757ca | t \x665ba998 | 2.5933168e+23 | 2.5933168e+23 | \x665ba998 | t \x743c3324 | 5.9642887e+31 | 5.9642887e+31 | \x743c3324 | t \x47f1205a | 123456.7 | 123456.7 | \x47f1205a | t \x4640e6ae | 12345.67 | 12345.67 | \x4640e6ae | t \x449a5225 | 1234.567 | 1234.567 | \x449a5225 | t \x42f6e9d5 | 123.4567 | 123.4567 | \x42f6e9d5 | t \x414587dd | 12.34567 | 12.34567 | \x414587dd | t \x3f9e064b | 1.234567 | 1.234567 | \x3f9e064b | t \x4c000004 | 3.3554448e+07 | 3.3554448e+07 | \x4c000004 | t \x50061c46 | 8.999999e+09 | 8.999999e+09 | \x50061c46 | t \x510006a8 | 3.4366718e+10 | 3.4366718e+10 | \x510006a8 | t \x48951f84 | 305404.12 | 305404.12 | \x48951f84 | t \x45fd1840 | 8099.0312 | 8099.0312 | \x45fd1840 | t \x39800000 | 0.00024414062 | 0.00024414062 | \x39800000 | t \x3b200000 | 0.0024414062 | 0.0024414062 | \x3b200000 | t \x3b900000 | 0.0043945312 | 0.0043945312 | \x3b900000 | t \x3bd00000 | 0.0063476562 | 0.0063476562 | \x3bd00000 | t \x63800000 | 4.7223665e+21 | 4.7223665e+21 | \x63800000 | t \x4b000000 | 8.388608e+06 | 8.388608e+06 | \x4b000000 | t \x4b800000 | 1.6777216e+07 | 1.6777216e+07 | \x4b800000 | t \x4c000001 | 3.3554436e+07 | 3.3554436e+07 | \x4c000001 | t \x4c800b0d | 6.7131496e+07 | 6.7131496e+07 | \x4c800b0d | t \x00d24584 | 1.9310392e-38 | 1.9310392e-38 | \x00d24584 | t \x00d90b88 | 1.993244e-38 | 1.993244e-38 | \x00d90b88 | t \x45803f34 | 4103.9004 | 4103.9004 | \x45803f34 | t \x4f9f24f7 | 5.3399997e+09 | 5.3399997e+09 | \x4f9f24f7 | t \x3a8722c3 | 0.0010310042 | 0.0010310042 | \x3a8722c3 | t \x5c800041 | 2.882326e+17 | 2.882326e+17 | \x5c800041 | t \x15ae43fd | 7.038531e-26 | 7.038531e-26 | \x15ae43fd | t \x5d4cccfb | 9.223404e+17 | 9.223404e+17 | \x5d4cccfb | t \x4c800001 | 6.710887e+07 | 6.710887e+07 | \x4c800001 | t \x57800ed8 | 2.816025e+14 | 2.816025e+14 | \x57800ed8 | t \x5f000000 | 9.223372e+18 | 9.223372e+18 | \x5f000000 | t \x700000f0 | 1.5846086e+29 | 1.5846086e+29 | \x700000f0 | t \x5f23e9ac | 1.1811161e+19 | 1.1811161e+19 | \x5f23e9ac | t \x5e9502f9 | 5.368709e+18 | 5.368709e+18 | \x5e9502f9 | t \x5e8012b1 | 4.6143166e+18 | 4.6143166e+18 | \x5e8012b1 | t \x3c000028 | 0.007812537 | 0.007812537 | \x3c000028 | t \x60cde861 | 1.18697725e+20 | 1.18697725e+20 | \x60cde861 | t \x03aa2a50 | 1.00014165e-36 | 1.00014165e-36 | \x03aa2a50 | t \x43480000 | 200 | 200 | \x43480000 | t \x4c000000 | 3.3554432e+07 | 3.3554432e+07 | \x4c000000 | t \x5d1502f9 | 6.7108864e+17 | 6.7108864e+17 | \x5d1502f9 | t \x5d9502f9 | 1.3421773e+18 | 1.3421773e+18 | \x5d9502f9 | t \x5e1502f9 | 2.6843546e+18 | 2.6843546e+18 | \x5e1502f9 | t \x3f99999a | 1.2 | 1.2 | \x3f99999a | t \x3f9d70a4 | 1.23 | 1.23 | \x3f9d70a4 | t \x3f9df3b6 | 1.234 | 1.234 | \x3f9df3b6 | t \x3f9e0419 | 1.2345 | 1.2345 | \x3f9e0419 | t \x3f9e0610 | 1.23456 | 1.23456 | \x3f9e0610 | t \x3f9e064b | 1.234567 | 1.234567 | \x3f9e064b | t \x3f9e0651 | 1.2345678 | 1.2345678 | \x3f9e0651 | t \x03d20cfe | 1.23456735e-36 | 1.23456735e-36 | \x03d20cfe | t (261 rows) rollback; -- clean up, lest opr_sanity complain --Testcase 182: drop type xfloat4 cascade; NOTICE: drop cascades to 6 other objects DETAIL: drop cascades to function xfloat4in(cstring) drop cascades to function xfloat4out(xfloat4) drop cascades to cast from xfloat4 to real drop cascades to cast from real to xfloat4 drop cascades to cast from xfloat4 to integer drop cascades to cast from integer to xfloat4 -- Clean up DO $d$ declare l_rec record; begin for l_rec in (select foreign_table_schema, foreign_table_name from information_schema.foreign_tables) loop execute format('drop foreign table %I.%I cascade;', l_rec.foreign_table_schema, l_rec.foreign_table_name); end loop; end; $d$; --Testcase 183: DROP SERVER sqlite_svr; --Testcase 184: DROP EXTENSION sqlite_fdw CASCADE;