postgresql/src/include/catalog
Tom Lane 8f889b1083 Implement UPDATE tab SET (col1,col2,...) = (SELECT ...), ...
This SQL-standard feature allows a sub-SELECT yielding multiple columns
(but only one row) to be used to compute the new values of several columns
to be updated.  While the same results can be had with an independent
sub-SELECT per column, such a workaround can require a great deal of
duplicated computation.

The standard actually says that the source for a multi-column assignment
could be any row-valued expression.  The implementation used here is
tightly tied to our existing sub-SELECT support and can't handle other
cases; the Bison grammar would have some issues with them too.  However,
I don't feel too bad about this since other cases can be converted into
sub-SELECTs.  For instance, "SET (a,b,c) = row_valued_function(x)" could
be written "SET (a,b,c) = (SELECT * FROM row_valued_function(x))".
2014-06-18 13:22:34 -04:00
..
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
binary_upgrade.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
catalog.h Rationalize common/relpath.[hc]. 2014-04-30 17:30:50 -04:00
catversion.h Implement UPDATE tab SET (col1,col2,...) = (SELECT ...), ... 2014-06-18 13:22:34 -04:00
dependency.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
duplicate_oids pgindent run for 9.4 2014-05-06 12:12:18 -04:00
genbki.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
heap.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
index.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
indexing.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
namespace.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
objectaccess.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
objectaddress.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_aggregate.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_am.h Allow opclasses to provide tri-valued GIN consistent functions. 2014-03-12 17:51:30 +02:00
pg_amop.h Add btree and hash opclasses for pg_lsn. 2014-06-04 20:45:56 -04:00
pg_amproc.h Add btree and hash opclasses for pg_lsn. 2014-06-04 20:45:56 -04:00
pg_attrdef.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_attribute.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_auth_members.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_authid.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_cast.h Introduce jsonb, a structured format for storing json. 2014-03-23 16:40:19 -04:00
pg_class.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_collation.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_collation_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_constraint.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_control.h Add defenses against running with a wrong selection of LOBLKSIZE. 2014-06-05 11:31:06 -04:00
pg_conversion.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_conversion_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_database.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_db_role_setting.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_default_acl.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_depend.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_description.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_enum.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_event_trigger.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_extension.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_foreign_data_wrapper.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_foreign_server.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_foreign_table.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_index.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_inherits.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_inherits_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_language.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_largeobject.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_largeobject_metadata.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_namespace.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_opclass.h Add btree and hash opclasses for pg_lsn. 2014-06-04 20:45:56 -04:00
pg_operator.h Add btree and hash opclasses for pg_lsn. 2014-06-04 20:45:56 -04:00
pg_opfamily.h Add btree and hash opclasses for pg_lsn. 2014-06-04 20:45:56 -04:00
pg_pltemplate.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_proc.h Rename lo_create(oid, bytea) to lo_from_bytea(). 2014-06-12 15:39:09 -04:00
pg_proc_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_range.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_rewrite.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_seclabel.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_shdepend.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_shdescription.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_shseclabel.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_statistic.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_tablespace.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_trigger.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_ts_config.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_ts_config_map.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_ts_dict.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_ts_parser.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_ts_template.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
pg_type.h pg_lsn should not be marked typispreferred. 2014-05-28 00:26:46 -04:00
pg_type_fn.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
pg_user_mapping.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
storage.h Update copyright for 2014 2014-01-07 16:05:30 -05:00
storage_xlog.h Change the signature of rm_desc so that it's passed a XLogRecord. 2014-06-14 10:46:48 +03:00
toasting.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
unused_oids Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00