提交 64f83aa8 编写于 作者: H Heikki Linnakangas

Move functionProperty tests from TINC.

I'm not how many of these tests are worth keeping at all, but as a first
step, let's get them into the main test suite. The runtime of the parallel
group with these tests is about 1 minute on my laptop.

This is mostly a straightforward move, with mechanical changes removing the
useless TINC tags. However, some tests were marked with the special
"@executemode ORCA_PLANNER_DIFF" tag. The code in __init__.py ran those
tests differently. Normally, you run a test, and comparet the output with
the expected output file. But those ORCA_PLANNER_DIFF tests were run twice,
with and without ORCA, and the results were compared against each other,
instead of the expected output stored in the repository. The expected
outputs of those tests were out of date, you got a different error message
now than what was remembered in the expected output.

Now those tests are run as normal pg_regress tests. I updated the expected
output of those tests to match what you get nowadays.
上级 c25d162a

要显示的变更太多。

To preserve performance only 1000 of 1000+ files are displayed.
--
-- This test file sets up test tables and functions for subsequent
-- qp_functions_in_* tests, which live in different files. They have been
-- split into several files, to make the size more manageable, and so
-- that they can be run efficiently in parallel.
--
create schema qp_funcs_in_contexts;
set search_path='qp_funcs_in_contexts';
CREATE TABLE foo (a int, b int);
INSERT INTO foo select i, i+1 from generate_series(1,10) i;
CREATE TABLE bar (c int, d int);
INSERT INTO bar select i, i+1 from generate_series(1,10) i;
-- Create test functions
-- func1 IMMUTABLE
CREATE FUNCTION func1_nosql_imm(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql NO SQL IMMUTABLE;
CREATE FUNCTION func1_sql_int_imm(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
return r;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
CREATE FUNCTION func1_sql_setint_imm(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
--CREATE FUNCTION func1_read_int_sql_imm(x int) RETURNS int AS $$
--DECLARE
-- r int;
--BEGIN
-- SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
-- return r;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func1_read_setint_sql_imm(x int) RETURNS setof int AS $$
--DECLARE
-- r int;
--BEGIN
-- FOR r in SELECT d FROM bar WHERE c <> $1
-- LOOP
-- RETURN NEXT r;
-- END LOOP;
-- RETURN;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func1_mod_int_imm(x int) RETURNS int AS $$
--BEGIN
--UPDATE bar SET d = d+1 WHERE c = $1;
--RETURN $1 + 1;
--END
--$$ LANGUAGE plpgsql IMMUTABLE MODIFIES SQL DATA;
--
--CREATE FUNCTION func1_mod_setint_imm(x int) RETURNS setof int AS $$
--DECLARE
-- r int;
--BEGIN
-- UPDATE bar SET d = d+1 WHERE c > $1;
-- FOR r in SELECT d FROM bar WHERE c > $1
-- LOOP
-- RETURN NEXT r;
-- END LOOP;
-- RETURN;
--END
--$$ LANGUAGE plpgsql MODIFIES SQL DATA IMMUTABLE;
--
----func2 IMMUTABLE
CREATE FUNCTION func2_nosql_imm(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql NO SQL IMMUTABLE;
CREATE FUNCTION func2_sql_int_imm(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
--
--CREATE FUNCTION func2_read_int_imm(x int) RETURNS int AS $$
--DECLARE
-- r int;
--BEGIN
-- SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
-- RETURN r;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func2_mod_int_imm(x int) RETURNS int AS $$
--BEGIN
--UPDATE bar SET d = d+1 WHERE c = $1;
--RETURN $1 + 1;
--END
--$$ LANGUAGE plpgsql IMMUTABLE MODIFIES SQL DATA;
-- func1 STABLE
CREATE FUNCTION func1_nosql_stb(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql STABLE NO SQL;
CREATE FUNCTION func1_sql_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func1_sql_setint_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func1_read_int_sql_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func1_read_setint_sql_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT d FROM bar WHERE c <> $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func1_mod_int_stb(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
CREATE FUNCTION func1_mod_setint_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
UPDATE bar SET d = d+1 WHERE c > $1;
FOR r in SELECT d FROM bar WHERE c > $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
--func2 STABLE
CREATE FUNCTION func2_nosql_stb(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE NO SQL;
CREATE FUNCTION func2_sql_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func2_read_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func2_mod_int_stb(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
-- func1 VOLATILE
CREATE FUNCTION func1_nosql_vol(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql VOLATILE NO SQL;
CREATE FUNCTION func1_sql_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func1_sql_setint_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func1_read_int_sql_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func1_read_setint_sql_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT d FROM bar WHERE c <> $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func1_mod_int_vol(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
CREATE FUNCTION func1_mod_setint_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
UPDATE bar SET d = d+1 WHERE c > $1;
FOR r in SELECT d FROM bar WHERE c > $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
--func2 VOLATILE
CREATE FUNCTION func2_nosql_vol(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE NO SQL;
CREATE FUNCTION func2_sql_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func2_read_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func2_mod_int_vol(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
......@@ -123,6 +123,9 @@ test: qp_functions qp_misc_rio_join_small qp_misc_rio qp_correlated_query qp_tar
test: dpe qp_dpe qp_subquery qp_functions_idf qp_regexp qp_resource_queue
test: qp_functions_in_contexts_setup
test: qp_functions_in_from qp_functions_in_select qp_functions_in_subquery qp_functions_in_subquery_constant qp_functions_in_with
test: olap_setup
test: qp_olap_group
......
--
-- This test file sets up test tables and functions for subsequent
-- qp_functions_in_* tests, which live in different files. They have been
-- split into several files, to make the size more manageable, and so
-- that they can be run efficiently in parallel.
--
create schema qp_funcs_in_contexts;
set search_path='qp_funcs_in_contexts';
CREATE TABLE foo (a int, b int);
INSERT INTO foo select i, i+1 from generate_series(1,10) i;
CREATE TABLE bar (c int, d int);
INSERT INTO bar select i, i+1 from generate_series(1,10) i;
-- Create test functions
-- func1 IMMUTABLE
CREATE FUNCTION func1_nosql_imm(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql NO SQL IMMUTABLE;
CREATE FUNCTION func1_sql_int_imm(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
return r;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
CREATE FUNCTION func1_sql_setint_imm(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
--CREATE FUNCTION func1_read_int_sql_imm(x int) RETURNS int AS $$
--DECLARE
-- r int;
--BEGIN
-- SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
-- return r;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func1_read_setint_sql_imm(x int) RETURNS setof int AS $$
--DECLARE
-- r int;
--BEGIN
-- FOR r in SELECT d FROM bar WHERE c <> $1
-- LOOP
-- RETURN NEXT r;
-- END LOOP;
-- RETURN;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func1_mod_int_imm(x int) RETURNS int AS $$
--BEGIN
--UPDATE bar SET d = d+1 WHERE c = $1;
--RETURN $1 + 1;
--END
--$$ LANGUAGE plpgsql IMMUTABLE MODIFIES SQL DATA;
--
--CREATE FUNCTION func1_mod_setint_imm(x int) RETURNS setof int AS $$
--DECLARE
-- r int;
--BEGIN
-- UPDATE bar SET d = d+1 WHERE c > $1;
-- FOR r in SELECT d FROM bar WHERE c > $1
-- LOOP
-- RETURN NEXT r;
-- END LOOP;
-- RETURN;
--END
--$$ LANGUAGE plpgsql MODIFIES SQL DATA IMMUTABLE;
--
----func2 IMMUTABLE
CREATE FUNCTION func2_nosql_imm(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql NO SQL IMMUTABLE;
CREATE FUNCTION func2_sql_int_imm(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql CONTAINS SQL IMMUTABLE;
--
--CREATE FUNCTION func2_read_int_imm(x int) RETURNS int AS $$
--DECLARE
-- r int;
--BEGIN
-- SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
-- RETURN r;
--END
--$$ LANGUAGE plpgsql IMMUTABLE READS SQL DATA;
--
--CREATE FUNCTION func2_mod_int_imm(x int) RETURNS int AS $$
--BEGIN
--UPDATE bar SET d = d+1 WHERE c = $1;
--RETURN $1 + 1;
--END
--$$ LANGUAGE plpgsql IMMUTABLE MODIFIES SQL DATA;
-- func1 STABLE
CREATE FUNCTION func1_nosql_stb(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql STABLE NO SQL;
CREATE FUNCTION func1_sql_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func1_sql_setint_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func1_read_int_sql_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func1_read_setint_sql_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT d FROM bar WHERE c <> $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func1_mod_int_stb(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
CREATE FUNCTION func1_mod_setint_stb(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
UPDATE bar SET d = d+1 WHERE c > $1;
FOR r in SELECT d FROM bar WHERE c > $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
--func2 STABLE
CREATE FUNCTION func2_nosql_stb(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE NO SQL;
CREATE FUNCTION func2_sql_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE CONTAINS SQL;
CREATE FUNCTION func2_read_int_stb(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql STABLE READS SQL DATA;
CREATE FUNCTION func2_mod_int_stb(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql STABLE MODIFIES SQL DATA;
-- func1 VOLATILE
CREATE FUNCTION func1_nosql_vol(x int) RETURNS int AS $$
BEGIN
RETURN $1 +1;
END
$$ LANGUAGE plpgsql VOLATILE NO SQL;
CREATE FUNCTION func1_sql_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func1_sql_setint_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT generate_series($1, $1+5)
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func1_read_int_sql_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func1_read_setint_sql_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
FOR r in SELECT d FROM bar WHERE c <> $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func1_mod_int_vol(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
CREATE FUNCTION func1_mod_setint_vol(x int) RETURNS setof int AS $$
DECLARE
r int;
BEGIN
UPDATE bar SET d = d+1 WHERE c > $1;
FOR r in SELECT d FROM bar WHERE c > $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
--func2 VOLATILE
CREATE FUNCTION func2_nosql_vol(x int) RETURNS int AS $$
BEGIN
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE NO SQL;
CREATE FUNCTION func2_sql_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT $1 + 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE CONTAINS SQL;
CREATE FUNCTION func2_read_int_vol(x int) RETURNS int AS $$
DECLARE
r int;
BEGIN
SELECT d FROM bar WHERE c = $1 LIMIT 1 INTO r;
RETURN r;
END
$$ LANGUAGE plpgsql VOLATILE READS SQL DATA;
CREATE FUNCTION func2_mod_int_vol(x int) RETURNS int AS $$
BEGIN
UPDATE bar SET d = d+1 WHERE c = $1;
RETURN $1 + 1;
END
$$ LANGUAGE plpgsql VOLATILE MODIFIES SQL DATA;
此差异已折叠。
此差异已折叠。
此差异已折叠。
set search_path='qp_funcs_in_contexts';
-- @description function_in_with_0.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_1.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_2.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_3.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_4.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_5.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_6.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_7.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_8.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_11.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_12.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_15.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_16.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(a), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_0.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_1.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_2.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_3.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_4.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_5.sql
WITH v(a, b) AS (SELECT func1_nosql_vol(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_10.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_11.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_12.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_13.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_14.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_15.sql
WITH v(a, b) AS (SELECT func1_nosql_stb(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_20.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_21.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_22.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_23.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_24.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_25.sql
WITH v(a, b) AS (SELECT func1_nosql_imm(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_30.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_31.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_32.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_33.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_34.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_35.sql
WITH v(a, b) AS (SELECT func1_sql_int_vol(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_40.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_41.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_42.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_43.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_44.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_45.sql
WITH v(a, b) AS (SELECT func1_sql_int_stb(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_50.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_51.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_52.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_53.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_54.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_55.sql
WITH v(a, b) AS (SELECT func1_sql_int_imm(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_60.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_61.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_62.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_63.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_64.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_65.sql
WITH v(a, b) AS (SELECT func1_sql_setint_vol(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_70.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_71.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_72.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_73.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_74.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_75.sql
WITH v(a, b) AS (SELECT func1_sql_setint_stb(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_80.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_81.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_82.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_83.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_84.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_85.sql
WITH v(a, b) AS (SELECT func1_sql_setint_imm(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_110.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_111.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_112.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_113.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_114.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_115.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_vol(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_120.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_121.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_122.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_123.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_124.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_125.sql
WITH v(a, b) AS (SELECT func1_read_setint_sql_stb(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
-- @description function_in_with_withfunc2_150.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_151.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_152.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_153.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_154.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_155.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_vol(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_160.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_nosql_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_161.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_nosql_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_162.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_nosql_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_163.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_sql_int_vol(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_164.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_sql_int_stb(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
-- @description function_in_with_withfunc2_165.sql
begin;
WITH v(a, b) AS (SELECT func1_mod_setint_stb(func2_sql_int_imm(a)), b FROM foo WHERE b < 5) SELECT v1.a, v2.b FROM v AS v1, v AS v2 WHERE v1.a < v2.a order by v1.a, v2.b;
rollback;
import os
import sys
import datetime
import math
import tinctest
import re
from time import gmtime, strftime, sleep
import unittest2 as unittest
from fnmatch import fnmatch
from tinctest.runner import TINCTextTestResult
from tinctest.lib import run_shell_command, Gpdiff
from mpp.models import SQLTestCase
from mpp.lib.PSQL import PSQL
class FunctionPropertySQLTestCase(SQLTestCase):
def __init__(self, methodName, baseline_result = None, sql_file = None, db_name = None):
super(FunctionPropertySQLTestCase, self).__init__(methodName, baseline_result, sql_file, db_name)
self.optimizer_mode = 'on'
def _infer_metadata(self):
super(FunctionPropertySQLTestCase, self)._infer_metadata()
self.executemode= self._metadata.get('executemode', 'ORCA_NORMAL')
def run_test(self):
sql_file = self.sql_file
ans_file = self.ans_file
source_file = sys.modules[self.__class__.__module__].__file__
source_dir = os.path.dirname(source_file)
out_file = os.path.join(self.get_out_dir(), os.path.basename(sql_file).replace('.sql', '.out'))
guc_sql_file = self._add_gucs_to_sql_file(sql_file)
adj_ans_file = self._add_opt_diff_too_ans_file(ans_file)
PSQL.run_sql_file(guc_sql_file, dbname = self.db_name, out_file = out_file)
init_files = []
init_file_path = os.path.join(self.get_sql_dir(), 'init_file')
if os.path.exists(init_file_path):
init_files.append(init_file_path)
if out_file[-2:] == '.t':
out_file = out_file[:-2]
if adj_ans_file is not None:
if (self.executemode == 'normal'):
result = Gpdiff.are_files_equal(out_file, ans_file, match_sub = init_files)
elif (self.executemode == 'ORCA_PLANNER_DIFF'):
out_file = os.path.join(self.get_out_dir(), os.path.basename(sql_file).replace('.sql', '.out'))
new_ans_file = os.path.join(self.get_out_dir(), os.path.basename(ans_file).replace('.ans', '_mod.ans'))
guc_sql_file = self._add_gucs_to_sql_file(sql_file)
self.gucs.add('optimizer=off')
self.gucs.add('optimizer_log=off')
guc_off_sql_file = self._add_gucs_to_sql_file(sql_file)
PSQL.run_sql_file(guc_off_sql_file, dbname = self.db_name, out_file = new_ans_file)
PSQL.run_sql_file(guc_sql_file, dbname = self.db_name, out_file = out_file)
sedcmd = "sed -i -e 's/transactionid,,,,,[[:digit:]]\+,,,,[[:digit:]]\+,[[:digit:]]\+,ExclusiveLock,t,[[:digit:]]\+,/transactionid,,,,,XXXXX,,,,XXXXX,XXXXX,ExclusiveLock,t,XXXXX,/' " +new_ans_file
sedcmd2 = "sed -i -e 's/transactionid,,,,,[[:digit:]]\+,,,,[[:digit:]]\+,[[:digit:]]\+,ExclusiveLock,t,[[:digit:]]\+,/transactionid,,,,,XXXXX,,,,XXXXX,XXXXX,ExclusiveLock,t,XXXXX,/' " +out_file
sedcmd3 = "sed -i -e 's/pg_aoseg_[[:digit:]]\+/pg_aoseg_XXXXX/' " +new_ans_file
sedcmd4 = "sed -i -e 's/pg_aoseg_[[:digit:]]\+/pg_aoseg_XXXXX/' " +out_file
run_shell_command(sedcmd, "replace dynamic values in planner output with XXXXX")
run_shell_command(sedcmd2, "replace dynamic values in ORCA output with XXXXX")
run_shell_command(sedcmd3, "replace dynamic values in pg_aoseg.pg_aoseg_")
run_shell_command(sedcmd4, "replace dynamic values in pg_aoseg.pg_aoseg_")
result = Gpdiff.are_files_equal(out_file, new_ans_file, match_sub = init_files)
else:
result = Gpdiff.are_files_equal(out_file, adj_ans_file, match_sub = init_files)
if result == False:
self.test_artifacts.append(out_file.replace('.out', '.diff'))
return result
def _add_opt_diff_too_ans_file(self,ans_file):
"""
@param ans_file Path to the test ans file
@returns path to the modified ans file
"""
gucs_ans_file = os.path.join(self.get_out_dir(), os.path.basename(ans_file).replace('.ans', '_mod.ans'))
start_of_plan = 0
with open(gucs_ans_file, 'w') as o:
with open(ans_file, 'r') as f:
for line in f:
if (start_of_plan == 0):
if (line.find('QUERY PLAN') > 0):
start_of_plan = 1;
o.write(line)
continue
else:
o.write(line)
continue
else:
if (line.find(' Settings: gp_optimizer=on') > 0):
continue
elif (line.find('rows)') > 0):
matchrows = re.match('\(([0-9]+) rows\)', line)
new_row = -1
if matchrows != None:
row_num = matchrows.group(1)
new_row = int(row_num) + 1
o.write('(' +str(new_row)+ ' rows)\n')
continue
else:
o.write(line)
continue
return gucs_ans_file
-- @description function_in_from_0.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_nosql_vol(5) order by 1;
func1_nosql_vol
-----------------
6
(1 row)
-- @description function_in_from_1.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_nosql_stb(5) order by 1;
func1_nosql_stb
-----------------
6
(1 row)
-- @description function_in_from_10.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_read_int_sql_stb(5) order by 1;
func1_read_int_sql_stb
------------------------
6
(1 row)
-- @description function_in_from_11.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_read_setint_sql_vol(5) order by 1;
func1_read_setint_sql_vol
---------------------------
2
3
4
5
7
8
9
10
11
(9 rows)
-- @description function_in_from_12.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_read_setint_sql_stb(5) order by 1;
func1_read_setint_sql_stb
---------------------------
2
3
4
5
7
8
9
10
11
(9 rows)
-- @description function_in_from_13.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_mod_int_vol(5) order by 1;
func1_mod_int_vol
-------------------
6
(1 row)
-- @description function_in_from_14.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_mod_int_stb(5) order by 1;
psql:/data/tungs1_cdbfast/tinc/private/balasr3/tincrepo/functionProperty/sql/function_in_from_14.sql:7: ERROR: UPDATE is not allowed in a non-volatile function
CONTEXT: SQL statement "UPDATE bar SET d = d+1 WHERE c = $1 "
PL/pgSQL function "func1_mod_int_stb" line 2 at SQL statement
-- @description function_in_from_15.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_mod_setint_vol(5) order by 1;
func1_mod_setint_vol
----------------------
8
9
10
11
12
(5 rows)
-- @description function_in_from_16.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_mod_setint_stb(5) order by 1;
psql:/data/tungs1_cdbfast/tinc/private/balasr3/tincrepo/functionProperty/sql/function_in_from_16.sql:7: ERROR: UPDATE is not allowed in a non-volatile function
CONTEXT: SQL statement "UPDATE bar SET d = d+1 WHERE c > $1 "
PL/pgSQL function "func1_mod_setint_stb" line 4 at SQL statement
-- @description function_in_from_2.sql
-- @db_name functionproperty
-- @author tungs1
-- @modified 2013-04-03 12:00:00
-- @created 2013-04-03 12:00:00
-- @tags functionProperties
SELECT * FROM func1_nosql_imm(5) order by 1;
func1_nosql_imm
-----------------
6
(1 row)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册