mirror of https://github.com/citusdata/citus.git
/* * Only relation RTEs and subquery RTEs that were once relation * RTEs (views) have their perminfoindex set. */ Assert(rte->rtekind == RTE_RELATION || (rte->rtekind == RTE_SUBQUERY && rte->relkind == RELKIND_VIEW)); Scenario that was crashing because RTE_RELATION was converted to RTE_SUBQUERY: CREATE TABLE events_table_local(user_id bigint, value_1 int, value_2 int); INSERT INTO events_table_local SELECT i, i %9, i %50 FROM generate_series(0, 100) i; CREATE TABLE events_table_part(user_id bigint, value_1 int, value_2 int) PARTITION BY RANGE (value_1); CREATE TABLE events_table_part_0 PARTITION OF events_table_part FOR VALUES FROM (0) TO (1); CREATE TABLE events_table_part_1 PARTITION OF events_table_part FOR VALUES FROM (1) TO (2); CREATE TABLE events_table_part_2 PARTITION OF events_table_part FOR VALUES FROM (2) TO (3); CREATE TABLE events_table_part_3 PARTITION OF events_table_part FOR VALUES FROM (3) TO (4); CREATE TABLE events_table_part_4 PARTITION OF events_table_part FOR VALUES FROM (4) TO (5); CREATE TABLE events_table_part_5 PARTITION OF events_table_part FOR VALUES FROM (5) TO (6); CREATE TABLE events_table_part_6 PARTITION OF events_table_part FOR VALUES FROM (6) TO (7); CREATE TABLE events_table_part_7 PARTITION OF events_table_part FOR VALUES FROM (7) TO (8); CREATE TABLE events_table_part_8 PARTITION OF events_table_part FOR VALUES FROM (8) TO (9); SELECT create_distributed_table('events_table_part', 'user_id'); INSERT INTO events_table_part SELECT i, i %9, i %50 FROM generate_series(0, 100) i; CREATE TABLE users_table_part(user_id bigint, value_1 int, value_2 int) PARTITION BY RANGE (value_1); CREATE TABLE users_table_part_0 PARTITION OF users_table_part FOR VALUES FROM (0) TO (1); CREATE TABLE users_table_part_1 PARTITION OF users_table_part FOR VALUES FROM (1) TO (2); CREATE TABLE users_table_part_2 PARTITION OF users_table_part FOR VALUES FROM (2) TO (3); CREATE TABLE users_table_part_3 PARTITION OF users_table_part FOR VALUES FROM (3) TO (4); CREATE TABLE users_table_part_4 PARTITION OF users_table_part FOR VALUES FROM (4) TO (5); CREATE TABLE users_table_part_5 PARTITION OF users_table_part FOR VALUES FROM (5) TO (6); CREATE TABLE users_table_part_6 PARTITION OF users_table_part FOR VALUES FROM (6) TO (7); CREATE TABLE users_table_part_7 PARTITION OF users_table_part FOR VALUES FROM (7) TO (8); CREATE TABLE users_table_part_8 PARTITION OF users_table_part FOR VALUES FROM (8) TO (9); SELECT create_distributed_table('users_table_part', 'user_id'); INSERT INTO users_table_part SELECT i, i %9, i %50 FROM generate_series(0, 100) i; SELECT * FROM (SELECT * FROM events_table_local UNION ALL SELECT events_table_local.* FROM events_table_part JOIN events_table_local USING(user_id)) AS foo JOIN users_table_part USING(user_id) LIMIT 1; $$); |
||
---|---|---|
.. | ||
backend | ||
bin/pg_send_cancellation | ||
include | ||
test |