postgresql/src/test/regress/sql
Tom Lane 784e762e88 Support multi-argument UNNEST(), and TABLE() syntax for multiple functions.
This patch adds the ability to write TABLE( function1(), function2(), ...)
as a single FROM-clause entry.  The result is the concatenation of the
first row from each function, followed by the second row from each
function, etc; with NULLs inserted if any function produces fewer rows than
others.  This is believed to be a much more useful behavior than what
Postgres currently does with multiple SRFs in a SELECT list.

This syntax also provides a reasonable way to combine use of column
definition lists with WITH ORDINALITY: put the column definition list
inside TABLE(), where it's clear that it doesn't control the ordinality
column as well.

Also implement SQL-compliant multiple-argument UNNEST(), by turning
UNNEST(a,b,c) into TABLE(unnest(a), unnest(b), unnest(c)).

The SQL standard specifies TABLE() with only a single function, not
multiple functions, and it seems to require an implicit UNNEST() which is
not what this patch does.  There may be something wrong with that reading
of the spec, though, because if it's right then the spec's TABLE() is just
a pointless alternative spelling of UNNEST().  After further review of
that, we might choose to adopt a different syntax for what this patch does,
but in any case this functionality seems clearly worthwhile.

Andrew Gierth, reviewed by Zoltán Böszörményi and Heikki Linnakangas, and
significantly revised by me
2013-11-21 19:37:20 -05: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 Improve performance of numeric sum(), avg(), stddev(), variance(), etc. 2013-11-16 18:46:34 -05:00
alter_generic.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
alter_table.sql Prevent display of dropped columns in row constraint violation messages. 2013-11-07 14:41:36 -05:00
arrays.sql Don't emit non-canonical empty arrays in array_remove(). 2013-05-31 21:50:59 -04:00
async.sql Regression tests for LISTEN/NOTIFY/UNLISTEN/pg_notify. 2013-07-03 11:07:08 -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 Clean up references to SQL92 2013-04-20 11:04:41 -04:00
box.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
btree_index.sql Fix breakage of bitmap scan plan creation for special index operators such 2008-11-20 19:52:54 +00:00
case.sql Clean up references to SQL92 2013-04-20 11:04:41 -04: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 Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
collate.linux.utf8.sql Support range data types. 2011-11-03 13:42:15 +02:00
collate.sql Revert "Hopefully-portable regression tests for CREATE/ALTER/DROP COLLATION." 2013-07-03 13:27:50 -04:00
combocid.sql Avoid incrementing the CommandCounter when CommandCounterIncrement is called 2007-11-30 21:22:54 +00:00
comments.sql Implement nested block comments in the backend and in psql. 2000-07-14 15:43:57 +00:00
conversion.sql Support hex-string input and output for type BYTEA. 2009-08-04 16:08:37 +00:00
copy2.sql Issue ERROR if FREEZE mode can't be honored by COPY 2013-01-26 13:33:24 -05:00
copyselect.sql Have \copy go through SendQuery 2012-01-25 18:22:00 -03:00
create_aggregate.sql Allow aggregates to provide estimates of their transition state data size. 2013-11-16 16:03:40 -05:00
create_cast.sql Add test case for CREATE CAST. 2008-10-31 09:17:17 +00:00
create_function_3.sql Remove whitespace from end of lines 2012-05-15 22:19:41 +03:00
create_index.sql Add a regression test case for \d on an index. 2013-11-14 10:35:15 -05:00
create_misc.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
create_operator.sql Additional regression tests for CREATE OPERATOR. 2013-07-03 10:48:26 -04:00
create_table.sql Revert error message on GLOBAL/LOCAL pending further discussion 2012-06-10 08:41:01 +01:00
create_table_like.sql Allow CREATE TABLE (LIKE ...) from composite type 2012-03-03 16:03:05 +02:00
create_type.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
create_view.sql Further hacking on ruleutils' new column-alias-assignment code. 2013-07-23 17:55:04 -04:00
date.sql Add make_date() and make_time() functions. 2013-11-17 15:06:50 -05:00
delete.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
dependency.sql Create a separate grantable privilege for TRUNCATE, rather than having it be 2008-09-08 00:47:41 +00:00
domain.sql Add support for renaming domain constraints 2012-04-03 08:11:51 +03:00
drop_if_exists.sql Remove a few of the new DROP-IF-EXISTS regression tests. 2011-10-19 23:38:06 -04:00
enum.sql Allow adding values to an enum type created in the current transaction. 2012-12-01 14:27:30 -05:00
errors.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
event_trigger.sql Add sql_drop event for event triggers 2013-03-28 13:05:48 -03:00
float4.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
float8.sql Revert "Add some regression test cases for denormalized float8 input." 2012-02-04 15:52:09 -05:00
foreign_data.sql Allow default expressions to be attached to columns of foreign tables. 2013-03-12 17:37:07 -04:00
foreign_key.sql ALTER TABLE ... ALTER CONSTRAINT for FKs 2013-06-29 00:27:30 +01: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 Revive line type 2013-10-09 22:34:38 -04:00
guc.sql Don't fail for bad GUCs in CREATE FUNCTION with check_function_bodies off. 2013-09-03 18:32:20 -04:00
hash_index.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
horology.sql Fix some odd behaviors when using a SQL-style simple GMT offset timezone. 2013-11-01 12:13:18 -04:00
hs_primary_extremes.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
hs_primary_setup.sql Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
hs_standby_allowed.sql Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00: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 Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
indirect_toast.sql Add support for multiple kinds of external toast datums. 2013-07-02 13:38:55 -04:00
inet.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
inherit.sql Fix generation of MergeAppend plans for optimized min/max on expressions. 2013-11-07 13:14:14 -05:00
insert.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
int2.sql Improve handling of INT_MIN / -1 and related cases. 2012-11-19 12:24:25 -05:00
int4.sql Improve handling of INT_MIN / -1 and related cases. 2012-11-19 12:24:25 -05:00
int8.sql Improve handling of INT_MIN / -1 and related cases. 2012-11-19 12:24:25 -05:00
interval.sql Fix bugs with parsing signed hh:mm and hh:mm:ss fields in interval input. 2012-08-03 17:40:43 -04:00
join.sql Compute correct em_nullable_relids in get_eclass_for_sort_expr(). 2013-11-15 16:46:18 -05:00
json.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
limit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
line.sql Revert "Tweak "line" test to avoid negative zeros on some platforms" 2013-10-25 15:50:31 -04:00
lock.sql Regression tests for LOCK TABLE. 2013-07-15 12:30:41 -04: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 Add bitwise AND, OR, and NOT operators for macaddr data type. 2012-01-19 15:25:14 -05:00
matview.sql Fix breakage of MV column name list usage. 2013-11-04 14:31:07 -06:00
money.sql Add casts from int4 and int8 to numeric. 2011-04-05 09:35:43 -04:00
name.sql Add a "USING" clause to DELETE, which is equivalent to the FROM clause 2005-04-07 01:51:41 +00:00
namespace.sql Support CREATE SCHEMA IF NOT EXISTS. 2012-10-03 19:47:11 -04:00
numeric.sql Fix corner case bug in numeric to_char(). 2011-09-07 17:07:20 -04:00
numeric_big.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
numerology.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
oid.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
oidjoins.sql Get rid of pg_class.reltoastidxid. 2013-07-04 03:24:09 +09:00
opr_sanity.sql Allow aggregates to provide estimates of their transition state data size. 2013-11-16 16:03:40 -05:00
path.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
plancache.sql Change plan caching to honor, not resist, changes in search_path. 2013-01-25 14:14:41 -05:00
plpgsql.sql Prevent leakage of cached plans and execution trees in plpgsql DO blocks. 2013-11-15 13:52:03 -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 Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
polymorphism.sql Fix getTypeIOParam to support type record[]. 2011-12-01 12:44:16 -05:00
portals.sql Fix crash in error report of invalid tuple lock 2013-08-02 13:18:37 -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 Fix a bug with SSI and prepared transactions: 2011-07-07 18:12:15 +03:00
privileges.sql Better fix for permissions tests in excluded subqueries. 2013-05-08 16:59:58 -04:00
psql.sql psql: Make \pset without arguments show all settings. 2013-10-03 15:18:02 -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 Support multi-argument UNNEST(), and TABLE() syntax for multiple functions. 2013-11-21 19:37:20 -05:00
rangetypes.sql Fix "element <@ range" cost estimation. 2013-03-21 11:21:51 +02:00
regex.sql Fix regex match failures for backrefs combined with non-greedy quantifiers. 2013-07-18 21:22:37 -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 Add the notion of REPLICA IDENTITY for a table. 2013-11-08 12:30:43 -05:00
returning.sql Apply a simple solution to the problem of making INSERT/UPDATE/DELETE 2006-09-02 17:06:52 +00:00
rowtypes.sql Remove unnecessary restrictions about RowExprs in transformAExprIn(). 2013-06-09 18:39:20 -04:00
rules.sql Use unaligned output in selected regression queries to reduce diff noise. 2013-10-26 11:24:04 -04:00
sanity_check.sql Use unaligned output in selected regression queries to reduce diff noise. 2013-10-26 11:24:04 -04:00
select.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
select_distinct.sql Alter some gratuitous uses of "ANSI" when "SQL standard" might have been 2009-07-11 21:15:32 +00: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 Restructure SELECT INTO's parsetree representation into CreateTableAsStmt. 2012-03-19 21:38:12 -04:00
select_views.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
sequence.sql Make DISCARD SEQUENCES also discard the last used sequence. 2013-10-07 15:55:56 -04:00
stats.sql Prevent index-only scans in stats regression test. 2011-10-08 23:45:58 -04:00
strings.sql Fix regexp_matches() handling of zero-length matches. 2013-07-31 11:31:22 -04:00
subselect.sql Make contain_volatile_functions/contain_mutable_functions look into SubLinks. 2013-11-08 11:36:57 -05:00
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
time.sql Please find attached two patches for documentation and regression tests 2006-07-06 01:46:38 +00:00
timestamp.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
timestamptz.sql Allow 5+ digit years for non-ISO timestamp/date strings, where appropriate 2013-10-16 13:22:55 -04: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 Run a portal's cleanup hook immediately when pushing it to FAILED state. 2012-02-15 16:19:01 -05:00
triggers.sql Support automatically-updatable views. 2012-12-08 18:26:21 -05:00
truncate.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
tsdicts.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
tsearch.sql Fix gincostestimate to handle ScalarArrayOpExpr reasonably. 2011-12-20 19:57:34 -05:00
tstypes.sql Extend GIN to support partial-match searches, and extend tsquery to support 2008-05-16 16:31:02 +00:00
txid.sql Migrate the former contrib/txid module into core. This will make it easier 2007-10-13 23:06:28 +00:00
type_sanity.sql Fix CVE-2013-0255 properly. 2013-02-13 16:20:01 -05:00
typed_table.sql Only allow typed tables to hang off composite types, not e.g. tables. 2011-04-18 10:19:46 -04:00
union.sql Fix crash in error report of invalid tuple lock 2013-08-02 13:18:37 -04:00
updatable_views.sql Allow only some columns of a view to be auto-updateable. 2013-10-18 10:35:36 -04:00
update.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Remove old-style VACUUM FULL (which was known for a little while as 2010-02-08 04:33:55 +00:00
varchar.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
window.sql Support default arguments and named-argument notation for window functions. 2013-11-06 13:33:09 -05:00
with.sql Add CREATE RECURSIVE VIEW syntax 2013-01-31 22:31:58 -05: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 Prevent access to external files/URLs via XML entity references. 2012-08-14 18:31:16 -04:00
xmlmap.sql Add regression tests for XML mapping of domains 2013-03-13 22:42:57 -04:00