Skip to content

Commit

Permalink
Add "million" test for cast via func
Browse files Browse the repository at this point in the history
  • Loading branch information
robozmey committed Dec 11, 2024
1 parent 7f642b8 commit 28bf0e6
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 2 deletions.
15 changes: 13 additions & 2 deletions contrib/try_convert/generate_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -516,22 +516,33 @@ def create_test(source_name, target_name, test_data, default='NULL', source_varl
'INSERT INTO text_ints(v) SELECT (random()*1000)::int4::text FROM generate_series(1,1000000);\n' \
'DROP TABLE IF EXISTS text_error_ints; CREATE TABLE text_error_ints (v text) DISTRIBUTED BY (v);\n' \
'INSERT INTO text_error_ints(v) SELECT (random()*1000000 + 1000000)::int8::text FROM generate_series(1,1000000);\n' \
'DROP TABLE IF EXISTS int4_ints; CREATE TABLE int4_ints (v int4) DISTRIBUTED BY (v);\n' \
'INSERT INTO int4_ints(v) SELECT (random()*1000)::int4 FROM generate_series(1,1000000);\n' \
'DROP TABLE IF EXISTS int4_error_ints; CREATE TABLE int4_error_ints (v int4) DISTRIBUTED BY (v);\n' \
'INSERT INTO int4_error_ints(v) SELECT (random()*1000000 + 1000000)::int4 FROM generate_series(1,1000000);\n'

test_million_query1 = \
'SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_ints) as t(v) WHERE v IS NOT NULL;\n'
test_million_query2 = \
'SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_error_ints) as t(v) WHERE v IS NULL;\n'

test_million_query3 = \
'SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_ints) as t(v) WHERE v IS NOT NULL;\n'
test_million_query4 = \
'SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_error_ints) as t(v) WHERE v IS NULL;\n'

test_million_result = \
' count \n' \
'---------\n' \
' 1000000\n' \
'(1 row)\n' \

test_million_in = test_million_data + test_million_query1 + test_million_query2
test_million_in = test_million_data + test_million_query1 + test_million_query2 + test_million_query3 + test_million_query4
test_million_out = test_million_data + \
test_million_query1 + test_million_result + '\n' + \
test_million_query2 + test_million_result
test_million_query2 + test_million_result + '\n' + \
test_million_query3 + test_million_result + '\n' + \
test_million_query4 + test_million_result

### NESTED CASTS

Expand Down
6 changes: 6 additions & 0 deletions contrib/try_convert/input/try_convert.source
Original file line number Diff line number Diff line change
Expand Up @@ -3118,8 +3118,14 @@ DROP TABLE IF EXISTS text_ints; CREATE TABLE text_ints (v text) DISTRIBUTED BY (
INSERT INTO text_ints(v) SELECT (random()*1000)::int4::text FROM generate_series(1,1000000);
DROP TABLE IF EXISTS text_error_ints; CREATE TABLE text_error_ints (v text) DISTRIBUTED BY (v);
INSERT INTO text_error_ints(v) SELECT (random()*1000000 + 1000000)::int8::text FROM generate_series(1,1000000);
DROP TABLE IF EXISTS int4_ints; CREATE TABLE int4_ints (v int4) DISTRIBUTED BY (v);
INSERT INTO int4_ints(v) SELECT (random()*1000)::int4 FROM generate_series(1,1000000);
DROP TABLE IF EXISTS int4_error_ints; CREATE TABLE int4_error_ints (v int4) DISTRIBUTED BY (v);
INSERT INTO int4_error_ints(v) SELECT (random()*1000000 + 1000000)::int4 FROM generate_series(1,1000000);
SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_ints) as t(v) WHERE v IS NOT NULL;
SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_error_ints) as t(v) WHERE v IS NULL;
SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_ints) as t(v) WHERE v IS NOT NULL;
SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_error_ints) as t(v) WHERE v IS NULL;

-- NESTED TESTS
select try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(42::int4, NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4) as v;
Expand Down
16 changes: 16 additions & 0 deletions contrib/try_convert/output/try_convert.source
Original file line number Diff line number Diff line change
Expand Up @@ -7464,6 +7464,10 @@ DROP TABLE IF EXISTS text_ints; CREATE TABLE text_ints (v text) DISTRIBUTED BY (
INSERT INTO text_ints(v) SELECT (random()*1000)::int4::text FROM generate_series(1,1000000);
DROP TABLE IF EXISTS text_error_ints; CREATE TABLE text_error_ints (v text) DISTRIBUTED BY (v);
INSERT INTO text_error_ints(v) SELECT (random()*1000000 + 1000000)::int8::text FROM generate_series(1,1000000);
DROP TABLE IF EXISTS int4_ints; CREATE TABLE int4_ints (v int4) DISTRIBUTED BY (v);
INSERT INTO int4_ints(v) SELECT (random()*1000)::int4 FROM generate_series(1,1000000);
DROP TABLE IF EXISTS int4_error_ints; CREATE TABLE int4_error_ints (v int4) DISTRIBUTED BY (v);
INSERT INTO int4_error_ints(v) SELECT (random()*1000000 + 1000000)::int4 FROM generate_series(1,1000000);
SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_ints) as t(v) WHERE v IS NOT NULL;
count
---------
Expand All @@ -7476,6 +7480,18 @@ SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM text_error_int
1000000
(1 row)

SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_ints) as t(v) WHERE v IS NOT NULL;
count
---------
1000000
(1 row)

SELECT count(*) FROM (SELECT try_convert(v, NULL::int2) as v FROM int4_error_ints) as t(v) WHERE v IS NULL;
count
---------
1000000
(1 row)

-- NESTED TESTS
select try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(try_convert(42::int4, NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4), NULL::text), NULL::int4) as v;
v
Expand Down

0 comments on commit 28bf0e6

Please sign in to comment.