postgresql/src/test/regress/sql
Tom Lane b97a3465d7 Consider syntactic form when disambiguating function vs column reference.
Postgres has traditionally considered the syntactic forms f(x) and x.f
to be equivalent, allowing tricks such as writing a function and then
using it as though it were a computed-on-demand column.  However, our
behavior when both interpretations are feasible left something to be
desired: we always chose the column interpretation.  This could lead
to very surprising results, as in a recent bug report from Neil Conway.
It also created a dump-and-reload hazard, since what was a function
call in a dumped view could get interpreted as a column reference
at reload, if a matching column name had been added to the underlying
table since the view was created.

What seems better, in ambiguous situations, is to prefer the choice
matching the syntactic form of the reference.  This seems much less
astonishing in general, and it fixes the dump/reload hazard.

Although this could be called a bug fix, there have been few complaints
and there's some small risk of breaking applications that depend on the
old behavior, so no back-patch.  It does seem reasonable to slip it
into v11, though.

Discussion: https://postgr.es/m/CAOW5sYa3Wp7KozCuzjOdw6PiOYPi6D=VvRybtH2S=2C0SVmRmA@mail.gmail.com
2018-06-18 11:39:33 -04:00
..
.gitignore
abstime.sql
advisory_lock.sql
aggregates.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter_generic.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
alter_operator.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter_table.sql Use custom hash opclass for hash partition pruning 2018-04-13 12:27:22 -03:00
amutils.sql Support index INCLUDE in the AM properties interface. 2018-04-08 06:02:05 +01:00
arrays.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
async.sql
bit.sql
bitmapops.sql
boolean.sql Expand AND/OR regression tests around NULL handling. 2018-03-13 16:12:31 -07: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 Skip full index scan during cleanup of B-tree indexes when possible 2018-04-04 19:29:00 +03:00
case.sql Faster expression evaluation and targetlist projection. 2017-03-25 14:52:06 -07:00
char.sql
circle.sql
cluster.sql Ignore partitioned indexes where appropriate 2018-01-25 16:12:15 -03: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 Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
combocid.sql Fix locking a tuple updated by an aborted (sub)transaction 2016-09-09 15:54:29 -03:00
comments.sql
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
copyselect.sql
create_aggregate.sql Improve spelling of new FINALFUNC_MODIFY aggregate attribute. 2018-05-21 11:41:42 -04:00
create_am.sql Remove no-op GiST support functions in the core GiST opclasses. 2017-09-19 23:32:59 -04:00
create_cast.sql
create_function_3.sql Mop-up for letting VOID-returning SQL functions end with a SELECT. 2018-03-16 12:48:13 -04:00
create_index.sql Fix wrong validation of top-parent pointer during page deletion in Btree. 2018-04-23 15:55:10 +03:00
create_misc.sql Improve regression test coverage of regress.c. 2018-02-27 12:13:14 -05:00
create_operator.sql Improve regression test coverage of regress.c. 2018-02-27 12:13:14 -05:00
create_procedure.sql Support named and default arguments in CALL 2018-04-14 09:13:53 -04:00
create_table_like.sql Fix CREATE TABLE / LIKE with bigint identity column 2018-03-13 09:41:30 -04:00
create_table.sql Fix handling of partition bounds for boolean partitioning columns. 2018-04-23 15:29:11 -04:00
create_type.sql Fix format_type() to restore its old behavior. 2018-03-01 11:37:46 -05:00
create_view.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
date.sql Allow negative years in make_date to represent BC years 2017-01-19 09:45:38 -03:00
dbsize.sql
delete.sql
dependency.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
domain.sql Fix ALTER TABLE code to update domain constraints when needed. 2017-11-01 13:32:23 -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
enum.sql Revert to 9.6 treatment of ALTER TYPE enumtype ADD VALUE. 2017-09-27 16:14:43 -04:00
equivclass.sql Reduce "X = X" to "X IS NOT NULL", if it's easy to do so. 2017-10-08 12:23:32 -04:00
errors.sql Spelling fixes in code comments 2017-03-14 12:58:39 -04:00
event_trigger.sql Add tests for session_replication_role 2018-01-18 11:24:07 -05:00
expressions.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
fast_default.sql Prevent segfault in expand_tuple with no missing values 2018-04-13 16:43:33 -04:00
float4.sql Revert "Test conversion of NaN between float4 and float8." 2018-05-05 13:22:11 -04:00
float8.sql Avoid wrong results for power() with NaN input on more platforms. 2018-04-29 18:15:16 -04:00
foreign_data.sql Don't allow partitioned index on foreign-table partitions 2018-05-14 13:23:07 -04:00
foreign_key.sql Foreign keys on partitioned tables 2018-04-04 14:02:49 -03:00
func_index.sql Fix whitespace 2018-05-17 23:04:41 -04:00
functional_deps.sql
geometry.sql
gin.sql
gist.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
groupingsets.sql Repair crash with unsortable grouping sets. 2018-03-21 11:39:28 +00:00
guc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
hash_func.sql Introduce 64-bit hash functions with a 64-bit seed. 2017-08-31 22:21:21 -04:00
hash_index.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
hash_part.sql Use custom hash opclass for hash partition pruning 2018-04-13 12:27:22 -03:00
horology.sql Implement TZH and TZM timestamp format patterns 2018-01-09 14:25:05 -05: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
hs_standby_disallowed.sql
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 Revert MERGE patch 2018-04-12 11:22:56 +01:00
index_including.sql Fix whitespace 2018-05-17 23:04:41 -04:00
indexing.sql Fix interference between covering indexes and partitioned tables 2018-04-12 17:25:13 +03:00
indirect_toast.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
inet.sql Create an SP-GiST opclass for inet/cidr. 2016-08-23 15:16:30 -04:00
inherit.sql Foreign keys on partitioned tables 2018-04-04 14:02:49 -03:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert_conflict.sql Ignore whole-rows in INSERT/CONFLICT with partitioned tables 2018-04-16 15:52:28 -03:00
insert.sql Use custom hash opclass for hash partition pruning 2018-04-13 12:27:22 -03:00
int2.sql
int4.sql
int8.sql
interval.sql Fix integer-overflow problems in interval comparison. 2017-04-05 23:51:27 -04:00
join.sql Fix misprocessing of equivalence classes involving record_eq(). 2018-05-16 13:46:23 -04:00
json_encoding.sql
json.sql Make test of json(b)_to_tsvector language-independ 2018-04-07 21:29:48 +03:00
jsonb.sql Make test of json(b)_to_tsvector language-independ 2018-04-07 21:29:48 +03:00
limit.sql Add regression tests exercising more code paths in nodeLimit.c. 2017-08-11 17:28:01 -04:00
line.sql
lock.sql Add more infinite recursion detection while locking a view. 2018-04-17 16:59:17 +09:00
lseg.sql
macaddr8.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
macaddr.sql
matview.sql Remove useless and rather expensive stanza in matview regression test. 2017-05-03 19:37:01 -04:00
misc_functions.sql
misc_sanity.sql Fix over-aggressive sanity check in misc_sanity.sql. 2017-08-28 10:14:46 -04:00
money.sql Fix precision and rounding issues in money multiplication and division. 2017-05-21 13:05:16 -04:00
name.sql
namespace.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
numeric_big.sql
numeric.sql Make numeric power() handle NaNs according to the modern POSIX spec. 2018-05-17 11:10:50 -04:00
numerology.sql
object_address.sql SQL procedures 2017-11-30 11:03:20 -05:00
oid.sql
oidjoins.sql Update oidjoins regression test for v11. 2018-05-07 14:32:04 -04:00
opr_sanity.sql Add prokind column, replacing proisagg and proiswindow 2018-03-02 13:48:33 -05:00
partition_aggregate.sql Make new regression indpendent of max_parallel_workers_per_gather. 2018-03-26 14:59:37 -07:00
partition_join.sql Try to stabilize EXPLAIN output in partition_check test. 2018-02-22 08:51:00 -05:00
partition_prune.sql Fix run-time partition pruning code to handle NULL values properly. 2018-06-11 12:08:15 -04:00
password.sql Don't allow logging in with empty password. 2017-08-07 17:03:42 +03:00
path.sql
pg_lsn.sql
plancache.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
plpgsql.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
point.sql
polygon.sql Add polygon opclass for SP-GiST 2017-12-25 18:59:38 +03:00
polymorphism.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
portals_p2.sql
portals.sql Fix WHERE CURRENT OF when the referenced cursor uses an index-only scan. 2018-03-17 14:59:49 -04:00
prepare.sql
prepared_xacts.sql Remove unnecessary dependency on statement_timeout in prepared_xacts test. 2017-03-13 16:46:32 -04:00
privileges.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
psql.sql Provide a test for variable existence in psql 2017-09-21 19:02:23 -04:00
publication.sql psql: Improve display of "for all tables" publications 2017-06-15 10:46:41 -04:00
random.sql
rangefuncs.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -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
reloptions.sql Minor fixes for reloptions tests 2018-03-03 12:51:56 -05:00
reltime.sql
replica_identity.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
returning.sql
roleattributes.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
rolenames.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
rowsecurity.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
rowtypes.sql Consider syntactic form when disambiguating function vs column reference. 2018-06-18 11:39:33 -04:00
rules.sql Revert MERGE patch 2018-04-12 11:22:56 +01: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_distinct_on.sql
select_distinct.sql
select_having.sql
select_implicit.sql
select_into.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
select_parallel.sql Prevent generation of bogus subquery scan paths. 2018-04-25 15:25:55 -04:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
select.sql Expose explain's SUMMARY option 2017-03-08 15:14:03 -05:00
sequence.sql psql: Update \d sequence display 2017-09-29 13:37:30 -04:00
spgist.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
stats_ext.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
stats.sql Allow bitmap scans to operate as index-only scans when possible. 2017-11-01 17:38:20 -04:00
strings.sql Add user-callable SHA-2 functions 2018-02-22 11:34:53 -05:00
subscription.sql Fix ALTER SUBSCRIPTION grammar ambiguity 2017-06-05 21:43:25 -04:00
subselect.sql Add COSTS off to two EXPLAIN using tests. 2018-03-13 16:12:31 -07: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
text.sql
tidscan.sql Improve regression test coverage for TID scanning. 2017-03-20 12:30:23 -04:00
time.sql
timestamp.sql
timestamptz.sql Implement TZH and TZM timestamp format patterns 2018-01-09 14:25:05 -05:00
timetz.sql
tinterval.sql
transactions.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
triggers.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
truncate.sql Allow ALTER TABLE ONLY on partitioned tables 2017-04-25 16:57:43 -04:00
tsdicts.sql Improve regression test coverage for src/backend/tsearch/spell.c. 2018-04-13 13:49:52 -04:00
tsearch.sql Remove tsearch test contained russian characters, missed in 2018-04-05 20:05:04 +03: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 Set proargmodes for satisfies_hash_partition. 2017-11-17 11:53:00 -05: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:06 -05:00
updatable_views.sql Fix enforcement of SELECT FOR UPDATE permissions with nested views. 2018-04-14 15:38:09 -04:00
update.sql Allow UPDATE to move rows between partitions. 2018-01-19 15:33:06 -05:00
uuid.sql
vacuum.sql Add parenthesized options syntax for ANALYZE. 2018-03-05 16:21:05 -08:00
varchar.sql
window.sql Add window RANGE support for float4, float8, numeric. 2018-02-24 13:23:38 -05:00
with.sql Revert MERGE patch 2018-04-12 11:22:56 +01:00
without_oid.sql
write_parallel.sql Allow DML commands that create tables to use parallel query. 2017-10-05 11:40:48 -04:00
xml.sql Fix previous commit's test, for non-UTF8 databases with non-XML builds. 2017-11-11 13:07:46 -08:00
xmlmap.sql Fix cursor_to_xml in tableforest false mode 2017-05-03 21:41:10 -04:00