postgresql/doc/src/sgml/ref
Michael Paquier ecfed4a122 Improve error handling of column references in expression transformation
Column references are not allowed in default expressions and partition
bound expressions, and are restricted as such once the transformation of
their expressions is done.  However, trying to use more complex column
references can lead to confusing error messages.  For example, trying to
use a two-field column reference name for default expressions and
partition bounds leads to "missing FROM-clause entry for table", which
makes no sense in their respective context.

In order to make the errors generated more useful, this commit adds more
verbose messages when transforming column references depending on the
context.  This has a little consequence though: for example an
expression using an aggregate with a column reference as argument would
cause an error to be generated for the column reference, while the
aggregate was the problem reported before this commit because column
references get transformed first.

The confusion exists for default expressions for a long time, and the
problem is new as of v12 for partition bounds.  Still per the lack of
complaints on the matter no backpatch is done.

The patch has been written by Amit Langote and me, and Tom Lane has
provided the improvement of the documentation for default expressions on
the CREATE TABLE page.

Author: Amit Langote, Michael Paquier
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/20190326020853.GM2558@paquier.xyz
2019-03-27 21:04:25 +09:00
..
abort.sgml Transaction chaining 2019-03-24 11:33:02 +01:00
allfiles.sgml Rename pg_verify_checksums to pg_checksums 2019-03-13 10:43:20 +09:00
alter_aggregate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_collation.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_conversion.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_database.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_default_privileges.sgml Refactor documentation about privileges to centralize the info. 2018-12-03 11:40:49 -05:00
alter_domain.sgml Doc: document that we expect CHECK constraint conditions to be immutable. 2018-12-07 16:40:58 -05:00
alter_event_trigger.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_extension.sgml SQL procedures 2017-11-30 11:03:20 -05:00
alter_foreign_data_wrapper.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_foreign_table.sgml Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
alter_function.sgml Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
alter_group.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_index.sgml Lower lock level for renaming indexes 2018-11-14 17:09:54 +01:00
alter_language.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_large_object.sgml Doc: improve documentation about ALTER LARGE OBJECT requirements. 2018-12-11 11:21:36 -05:00
alter_materialized_view.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_opclass.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_operator.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_opfamily.sgml doc: Update uses of the word "procedure" 2018-08-22 14:44:49 +02:00
alter_policy.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_procedure.sgml SQL procedures 2017-11-30 11:03:20 -05:00
alter_publication.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_role.sgml Clarify documentation about PASSWORD in CREATE/ALTER ROLE 2018-11-23 09:10:24 +09:00
alter_routine.sgml SQL procedures 2017-11-30 11:03:20 -05:00
alter_rule.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_schema.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_sequence.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_server.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_statistics.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_subscription.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_system.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_table.sgml Allow ALTER TABLE .. SET NOT NULL to skip provably unnecessary scans. 2019-03-13 08:55:00 -04:00
alter_tablespace.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_trigger.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_tsconfig.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_tsdictionary.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_tsparser.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_tstemplate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_type.sgml Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
alter_user_mapping.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
alter_user.sgml Clarify documentation about PASSWORD in CREATE/ALTER ROLE 2018-11-23 09:10:24 +09:00
alter_view.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
analyze.sgml Add option SKIP_LOCKED to VACUUM and ANALYZE 2018-10-04 09:00:33 +09:00
begin.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
call.sgml Fix bugs in plpgsql's handling of CALL argument lists. 2018-11-04 13:25:39 -05:00
checkpoint.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
close.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
cluster.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
clusterdb.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
comment.sgml SQL procedures 2017-11-30 11:03:20 -05:00
commit_prepared.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
commit.sgml Transaction chaining 2019-03-24 11:33:02 +01:00
copy.sgml Allow COPY FROM to filter data using WHERE conditions 2019-01-20 00:22:14 +01:00
create_access_method.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_aggregate.sgml Implement OR REPLACE option for CREATE AGGREGATE. 2019-03-19 01:16:50 +00:00
create_cast.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_collation.sgml Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
create_conversion.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_database.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_domain.sgml Doc: document that we expect CHECK constraint conditions to be immutable. 2018-12-07 16:40:58 -05:00
create_event_trigger.sgml Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax 2018-08-22 14:44:49 +02:00
create_extension.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_foreign_data_wrapper.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_foreign_table.sgml Fix documentation on partitioning vs. foreign tables 2019-03-10 19:45:29 -03:00
create_function.sgml Create the infrastructure for planner support functions. 2019-02-09 18:08:48 -05:00
create_group.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_index.sgml Support for INCLUDE attributes in GiST indexes 2019-03-10 11:37:17 +03:00
create_language.sgml doc: Update uses of the word "procedure" 2018-08-22 14:44:49 +02:00
create_materialized_view.sgml Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
create_opclass.sgml doc: Update uses of the word "procedure" 2018-08-22 14:44:49 +02:00
create_operator.sgml Change PROCEDURE to FUNCTION in CREATE OPERATOR syntax 2018-08-22 14:44:49 +02:00
create_opfamily.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_policy.sgml doc: Whitespace fixes in man pages 2018-05-21 14:43:24 -04:00
create_procedure.sgml Prohibit transaction commands in security definer procedures 2018-07-13 10:41:32 +02:00
create_publication.sgml Logical replication support for TRUNCATE 2018-04-07 11:34:11 -04:00
create_role.sgml Clarify documentation about PASSWORD in CREATE/ALTER ROLE 2018-11-23 09:10:24 +09:00
create_rule.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_schema.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_sequence.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_server.sgml docs: fix spacing around "if not exists" brackets 2018-03-29 21:25:39 -04:00
create_statistics.sgml Documentation spell checking and markup improvements 2018-06-29 21:26:41 +02:00
create_subscription.sgml Remove extra word from create sub docs 2018-11-03 12:21:54 -04:00
create_table_as.sgml Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
create_table.sgml Improve error handling of column references in expression transformation 2019-03-27 21:04:25 +09:00
create_tablespace.sgml doc: Clarify CREATE TABLESPACE documentation 2018-10-01 14:07:01 +02:00
create_transform.sgml Adjust hints and docs to suggest CREATE EXTENSION not CREATE LANGUAGE. 2018-04-27 13:42:03 -04:00
create_trigger.sgml Change PROCEDURE to FUNCTION in CREATE TRIGGER syntax 2018-08-22 14:44:49 +02:00
create_tsconfig.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_tsdictionary.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_tsparser.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_tstemplate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
create_type.sgml doc: Clarify CREATE TYPE ENUM documentation 2018-11-20 09:37:02 +01:00
create_user_mapping.sgml docs: fix spacing around "if not exists" brackets 2018-03-29 21:25:39 -04:00
create_user.sgml Clarify documentation about PASSWORD in CREATE/ALTER ROLE 2018-11-23 09:10:24 +09:00
create_view.sgml Add RECURSIVE to documentation index 2018-08-09 16:19:32 -04:00
createdb.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
createuser.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
deallocate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
declare.sgml doc: adjust DECLARE docs to mention FOR UPDATE behavior 2018-05-28 13:16:02 -04:00
delete.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
discard.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
do.sgml Adjust hints and docs to suggest CREATE EXTENSION not CREATE LANGUAGE. 2018-04-27 13:42:03 -04:00
drop_access_method.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_aggregate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_cast.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_collation.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_conversion.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_database.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_domain.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_event_trigger.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_extension.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_foreign_data_wrapper.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_foreign_table.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_function.sgml SQL procedures 2017-11-30 11:03:20 -05:00
drop_group.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_index.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_language.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_materialized_view.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_opclass.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_operator.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_opfamily.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_owned.sgml Doc: clarify that REASSIGN OWNED doesn't handle default privileges. 2019-03-25 17:18:05 -04:00
drop_policy.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_procedure.sgml SQL procedures 2017-11-30 11:03:20 -05:00
drop_publication.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_role.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_routine.sgml SQL procedures 2017-11-30 11:03:20 -05:00
drop_rule.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_schema.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_sequence.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_server.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_statistics.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_subscription.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_table.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_tablespace.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_transform.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_trigger.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_tsconfig.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_tsdictionary.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_tsparser.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_tstemplate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_type.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_user_mapping.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_user.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
drop_view.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
dropdb.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
dropuser.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
ecpg-ref.sgml ecpg: Document new compatibility option 2018-06-07 23:33:24 -04:00
end.sgml Transaction chaining 2019-03-24 11:33:02 +01:00
execute.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
explain.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
fetch.sgml Doc: minor improvement in pl/pgsql FETCH/MOVE documentation. 2018-07-12 12:29:03 -04:00
grant.sgml Refactor documentation about privileges to centralize the info. 2018-12-03 11:40:49 -05:00
import_foreign_schema.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
initdb.sgml Clarify behavior of initdb's --allow-group-access on Windows in docs 2019-02-04 09:57:20 +09:00
insert.sgml Revert MERGE patch 2018-04-12 11:22:56 +01:00
listen.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
load.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
lock.sgml Add more infinite recursion detection while locking a view. 2018-04-17 16:59:17 +09:00
move.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
notify.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pg_basebackup.sgml Improve wording about WAL files in tar mode of pg_basebackup 2019-01-29 10:42:41 +01:00
pg_checksums.sgml Add option -N/--no-sync to pg_checksums 2019-03-23 08:37:36 +09:00
pg_config-ref.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
pg_controldata.sgml Add long options to pg_resetwal and pg_controldata 2018-03-24 21:49:53 -04:00
pg_ctl-ref.sgml Implement "pg_ctl logrotate" command 2018-09-01 19:46:49 +03:00
pg_dump.sgml pg_dump: allow multiple rows per insert 2019-03-07 09:34:17 -03:00
pg_dumpall.sgml Add --exclude-database option to pg_dumpall 2019-03-01 10:47:44 -05:00
pg_isready.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pg_receivewal.sgml Allow group access on PGDATA 2018-04-07 17:45:39 -04:00
pg_recvlogical.sgml Allow group access on PGDATA 2018-04-07 17:45:39 -04:00
pg_resetwal.sgml pg_resetwal: Allow users to change the WAL segment size 2018-03-25 14:58:49 -04:00
pg_restore.sgml Fix description and documentation related to pg_restore --no-comments 2018-06-26 14:57:53 +09:00
pg_rewind.sgml Integrate recovery.conf into postgresql.conf 2018-11-25 16:33:40 +01:00
pg_waldump.sgml doc: Fix minor whitespace issue 2018-11-13 13:51:38 +01:00
pgarchivecleanup.sgml Integrate recovery.conf into postgresql.conf 2018-11-25 16:33:40 +01:00
pgbench.sgml pgbench: Remove \cset 2019-03-25 12:16:07 -03:00
pgtestfsync.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pgtesttiming.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pgupgrade.sgml During pg_upgrade, conditionally skip transfer of FSMs. 2019-03-15 08:25:57 +05:30
postgres-ref.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
postmaster.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
prepare_transaction.sgml Restrict the use of temporary namespace in two-phase transactions 2019-01-18 09:21:44 +09:00
prepare.sgml docs: Only first instance of a PREPARE parameter sets data type 2018-08-09 10:13:15 -04:00
psql-ref.sgml tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
reassign_owned.sgml Doc: clarify that REASSIGN OWNED doesn't handle default privileges. 2019-03-25 17:18:05 -04:00
refresh_materialized_view.sgml Mention ownership requirements for REFRESH MATERIALIZED VIEW in docs 2018-08-17 11:29:15 +09:00
reindex.sgml Restrict access to reindex of shared catalogs for non-privileged users 2018-08-09 09:40:15 +02:00
reindexdb.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
release_savepoint.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
reset.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
revoke.sgml Refactor documentation about privileges to centralize the info. 2018-12-03 11:40:49 -05:00
rollback_prepared.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
rollback_to.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
rollback.sgml Transaction chaining 2019-03-24 11:33:02 +01:00
savepoint.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
security_label.sgml SQL procedures 2017-11-30 11:03:20 -05:00
select_into.sgml Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
select.sgml Allow user control of CTE materialization, and change the default behavior. 2019-02-16 16:11:12 -05:00
set_constraints.sgml Convert SGML IDs to lower case 2017-10-20 19:26:10 -04:00
set_role.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
set_session_auth.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
set_transaction.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
set.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
show.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
start_transaction.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
truncate.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
unlisten.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
update.sgml Fix documentation on partitioning vs. foreign tables 2019-03-10 19:45:29 -03:00
vacuum.sgml Add option SKIP_LOCKED to VACUUM and ANALYZE 2018-10-04 09:00:33 +09:00
vacuumdb.sgml Add --min-xid-age and --min-mxid-age options to vacuumdb 2019-01-31 13:07:56 +09:00
values.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00