postgresql/src/backend
Michael Paquier 6cb3372411 Address set of issues with errno handling
System calls mixed up in error code paths are causing two issues which
several code paths have not correctly handled:
1) For write() calls, sometimes the system may return less bytes than
what has been written without errno being set.  Some paths were careful
enough to consider that case, and assumed that errno should be set to
ENOSPC, other calls missed that.
2) errno generated by a system call is overwritten by other system calls
which may succeed once an error code path is taken, causing what is
reported to the user to be incorrect.

This patch uses the brute-force approach of correcting all those code
paths.  Some refactoring could happen in the future, but this is let as
future work, which is not targeted for back-branches anyway.

Author: Michael Paquier
Reviewed-by: Ashutosh Sharma
Discussion: https://postgr.es/m/20180622061535.GD5215@paquier.xyz
2018-06-25 11:19:05 +09:00
..
access Address set of issues with errno handling 2018-06-25 11:19:05 +09:00
bootstrap Message wording and pluralization improvements 2018-05-17 23:05:27 -04:00
catalog Allow for pg_upgrade of attributes with missing values 2018-06-22 08:42:36 -04:00
commands When index recurses to a partition, map columns numbers 2018-06-22 16:45:48 -04:00
executor Fix some ill-chosen names for globally-visible partition support functions. 2018-06-13 13:18:02 -04:00
foreign Remove bogus "extern" annotations on function definitions. 2018-02-19 12:07:44 -05:00
jit Fix typo in JIT README. 2018-06-09 09:33:53 -07:00
lib Add missing files to src/backend/lib/README. 2018-05-22 13:25:28 +03:00
libpq Add missing serial commas 2018-06-07 23:37:09 -04:00
main Update copyright for 2018 2018-01-02 23:30:12 -05:00
nodes Assorted cosmetic cleanup of run-time-partition-pruning code. 2018-06-10 18:24:34 -04:00
optimizer Avoid generating bogus paths with partitionwise aggregate. 2018-06-22 09:20:19 -04:00
parser Consider syntactic form when disambiguating function vs column reference. 2018-06-18 11:39:33 -04:00
partitioning Consistently use the term 'partitioned rel' in partprune comments 2018-06-20 11:43:01 -04:00
po Translation updates 2018-05-21 12:29:52 -04:00
port Remove investigative code for can't-reattach-to-shared-memory errors. 2018-05-01 13:06:31 -04:00
postmaster Further improve code for probing the availability of ARM CRC instructions. 2018-05-03 11:32:57 -04:00
regex Clean up warnings from -Wimplicit-fallthrough. 2018-05-01 19:35:08 -04:00
replication Address set of issues with errno handling 2018-06-25 11:19:05 +09:00
rewrite Simplify view-expansion code in rewriteHandler.c. 2018-04-14 21:01:03 -04:00
snowball Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
statistics Fix bogus code for extracting extended-statistics data from syscache. 2018-05-02 12:23:00 -04:00
storage Remove AELs from subxids correctly on standby 2018-06-16 14:03:29 +01:00
tcop Don't allow partitioned index on foreign-table partitions 2018-05-14 13:23:07 -04:00
tsearch Post-feature-freeze pgindent run. 2018-04-26 14:47:16 -04:00
utils Allow for pg_upgrade of attributes with missing values 2018-06-22 08:42:36 -04:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
nls.mk