postgresql/src/backend/commands
Andres Freund ad7dbee368 Allow tupleslots to have a fixed tupledesc, use in executor nodes.
The reason for doing so is that it will allow expression evaluation to
optimize based on the underlying tupledesc. In particular it will
allow to JIT tuple deforming together with the expression itself.

For that expression initialization needs to be moved after the
relevant slots are initialized - mostly unproblematic, except in the
case of nodeWorktablescan.c.

After doing so there's no need for ExecAssignResultType() and
ExecAssignResultTypeFromTL() anymore, as all former callers have been
converted to create a slot with a fixed descriptor.

When creating a slot with a fixed descriptor, tts_values/isnull can be
allocated together with the main slot, reducing allocation overhead
and increasing cache density a bit.

Author: Andres Freund
Discussion: https://postgr.es/m/20171206093717.vqdxe5icqttpxs3p@alap3.anarazel.de
2018-02-16 21:17:38 -08:00
..
aggregatecmds.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
amcmds.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
analyze.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
async.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
cluster.c Support parallel btree index builds. 2018-02-02 13:32:44 -05:00
collationcmds.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
comment.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
constraint.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
conversioncmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
copy.c Allow tupleslots to have a fixed tupledesc, use in executor nodes. 2018-02-16 21:17:38 -08:00
createas.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
dbcommands.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
define.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
discard.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
dropcmds.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
event_trigger.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
explain.c Avoid listing the same ResultRelInfo in more than one EState list. 2018-02-08 14:29:05 -05:00
extension.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
foreigncmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
functioncmds.c Avoid premature free of pass-by-reference CALL arguments. 2018-02-10 13:37:12 -05:00
indexcmds.c Support parallel btree index builds. 2018-02-02 13:32:44 -05:00
lockcmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
Makefile Implement multivariate n-distinct coefficients 2017-03-24 14:06:10 -03:00
matview.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
opclasscmds.c Support all SQL:2011 options for window frame clauses. 2018-02-07 00:06:56 -05:00
operatorcmds.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
policy.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
portalcmds.c Remove PortalGetQueryDesc() 2018-01-09 13:47:56 -05:00
prepare.c Update portal-related memory context names and API 2018-01-09 13:47:56 -05:00
proclang.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
publicationcmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
schemacmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
seclabel.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
sequence.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
statscmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
subscriptioncmds.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
tablecmds.c Fix application of identity values in some cases 2018-02-02 14:39:10 -05:00
tablespace.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
trigger.c Allow tupleslots to have a fixed tupledesc, use in executor nodes. 2018-02-16 21:17:38 -08:00
tsearchcmds.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
typecmds.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
user.c Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
vacuum.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
vacuumlazy.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
variable.c Update copyright for 2018 2018-01-02 23:30:12 -05:00
view.c Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00