postgresql/src/include/catalog
Tom Lane 7fbb39a967 Disallow partition key expressions that return pseudo-types.
This wasn't checked originally, but it should have been, because
in general pseudo-types can't be stored to and retrieved from disk.
Notably, partition bound values of type "record" would not be
interpretable by another session.

In v12 and HEAD, add another flag to CheckAttributeType's repertoire
so that it can produce a specific error message for this case.  That's
infeasible in older branches without an ABI break, so fall back to
a slightly-less-nicely-worded error message in v10 and v11.

Problem noted by Amit Langote, though this patch is not his initial
solution.  Back-patch to v10 where partitioning was introduced.

Discussion: https://postgr.es/m/CA+HiwqFUzjfj9HEsJtYWcr1SgQ_=iCAvQ=O2Sx6aQxoDu4OiHw@mail.gmail.com
2019-12-23 12:53:13 -05:00
..
.gitignore Replace our traditional initial-catalog-data format with a better design. 2018-04-08 13:17:27 -04:00
binary_upgrade.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
catalog.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
catversion.h Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
dependency.h Install dependencies to prevent dropping partition key columns. 2019-07-22 14:55:23 -04:00
duplicate_oids Update copyright for 2019 2019-01-02 12:44:25 -05:00
genbki.h Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
heap.h Disallow partition key expressions that return pseudo-types. 2019-12-23 12:53:13 -05:00
index.h Fix misbehavior with expression indexes on ON COMMIT DELETE ROWS tables. 2019-12-01 13:09:26 -05:00
indexing.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
Makefile Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
namespace.h Require the schema qualification in pg_temp.type_name(arg). 2019-08-05 07:48:45 -07:00
objectaccess.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
objectaddress.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
opfam_internal.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
partition.h Fix more typos and inconsistencies in the tree 2019-06-17 16:13:16 +09:00
pg_aggregate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_aggregate.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_am.dat tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_am.h tableam: introduce table AM infrastructure. 2019-03-06 09:54:38 -08:00
pg_amop.dat GIN support for @@ and @? jsonpath operators 2019-04-01 18:08:52 +03:00
pg_amop.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_amproc.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_attrdef.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_attribute.h Generated columns 2019-03-30 08:15:57 +01:00
pg_auth_members.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_authid.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_cast.dat Add support for multivariate MCV lists 2019-03-27 18:32:18 +01:00
pg_cast.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_class.dat Generated columns 2019-03-30 08:15:57 +01:00
pg_class.h Add BKI_DEFAULT to pg_class.relrewrite 2019-03-14 21:25:39 +01:00
pg_collation.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_collation.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_constraint.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_control.h Add basic infrastructure for 64 bit transaction IDs. 2019-03-28 18:12:20 +13:00
pg_conversion.dat Move the built-in conversions into the initial catalog data. 2019-01-03 19:47:53 -05:00
pg_conversion.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_database.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_database.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_db_role_setting.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_default_acl.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_depend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_description.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_enum.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_event_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_extension.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_data_wrapper.h Fix more typos and inconsistencies in the tree 2019-06-17 16:13:16 +09:00
pg_foreign_server.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_foreign_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_index.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_inherits.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_init_privs.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_language.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_largeobject_metadata.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_namespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opclass.dat Fix up handling of nondeterministic collations with pattern_ops opclasses. 2019-09-21 16:29:17 -04:00
pg_opclass.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_operator.dat Remove ambiguity for jsonb_path_match() and jsonb_path_exists() 2019-03-20 10:30:56 +03:00
pg_operator.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_opfamily.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_opfamily.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_partitioned_table.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_pltemplate.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_policy.h Initial pgindent run for v12. 2019-05-22 12:55:34 -04:00
pg_proc.dat Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
pg_proc.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_publication.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_publication_rel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_range.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_replication_origin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_rewrite.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_seclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_sequence.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdepend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shdescription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_shseclabel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_statistic.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_statistic_ext.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
pg_statistic_ext_data.h pgindent run prior to branching v12. 2019-07-01 12:37:52 -04:00
pg_subscription.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_subscription_rel.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_tablespace.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_tablespace.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_transform.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_trigger.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_config.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config_map.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_config_map.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.dat Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_dict.h Remove remaining hard-wired OID references in the initial catalog data. 2019-03-12 12:30:35 -04:00
pg_ts_parser.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_parser.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.dat Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_ts_template.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
pg_type.dat Do pre-release housekeeping on catalog data, and fix jsonpath send/recv. 2019-04-28 17:16:50 -04:00
pg_type.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
pg_user_mapping.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
reformat_dat_file.pl Minor improvements for reformat_dat_file.pl. 2019-03-08 11:48:49 -05:00
renumber_oids.pl Create a script that can renumber manually-assigned OIDs. 2019-03-12 10:50:48 -04:00
storage.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
storage_xlog.h Fix several recently introduced issues around handling new relation forks. 2019-04-29 19:28:05 -07:00
toasting.h Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
unused_oids Initial pgperltidy run for v12. 2019-05-22 13:36:19 -04:00