postgresql/src/backend/utils/adt
Tom Lane 472d3935a2 Rethink representation of index clauses' mapping to index columns.
In commit e2c2c2e8b1 I made use of nested
list structures to show which clauses went with which index columns, but
on reflection that's a data structure that only an old-line Lisp hacker
could love.  Worse, it adds unnecessary complication to the many places
that don't much care which clauses go with which index columns.  Revert
to the previous arrangement of flat lists of clauses, and instead add a
parallel integer list of column numbers.  The places that care about the
pairing can chase both lists with forboth(), while the places that don't
care just examine one list the same as before.

The only real downside to this is that there are now two more lists that
need to be passed to amcostestimate functions in case they care about
column matching (which btcostestimate does, so not passing the info is not
an option).  Rather than deal with 11-argument amcostestimate functions,
pass just the IndexPath and expect the functions to extract fields from it.
That gets us down to 7 arguments which is better than 11, and it seems
more future-proof against likely additions to the information we keep
about an index path.
2011-12-24 19:03:21 -05:00
..
Makefile Support range data types. 2011-11-03 13:42:15 +02:00
acl.c Add support for privileges on types 2011-12-20 00:05:19 +02:00
array_userfuncs.c Fix array- and path-creating functions to ensure padding bytes are zeroes. 2011-04-27 13:58:36 -04:00
arrayfuncs.c Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
arrayutils.c Use array_contains_nulls instead of ARR_HASNULL on user-supplied arrays. 2011-01-09 13:09:07 -05:00
ascii.c Code review for pgstat_get_crashed_backend_activity patch. 2011-10-21 16:36:04 -04:00
bool.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
cash.c Support more locale-specific formatting options in cash_out(). 2011-10-30 15:02:58 -04:00
char.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
date.c Create a "sort support" interface API for faster sorting. 2011-12-07 00:19:39 -05:00
datetime.c Fix parsing of time string followed by yesterday/today/tomorrow. 2011-08-30 11:38:42 -04:00
datum.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
dbsize.c Rewrite pg_size_pretty() to avoid compiler bug. 2011-04-29 01:45:58 -04:00
domains.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
encode.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
enum.c Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
float.c Create a "sort support" interface API for faster sorting. 2011-12-07 00:19:39 -05:00
format_type.c Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking printf type functions. 2011-04-28 10:56:14 -04:00
formatting.c Miscellaneous cleanup to silence compiler warnings seen on Mingw. 2011-12-10 18:15:15 -05:00
genfile.c Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
geo_ops.c Fix array- and path-creating functions to ensure padding bytes are zeroes. 2011-04-27 13:58:36 -04:00
geo_selfuncs.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
inet_cidr_ntop.c When reporting the server as not responding, if the hostname was 2010-11-24 17:04:19 -05:00
inet_net_pton.c Add C comment about needed include. 2011-09-01 12:53:45 -04:00
int.c Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
int8.c Add overflow checks to int4 and int8 versions of generate_series(). 2011-06-17 14:28:45 -04:00
like.c Pass collations to functions in FunctionCallInfoData, not FmgrInfo. 2011-04-12 19:19:24 -04:00
like_match.c Fix ILIKE to honor collation when working in single-byte encodings. 2011-04-09 17:12:39 -04:00
lockfuncs.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
mac.c Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
misc.c Fix corner cases in readlink() usage. 2011-12-07 13:34:13 -05:00
nabstime.c Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
name.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
network.c Revert the behavior of inet/cidr functions to not unpack the arguments. 2011-12-12 10:10:53 +02:00
numeric.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
numutils.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
oid.c Pass collations to functions in FunctionCallInfoData, not FmgrInfo. 2011-04-12 19:19:24 -04:00
oracle_compat.c Per-column collation support 2011-02-08 23:04:18 +02:00
pg_locale.c Suppress "unused function" warning when not HAVE_LOCALE_T. 2011-09-20 17:47:21 -04:00
pg_lzcompress.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pgstatfuncs.c Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
pseudotypes.c Support range data types. 2011-11-03 13:42:15 +02:00
quote.c Add PL/Python functions for quoting strings 2011-02-22 23:41:23 +02:00
rangetypes.c Improve GiST range-contained-by searches by adding a flag for empty ranges. 2011-11-27 16:51:29 -05:00
rangetypes_gist.c Improve GiST range-contained-by searches by adding a flag for empty ranges. 2011-11-27 16:51:29 -05:00
regexp.c Clean up the #include mess a little. 2011-09-04 01:13:16 -04:00
regproc.c Improve table locking behavior in the face of current DDL. 2011-11-30 10:27:00 -05:00
ri_triggers.c Improve and simplify CREATE EXTENSION's management of GUC variables. 2011-10-05 20:44:16 -04:00
rowtypes.c Pass collations to functions in FunctionCallInfoData, not FmgrInfo. 2011-04-12 19:19:24 -04:00
ruleutils.c Improve table locking behavior in the face of current DDL. 2011-11-30 10:27:00 -05:00
selfuncs.c Rethink representation of index clauses' mapping to index columns. 2011-12-24 19:03:21 -05:00
tid.c Rearrange the implementation of index-only scans. 2011-10-11 14:21:30 -04:00
timestamp.c Create a "sort support" interface API for faster sorting. 2011-12-07 00:19:39 -05:00
trigfuncs.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsginidx.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
tsgistidx.c Remove many -Wcast-qual warnings 2011-09-11 21:54:32 +03:00
tsquery.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsquery_cleanup.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsquery_gist.c Remove many -Wcast-qual warnings 2011-09-11 21:54:32 +03:00
tsquery_op.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsquery_rewrite.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsquery_util.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsrank.c Remove many -Wcast-qual warnings 2011-09-11 21:54:32 +03:00
tsvector.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsvector_op.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
tsvector_parser.c Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
txid.c Add C comment that txid_current() assigns an XID if one is not already 2011-07-11 20:33:07 -04:00
uuid.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
varbit.c pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
varchar.c Add notion of a "transform function" that can simplify function calls. 2011-06-21 22:21:24 -04:00
varlena.c Add bytea_agg, parallel to string_agg. 2011-12-23 08:40:25 -05:00
version.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
windowfuncs.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
xid.c Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
xml.c Remove many -Wcast-qual warnings 2011-09-11 21:54:32 +03:00