postgresql/src/test/regress/sql
Tom Lane 68fab04f7c Fix incorrect handling of join clauses pushed into parameterized paths.
In some cases a clause attached to an outer join can be pushed down into
the outer join's RHS even though the clause is not degenerate --- this
can happen if we choose to make a parameterized path for the RHS.  If
the clause ends up attached to a lower outer join, we'd misclassify it
as being a "join filter" not a plain "filter" condition at that node,
leading to wrong query results.

To fix, teach extract_actual_join_clauses to examine each join clause's
required_relids, not just its is_pushed_down flag.  (The latter now
seems vestigial, or at least in need of rethinking, but we won't do
anything so invasive as redefining it in a bug-fix patch.)

This has been wrong since we introduced parameterized paths in 9.2,
though it's evidently hard to hit given the lack of previous reports.
The test case used here involves a lateral function call, and I think
that a lateral reference may be required to get the planner to select
a broken plan; though I wouldn't swear to that.  In any case, even if
LATERAL is needed to trigger the bug, it still affects all supported
branches, so back-patch to all.

Per report from Andreas Karlsson.  Thanks to Andrew Gierth for
preliminary investigation.

Discussion: https://postgr.es/m/f8128b11-c5bf-3539-48cd-234178b2314d@proxel.se
2018-04-19 15:49:12 -04:00
..
.gitignore Add a SECURITY LABEL command. 2010-09-27 20:55:27 -04:00
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 Fix unstable regression test added by commits 59b71c6fe et al. 2017-11-24 00:29:20 -05:00
alter_generic.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
alter_operator.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
alter_table.sql Fix crash when columns have been added to the end of a view. 2017-10-27 17:10:21 -04:00
amutils.sql Add SQL-accessible functions for inspecting index AM properties. 2016-08-13 18:31:14 -04:00
arrays.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08: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 Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
box.sql Fix support for some operators (&<, &>, $<|, |&>) in box operator class 2017-03-21 16:23:10 +03:00
brin.sql Fix BRIN cost estimation 2017-04-06 17:51:53 -03:00
btree_index.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
case.sql Faster expression evaluation and targetlist projection. 2017-03-25 14:52:06 -07:00
char.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
circle.sql Support ORDER BY ... NULLS FIRST/LAST, and add ASC/DESC/NULLS FIRST/NULLS LAST 2007-01-09 02:14:16 +00:00
cluster.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
collate.icu.utf8.sql Remove ICU tests from default run 2017-03-25 00:30:26 -04:00
collate.linux.utf8.sql ICU support 2017-03-23 15:28:48 -04:00
collate.sql Revert test case added by commit 1e165d05fe. 2017-08-01 20:15:10 -04:00
combocid.sql Fix locking a tuple updated by an aborted (sub)transaction 2016-09-09 15:54:29 -03:00
comments.sql Implement nested block comments in the backend and in psql. 2000-07-14 15:43:57 +00:00
conversion.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
copy2.sql Support "COPY view FROM" for views with INSTEAD OF INSERT triggers. 2016-11-10 14:13:43 -05:00
copydml.sql COPY (INSERT/UPDATE/DELETE .. RETURNING ..) 2015-11-27 19:11:22 +03:00
copyselect.sql Have \copy go through SendQuery 2012-01-25 18:22:00 -03:00
create_aggregate.sql Fix type-safety problem with parallel aggregate serial/deserialization. 2016-06-22 16:52:41 -04:00
create_am.sql Fix broken dependency-mongering for index operator classes/families. 2016-04-13 23:33:31 -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 Allow referring to functions without arguments when unique 2017-03-14 23:55:19 -04:00
create_index.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -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.sql Use the right memory context for partkey's FmgrInfo 2018-04-12 15:08:25 -03:00
create_table_like.sql Fix CREATE TABLE / LIKE with bigint identity column 2018-03-13 09:41:36 -04:00
create_type.sql Fix dependency, when changing a function's argument/return type. 2017-06-16 11:33:12 +03:00
create_view.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
date.sql Allow negative years in make_date to represent BC years 2017-01-19 09:45:38 -03:00
dbsize.sql Add pg_size_bytes() to parse human-readable size strings. 2016-02-20 09:57:27 +00:00
delete.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
dependency.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
domain.sql Fix handling of container types in find_composite_type_dependencies. 2017-08-09 17:03:09 -04:00
drop_if_exists.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
drop_operator.sql Fix DROP OPERATOR to reset oprcom/oprnegate links to the dropped operator. 2016-03-25 12:33:16 -04:00
enum.sql Revert to 9.6 treatment of ALTER TYPE enumtype ADD VALUE. 2017-09-27 16:14:37 -04:00
equivclass.sql Improve RLS planning by marking individual quals with security levels. 2017-01-18 12:58:20 -05:00
errors.sql Spelling fixes in code comments 2017-03-14 12:58:39 -04:00
event_trigger.sql Remove objname/objargs split for referring to objects 2017-03-06 13:31:47 -05:00
expressions.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
float4.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
float8.sql Improve regression tests for degree-based trigonometric functions. 2016-04-19 16:47:21 -04:00
foreign_data.sql Again match pg_user_mappings to information_schema.user_mapping_options. 2017-08-07 07:09:28 -07:00
foreign_key.sql Check for pending trigger events on far end when dropping an FK constraint. 2016-11-25 13:44:47 -05:00
functional_deps.sql Recognize functional dependency on primary keys. This allows a table's 2010-08-07 02:44:09 +00:00
geometry.sql Add geometry/range functions to support BRIN inclusion 2015-05-05 15:22:24 -03:00
gin.sql Make GIN regression test stable. 2016-02-08 23:41:46 +09:00
gist.sql Fix pfree-of-already-freed-tuple when rescanning a GiST index-only scan. 2017-05-04 13:59:39 -04:00
groupingsets.sql Repair crash with unsortable grouping sets. 2018-03-21 11:41:53 +00:00
guc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
hash_index.sql Speed up hash_index regression test. 2017-04-12 16:17:53 -04:00
horology.sql Make to_timestamp() and to_date() range-check fields of their input. 2016-09-28 14:36:17 -04:00
hs_primary_extremes.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_primary_setup.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_standby_allowed.sql Better fix for sequence access in hot standby test 2017-01-04 08:47:18 -05:00
hs_standby_check.sql Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
hs_standby_disallowed.sql Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
hs_standby_functions.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
identity.sql Fix application of identity values in some cases 2018-02-02 15:06:52 -05:00
indirect_toast.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
inet.sql Create an SP-GiST opclass for inet/cidr. 2016-08-23 15:16:30 -04:00
inherit.sql Fix improper uses of canonicalize_qual(). 2018-03-11 18:10:42 -04:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Fix state reversal after partition tuple routing 2018-03-19 17:43:55 -03:00
insert_conflict.sql Revert "Allow ON CONFLICT .. DO NOTHING on a partitioned table." 2017-03-31 16:48:21 -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 Fix integer-overflow problems in interval comparison. 2017-04-05 23:51:27 -04:00
join.sql Fix incorrect handling of join clauses pushed into parameterized paths. 2018-04-19 15:49:12 -04:00
json.sql Make json{b}_populate_recordset() use the right tuple descriptor. 2017-11-06 10:29:38 -05:00
json_encoding.sql Fix whitespace 2015-10-11 21:44:27 -04:00
jsonb.sql Make json{b}_populate_recordset() use the right tuple descriptor. 2017-11-06 10:29:38 -05:00
limit.sql Add regression tests exercising more code paths in nodeLimit.c. 2017-08-11 17:28:01 -04: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 Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
macaddr.sql Allow input format xxxx-xxxx-xxxx for macaddr type 2014-10-21 16:16:39 -04:00
macaddr8.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
matview.sql Remove useless and rather expensive stanza in matview regression test. 2017-05-03 19:37:01 -04:00
misc_functions.sql Add num_nulls() and num_nonnulls() to count NULL arguments. 2016-02-04 23:03:37 -05:00
misc_sanity.sql Fix over-aggressive sanity check in misc_sanity.sql. 2017-08-28 10:14:47 -04:00
money.sql Fix precision and rounding issues in money multiplication and division. 2017-05-21 13:05:16 -04:00
name.sql Introduce parse_ident() 2016-03-18 18:16:14 +03:00
namespace.sql Regression tests for SCHEMA commands 2013-12-11 20:45:15 +00:00
numeric.sql Fix behavior when converting a float infinity to numeric. 2017-09-27 17:05:53 -04:00
numeric_big.sql Fix corner-case loss of precision in numeric pow() calculation 2016-05-05 11:16:17 +01:00
numerology.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
object_address.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04: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 v10. 2017-05-15 14:04:11 -04:00
opr_sanity.sql Make opr_sanity test complain about built-in functions marked prosecdef. 2017-06-20 17:06:43 -04:00
password.sql Don't allow logging in with empty password. 2017-08-07 17:03:42 +03:00
path.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
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 Use the correct tuplestore read pointer in a NamedTuplestoreScan. 2018-02-27 15:56:51 -05: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 Fix incorrect handling of polymorphic aggregates used as window functions. 2016-10-09 12:49:37 -04:00
portals.sql Fix WHERE CURRENT OF when the referenced cursor uses an index-only scan. 2018-03-17 14:59:31 -04:00
portals_p2.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
prepare.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
prepared_xacts.sql Remove unnecessary dependency on statement_timeout in prepared_xacts test. 2017-03-13 16:46:32 -04:00
privileges.sql Always require SELECT permission for ON CONFLICT DO UPDATE. 2017-11-06 09:17:44 +00:00
psql.sql psql: Fix \gx when FETCH_COUNT is used 2017-08-24 16:20:48 -04:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql psql: Improve display of "for all tables" publications 2017-06-15 10:46:41 -04:00
random.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
rangefuncs.sql Disallow set-returning functions inside CASE or COALESCE. 2017-06-13 23:46:39 -04:00
rangetypes.sql Fix typcache's failure to treat ranges as container types. 2017-10-20 17:12:27 -04:00
regex.linux.utf8.sql Make locale-dependent regex character classes work for large char codes. 2016-09-05 17:06:29 -04:00
regex.sql Implement regexp_match(), a simplified alternative to regexp_matches(). 2016-08-17 18:33:01 -04:00
regproc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
reltime.sql Add a "USING" clause to DELETE, which is equivalent to the FROM clause 2005-04-07 01:51:41 +00:00
replica_identity.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
returning.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
roleattributes.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
rolenames.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
rowsecurity.sql Always require SELECT permission for ON CONFLICT DO UPDATE. 2017-11-06 09:17:44 +00:00
rowtypes.sql Clean up after insufficiently-researched optimization of tuple conversions. 2017-04-06 21:10:20 -04:00
rules.sql Fix mishandling of quoted-list GUC values in pg_dump and ruleutils.c. 2018-03-21 20:03:28 -04:00
sanity_check.sql Change the relkind for partitioned tables from 'P' to 'p'. 2017-03-10 13:15:47 -05:00
security_label.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select.sql Expose explain's SUMMARY option 2017-03-08 15:14:03 -05:00
select_distinct.sql Disable physical tlist if any Var would need multiple sortgroupref labels. 2016-05-26 14:52:30 -04:00
select_distinct_on.sql Fix assertion failure when a SELECT DISTINCT ON expression is volatile. 2009-09-12 00:04:59 +00:00
select_having.sql Make the behavior of HAVING without GROUP BY conform to the SQL spec. 2005-03-10 23:21:26 +00:00
select_implicit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
select_into.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select_parallel.sql Try again to fix accumulation of parallel worker instrumentation. 2017-12-19 12:44:21 -05:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
sequence.sql psql: Update \d sequence display 2017-09-29 13:34:18 -04:00
spgist.sql Add test cases for indexam operations not currently covered. 2014-11-19 19:47:43 +02:00
stats.sql stats regression test's wait_for_stats() must check timestamp too. 2017-05-14 23:33:18 -04:00
stats_ext.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
strings.sql Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:22 -04:00
subscription.sql Fix ALTER SUBSCRIPTION grammar ambiguity 2017-06-05 21:43:25 -04:00
subselect.sql Repair failure with SubPlans in multi-row VALUES lists. 2017-11-25 14:15:48 -05:00
sysviews.sql Invent pg_hba_file_rules view to show the content of pg_hba.conf. 2017-01-30 18:00:26 -05:00
tablesample.sql Make tablesample work with partitioned tables. 2017-02-24 12:23:28 +05:30
temp.sql Don't refer to the database name "regression" inside the regression test 2008-07-03 16:01:10 +00:00
text.sql Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
tidscan.sql Improve regression test coverage for TID scanning. 2017-03-20 12:30:23 -04:00
time.sql Please find attached two patches for documentation and regression tests 2006-07-06 01:46:38 +00:00
timestamp.sql Be more careful about out-of-range dates and timestamps. 2016-03-16 19:09:28 -04:00
timestamptz.sql Fix timestamptz regression test to still work with latest IANA zone data. 2017-03-09 17:20:33 -05:00
timetz.sql Please find attached two patches for documentation and regression tests 2006-07-06 01:46:38 +00:00
tinterval.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
transactions.sql Fix subtransaction cleanup after an outer-subtransaction portal fails. 2015-09-04 13:37:14 -04:00
triggers.sql Prevent dangling-pointer access when update trigger returns old tuple. 2018-02-27 13:27:38 -05:00
truncate.sql Allow ALTER TABLE ONLY on partitioned tables 2017-04-25 16:57:43 -04:00
tsdicts.sql Spelling fixes 2017-03-14 12:58:39 -04:00
tsearch.sql Ensure that a tsquery like '!foo' matches empty tsvectors. 2017-01-26 12:18:07 -05:00
tsrf.sql Re-allow SRFs and window functions within sub-selects within aggregates. 2017-06-27 17:51:11 -04:00
tstypes.sql Ensure that a tsquery like '!foo' matches empty tsvectors. 2017-01-26 12:18:07 -05:00
txid.sql Add a txid_status function. 2017-03-24 12:00:53 -04:00
type_sanity.sql Implement multivariate n-distinct coefficients 2017-03-24 14:06:10 -03:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
union.sql Fix UNION/INTERSECT/EXCEPT over no columns. 2017-12-22 12:08:18 -05:00
updatable_views.sql Teach map_partition_varattnos to handle whole-row expressions. 2017-08-03 11:21:29 -04:00
update.sql Allow partitioned tables to be dropped without CASCADE 2017-03-06 15:50:53 +05:30
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Give a better error for duplicate entries in VACUUM/ANALYZE column list. 2017-09-21 18:13:11 -04: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 Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:04 -04:00
without_oid.sql Combine cmin and cmax fields of HeapTupleHeaders into a single field, by 2007-02-09 03:35:35 +00:00
xml.sql Fix previous commit's test, for non-UTF8 databases with non-XML builds. 2017-11-11 13:07:54 -08:00
xmlmap.sql Fix cursor_to_xml in tableforest false mode 2017-05-03 21:41:10 -04:00