mirror of https://github.com/citusdata/citus.git
Add tests with function dependencies on tables (#5866)
We are not sure if we have such tests, but lets add anywaypull/5867/head
parent
1e1e66eeed
commit
670fae99f7
|
@ -631,6 +631,50 @@ BEGIN
|
||||||
CREATE INDEX ON distributed_table(last_column);
|
CREATE INDEX ON distributed_table(last_column);
|
||||||
END;
|
END;
|
||||||
$BODY$ LANGUAGE plpgsql;
|
$BODY$ LANGUAGE plpgsql;
|
||||||
|
CREATE TABLE test_for_func(
|
||||||
|
a int
|
||||||
|
);
|
||||||
|
SELECT create_distributed_table('test_for_func', 'a');
|
||||||
|
create_distributed_table
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- create a function that depends on a relation that depends on an extension
|
||||||
|
CREATE OR REPLACE FUNCTION function_on_table_depends_on_extension (
|
||||||
|
p_table_name text)
|
||||||
|
RETURNS TABLE (LIKE pg_dist_partition)
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
RETURN QUERY
|
||||||
|
SELECT * FROM pg_dist_partition WHERE logicalrelid::regclass::text = p_table_name;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
SELECT logicalrelid FROM function_on_table_depends_on_extension('test_for_func');
|
||||||
|
logicalrelid
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
test_for_func
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- create a function that depends on a relation that does not depend on an extension
|
||||||
|
CREATE TABLE local_test(a int);
|
||||||
|
CREATE OR REPLACE FUNCTION function_on_table_does_not_depend_on_extension (
|
||||||
|
input int)
|
||||||
|
RETURNS TABLE (LIKE local_test)
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
RETURN QUERY
|
||||||
|
SELECT * FROM local_test WHERE a = input;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
WARNING: "function function_on_table_does_not_depend_on_extension(integer)" has dependency to "table local_test" that is not in Citus' metadata
|
||||||
|
DETAIL: "function function_on_table_does_not_depend_on_extension(integer)" will be created only locally
|
||||||
|
HINT: Distribute "table local_test" first to distribute "function function_on_table_does_not_depend_on_extension(integer)"
|
||||||
|
SELECT * FROM function_on_table_does_not_depend_on_extension(5);
|
||||||
|
a
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
(0 rows)
|
||||||
|
|
||||||
-- hide plpgsql messages as they differ across pg versions
|
-- hide plpgsql messages as they differ across pg versions
|
||||||
\set VERBOSITY terse
|
\set VERBOSITY terse
|
||||||
SELECT create_index_in_plpgsql();
|
SELECT create_index_in_plpgsql();
|
||||||
|
|
|
@ -398,6 +398,41 @@ BEGIN
|
||||||
END;
|
END;
|
||||||
$BODY$ LANGUAGE plpgsql;
|
$BODY$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE test_for_func(
|
||||||
|
a int
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT create_distributed_table('test_for_func', 'a');
|
||||||
|
|
||||||
|
-- create a function that depends on a relation that depends on an extension
|
||||||
|
CREATE OR REPLACE FUNCTION function_on_table_depends_on_extension (
|
||||||
|
p_table_name text)
|
||||||
|
RETURNS TABLE (LIKE pg_dist_partition)
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
RETURN QUERY
|
||||||
|
SELECT * FROM pg_dist_partition WHERE logicalrelid::regclass::text = p_table_name;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
SELECT logicalrelid FROM function_on_table_depends_on_extension('test_for_func');
|
||||||
|
|
||||||
|
|
||||||
|
-- create a function that depends on a relation that does not depend on an extension
|
||||||
|
CREATE TABLE local_test(a int);
|
||||||
|
CREATE OR REPLACE FUNCTION function_on_table_does_not_depend_on_extension (
|
||||||
|
input int)
|
||||||
|
RETURNS TABLE (LIKE local_test)
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
RETURN QUERY
|
||||||
|
SELECT * FROM local_test WHERE a = input;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
SELECT * FROM function_on_table_does_not_depend_on_extension(5);
|
||||||
|
|
||||||
-- hide plpgsql messages as they differ across pg versions
|
-- hide plpgsql messages as they differ across pg versions
|
||||||
\set VERBOSITY terse
|
\set VERBOSITY terse
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue