postgresql/src
Tom Lane e524cbdc45 Track typmods in plpgsql expression evaluation and assignment.
The main value of this change is to avoid expensive I/O conversions when
assigning to a variable that has a typmod specification, if the value
to be assigned is already known to have the right typmod.  This is
particularly valuable for arrays with typmod specifications; formerly,
in an assignment to an array element the entire array would invariably
get put through double I/O conversion to check the typmod, to absolutely
no purpose since we'd already properly coerced the new element value.

Extracted from my "expanded arrays" patch; this seems worth committing
separately, whatever becomes of that patch, since it's really an
independent issue.

As long as we're changing the function signatures, take the opportunity
to rationalize the argument lists of exec_assign_value, exec_cast_value,
and exec_simple_cast_value; that is, put the arguments into a saner order,
and get rid of the bizarre choice to pass exec_assign_value's isNull flag
by reference.
2015-02-28 14:34:35 -05:00
..
backend Fix planning of star-schema-style queries. 2015-02-28 12:43:04 -05:00
bin Error when creating names too long for tar format 2015-02-24 13:41:07 -05:00
common Speed up CRC calculation using slicing-by-8 algorithm. 2015-02-10 10:54:40 +02:00
include Redefine MemoryContextReset() as deleting, not resetting, child contexts. 2015-02-27 18:10:04 -05:00
interfaces Remove null-pointer checks that are not needed. 2015-02-25 11:50:28 +01:00
makefiles Revert haphazard pgxs makefile changes 2014-12-04 08:07:59 -05:00
pl Track typmods in plpgsql expression evaluation and assignment. 2015-02-28 14:34:35 -05:00
port Error when creating names too long for tar format 2015-02-24 13:41:07 -05:00
template Remove duplicate specification of -Ae for HP-UX C compiler. 2015-01-13 22:52:11 -05:00
test Fix planning of star-schema-style queries. 2015-02-28 12:43:04 -05:00
timezone Update time zone data files to tzdata release 2015a. 2015-01-30 22:45:44 -05:00
tools Fix Perl coding error in msvc build system 2015-02-18 20:24:30 -05:00
tutorial Update copyright for 2015 2015-01-06 11:43:47 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
Makefile.global.in Fix installcheck case for tap tests 2014-12-24 10:31:36 -05:00
Makefile.shlib Install shared libraries also in bin on cygwin, mingw 2015-01-18 22:36:40 -05:00
nls-global.mk Setup error context callback for transaction lock waits 2014-03-19 15:10:36 -03:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00