postgresql/src/test/regress/sql
Tom Lane 85e5e222b1 Fix a PlaceHolderVar-related oversight in star-schema planning patch.
In commit b514a7460d, I changed the planner
so that it would allow nestloop paths to remain partially parameterized,
ie the inner relation might need parameters from both the current outer
relation and some upper-level outer relation.  That's fine so long as we're
talking about distinct parameters; but the patch also allowed creation of
nestloop paths for cases where the inner relation's parameter was a
PlaceHolderVar whose eval_at set included the current outer relation and
some upper-level one.  That does *not* work.

In principle we could allow such a PlaceHolderVar to be evaluated at the
lower join node using values passed down from the upper relation along with
values from the join's own outer relation.  However, nodeNestloop.c only
supports simple Vars not arbitrary expressions as nestloop parameters.
createplan.c is also a few bricks shy of being able to handle such cases;
it misplaces the PlaceHolderVar parameters in the plan tree, which is why
the visible symptoms of this bug are "plan should not reference subplan's
variable" and "failed to assign all NestLoopParams to plan nodes" planner
errors.

Adding the necessary complexity to make this work doesn't seem like it
would be repaid in significantly better plans, because in cases where such
a PHV exists, there is probably a corresponding join order constraint that
would allow a good plan to be found without using the star-schema exception.
Furthermore, adding complexity to nodeNestloop.c would create a run-time
penalty even for plans where this whole consideration is irrelevant.
So let's just reject such paths instead.

Per fuzz testing by Andreas Seltenreich; the added regression test is based
on his example query.  Back-patch to 9.2, like the previous patch.
2015-08-04 14:55:50 -04:00
..
.gitignore
abstime.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
advisory_lock.sql Add transaction-level advisory locks. 2011-02-18 14:05:12 +09:00
aggregates.sql Share transition state between different aggregates when possible. 2015-08-04 17:53:10 +03:00
alter_generic.sql Fix some typos in regression test comments. 2015-07-05 13:14:38 -04:00
alter_operator.sql Fix entirely broken permissions test in new alter_operator regression test. 2015-07-17 14:10:52 -04:00
alter_table.sql Add IF NOT EXISTS processing to ALTER TABLE ADD COLUMN 2015-07-29 21:30:00 -04:00
arrays.sql Fix bug around assignment expressions containing indirections. 2015-07-24 11:52:07 +02:00
async.sql Add new function pg_notification_queue_usage. 2015-07-17 09:12:03 -04:00
bit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
bitmapops.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
boolean.sql Clean up references to SQL92 2013-04-20 11:04:41 -04:00
box.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
brin.sql Fix brin regression test so it actually tests cidr. 2015-06-04 15:24:22 -04:00
btree_index.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
case.sql Clean up references to SQL92 2013-04-20 11:04:41 -04:00
char.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
circle.sql
cluster.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
collate.linux.utf8.sql Support range data types. 2011-11-03 13:42:15 +02:00
collate.sql Show sort ordering options in EXPLAIN output. 2015-01-16 18:19:00 -05:00
combocid.sql
comments.sql
conversion.sql Improve test for CONVERT() with GB18030 <-> UTF8. 2015-05-15 17:03:23 -04:00
copy2.sql Fix null-pointer-deref crash while doing COPY IN with check constraints. 2015-02-15 23:26:45 -05:00
copyselect.sql Have \copy go through SendQuery 2012-01-25 18:22:00 -03:00
create_aggregate.sql Allow polymorphic aggregates to have non-polymorphic state data types. 2014-04-23 19:17:41 -04:00
create_cast.sql Make CREATE TYPE print warnings if a datatype's I/O functions are volatile. 2014-11-05 11:44:06 -05:00
create_function_3.sql Move regression test listing of builtin leakproof functions to opr_sanity.sql. 2014-06-05 13:54:25 +02:00
create_index.sql Don't warn about creating temporary or unlogged hash indexes. 2015-06-26 11:37:32 -04:00
create_misc.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
create_operator.sql Allow named parameters to be specified using => in addition to := 2015-03-10 11:09:41 -04:00
create_table_like.sql Allow CREATE TABLE (LIKE ...) from composite type 2012-03-03 16:03:05 +02:00
create_table.sql Fix lost persistence setting during REINDEX INDEX 2015-03-30 16:01:44 -03:00
create_type.sql Use the right type OID after creating a shell type 2015-04-22 16:23:02 -03:00
create_view.sql Partial fix for dropped columns in functions returning composite. 2014-07-19 14:28:52 -04:00
date.sql Add make_date() and make_time() functions. 2013-11-17 15:06:50 -05:00
delete.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
dependency.sql
domain.sql Use the typcache to cache constraints for domain types. 2015-03-01 14:06:55 -05:00
drop_if_exists.sql Make DROP IF EXISTS more consistently not fail 2014-01-23 14:40:29 -03:00
enum.sql Allow adding values to an enum type created in the current transaction. 2012-12-01 14:27:30 -05:00
equivclass.sql Fix some more problems with nested append relations. 2014-10-01 19:31:12 -04:00
errors.sql Allow empty target list in SELECT. 2013-12-14 20:23:26 -05:00
event_trigger.sql Fix typos in comments 2015-05-17 14:58:04 +02:00
float4.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
float8.sql Revert "Add some regression test cases for denormalized float8 input." 2012-02-04 15:52:09 -05:00
foreign_data.sql Allow foreign tables to participate in inheritance. 2015-03-22 13:53:21 -04:00
foreign_key.sql Fix overlooked relcache invalidation in ALTER TABLE ... ALTER CONSTRAINT. 2015-05-03 11:30:24 -04:00
functional_deps.sql
geometry.sql Add geometry/range functions to support BRIN inclusion 2015-05-05 15:22:24 -03:00
gin.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
gist.sql Second try at stabilizing query plans in rowsecurity regression test. 2015-06-04 16:42:23 -04:00
groupingsets.sql Fix flattening of nested grouping sets. 2015-07-26 16:50:29 +02:00
guc.sql Add an optional missing_ok argument to SQL function current_setting(). 2015-07-02 16:41:07 -04:00
hash_index.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
horology.sql Fix to_timestamp/to_date's handling of consecutive spaces in format string. 2014-01-20 13:45:51 -05:00
hs_primary_extremes.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
hs_primary_setup.sql
hs_standby_allowed.sql regression test: fix hot standby tests by using repeatable read 2014-04-22 17:23:58 -04:00
hs_standby_check.sql
hs_standby_disallowed.sql
hs_standby_functions.sql
indirect_toast.sql Add support for multiple kinds of external toast datums. 2013-07-02 13:38:55 -04:00
inet.sql Add geometry/range functions to support BRIN inclusion 2015-05-05 15:22:24 -03:00
inherit.sql Fix inherited UPDATE/DELETE with UNION ALL subqueries. 2013-12-14 17:33:53 -05:00
insert_conflict.sql Check the relevant index element in ON CONFLICT unique index inference. 2015-07-26 18:20:41 +02:00
insert.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
int2.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
int4.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
int8.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
interval.sql interval: tighten precision specification 2014-10-18 10:31:00 -04:00
join.sql Fix a PlaceHolderVar-related oversight in star-schema planning patch. 2015-08-04 14:55:50 -04:00
json.sql Fix treatment of nulls in jsonb_agg and jsonb_object_agg 2015-07-24 09:40:46 -04:00
jsonb.sql Fix treatment of nulls in jsonb_agg and jsonb_object_agg 2015-07-24 09:40:46 -04:00
limit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
line.sql Revert "Tweak "line" test to avoid negative zeros on some platforms" 2013-10-25 15:50:31 -04:00
lock.sql Add a basic atomic ops API abstracting away platform/architecture details. 2014-09-25 23:49:05 +02:00
lseg.sql
macaddr.sql Allow input format xxxx-xxxx-xxxx for macaddr type 2014-10-21 16:16:39 -04:00
matview.sql Add CINE option for CREATE TABLE AS and CREATE MATERIALIZED VIEW 2014-12-13 13:56:09 -05:00
money.sql Add casts from int4 and int8 to numeric. 2011-04-05 09:35:43 -04:00
name.sql
namespace.sql Regression tests for SCHEMA commands 2013-12-11 20:45:15 +00:00
numeric_big.sql
numeric.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
numerology.sql
object_address.sql Add transforms to pg_get_object_address and friends 2015-06-21 16:08:49 -03:00
oid.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
oidjoins.sql Update oidjoins regression test for 9.5. 2015-07-25 15:46:26 -04:00
opr_sanity.sql Check that all aliases of a built-in function have same leakproof property. 2015-05-29 13:26:21 -04:00
path.sql
pg_lsn.sql Tweak new regression test case for better portability. 2014-06-04 21:31:41 -04:00
plancache.sql Change plan caching to honor, not resist, changes in search_path. 2013-01-25 14:14:41 -05:00
plpgsql.sql Repair mishandling of cached cast-expression trees in plpgsql. 2015-07-17 15:53:09 -04:00
point.sql Fix gist_box_same and gist_point_consistent to handle fuzziness correctly. 2013-02-08 18:03:17 -05:00
polygon.sql regression tests: remove polygon diagrams 2015-03-19 22:10:52 -04:00
polymorphism.sql Allow named parameters to be specified using => in addition to := 2015-03-10 11:09:41 -04:00
portals_p2.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
portals.sql Fix failure to set ActiveSnapshot while rewinding a cursor. 2014-05-07 14:25:11 -04:00
prepare.sql
prepared_xacts.sql Remove unnecessary and unreliable test 2015-02-20 14:03:49 -03:00
privileges.sql Improve regression test coverage of table lock modes vs permissions. 2015-07-07 14:35:35 -07:00
psql.sql psql: add asciidoc output format 2015-03-31 11:33:25 -04:00
random.sql
rangefuncs.sql Support flattening of empty-FROM subqueries and one-row VALUES tables. 2015-03-11 23:18:03 -04:00
rangetypes.sql Add geometry/range functions to support BRIN inclusion 2015-05-05 15:22:24 -03:00
regex.sql Fix incorrect search for "x?" style matches in creviterdissect(). 2014-09-23 20:26:14 -04:00
regproc.sql Add new OID alias type regnamespace 2015-05-09 13:36:52 -04:00
reltime.sql
replica_identity.sql psql: conditionally display oids and replication identity 2014-04-15 13:28:54 -04:00
returning.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
rolenames.sql Allow CURRENT/SESSION_USER to be used in certain commands 2015-03-09 15:41:54 -03:00
rowsecurity.sql Use appropriate command type when retrieving relation's policies. 2015-07-30 09:38:15 -07:00
rowtypes.sql Ensure that RowExprs and whole-row Vars produce the expected column names. 2014-11-10 15:21:09 -05:00
rules.sql Fix yet another bug in ON CONFLICT rule deparsing. 2015-05-23 02:16:24 +02:00
sanity_check.sql Use unaligned output in selected regression queries to reduce diff noise. 2013-10-26 11:24:04 -04:00
security_label.sql Move security_label test 2014-12-01 16:12:43 -03:00
select_distinct_on.sql
select_distinct.sql
select_having.sql
select_implicit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
select_into.sql Restructure SELECT INTO's parsetree representation into CreateTableAsStmt. 2012-03-19 21:38:12 -04:00
select_views.sql Improve qual pushdown for RLS and SB views 2015-04-27 12:29:42 -04:00
select.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
sequence.sql Add tests for sequence privileges 2014-10-22 21:39:07 -04:00
spgist.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
stats.sql Have TRUNCATE update pgstat tuple counters 2015-02-20 12:10:01 -03:00
strings.sql Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:22 -04:00
subselect.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
tablesample.sql Redesign tablesample method API, and do extensive code review. 2015-07-25 14:39:00 -04:00
temp.sql
text.sql Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
time.sql
timestamp.sql Constructors for interval, timestamp, timestamptz 2014-03-04 15:09:43 -03:00
timestamptz.sql Don't require bleeding-edge timezone data in timestamptz regression test. 2014-11-18 21:36:39 -05:00
timetz.sql
tinterval.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
transactions.sql In RelationClearRelation, postpone cache reload if !IsTransactionState(). 2014-02-06 19:38:06 -05:00
triggers.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
truncate.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
tsdicts.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
tsearch.sql Fix ts_rank_cd() to ignore stripped lexemes 2014-03-24 14:37:16 -04:00
tstypes.sql
txid.sql Handle duplicate XIDs in txid_snapshot. 2014-05-15 18:29:20 +03:00
type_sanity.sql In type_sanity, check I/O functions of built-in types are not volatile. 2014-10-23 15:59:40 -04:00
typed_table.sql Only allow typed tables to hang off composite types, not e.g. tables. 2011-04-18 10:19:46 -04:00
union.sql Forward-patch regression test for "could not find pathkey item to sort". 2014-06-26 10:41:48 -07:00
updatable_views.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
update.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Avoid unexpected slowdown in vacuum regression test. 2015-01-12 15:13:53 -05:00
varchar.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
window.sql Allow pushdown of WHERE quals into subqueries with window functions. 2014-06-27 23:08:08 -07:00
with.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
without_oid.sql
xml.sql Fix namespace handling in xpath function 2015-01-06 23:06:13 -05:00
xmlmap.sql Add regression tests for XML mapping of domains 2013-03-13 22:42:57 -04:00