aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/sort/sharedtuplestore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/sort/sharedtuplestore.c')
-rw-r--r--src/backend/utils/sort/sharedtuplestore.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/backend/utils/sort/sharedtuplestore.c b/src/backend/utils/sort/sharedtuplestore.c
index c3ab494a45e..6537a4303b1 100644
--- a/src/backend/utils/sort/sharedtuplestore.c
+++ b/src/backend/utils/sort/sharedtuplestore.c
@@ -196,14 +196,9 @@ static void
sts_flush_chunk(SharedTuplestoreAccessor *accessor)
{
size_t size;
- size_t written;
size = STS_CHUNK_PAGES * BLCKSZ;
- written = BufFileWrite(accessor->write_file, accessor->write_chunk, size);
- if (written != size)
- ereport(ERROR,
- (errcode_for_file_access(),
- errmsg("could not write to temporary file: %m")));
+ BufFileWrite(accessor->write_file, accessor->write_chunk, size);
memset(accessor->write_chunk, 0, size);
accessor->write_pointer = &accessor->write_chunk->data[0];
accessor->sts->participants[accessor->participant].npages +=
@@ -555,6 +550,7 @@ sts_parallel_scan_next(SharedTuplestoreAccessor *accessor, void *meta_data)
if (!eof)
{
SharedTuplestoreChunk chunk_header;
+ size_t nread;
/* Make sure we have the file open. */
if (accessor->read_file == NULL)
@@ -570,14 +566,15 @@ sts_parallel_scan_next(SharedTuplestoreAccessor *accessor, void *meta_data)
if (BufFileSeekBlock(accessor->read_file, read_page) != 0)
ereport(ERROR,
(errcode_for_file_access(),
- errmsg("could not read from shared tuplestore temporary file"),
- errdetail_internal("Could not seek to next block.")));
- if (BufFileRead(accessor->read_file, &chunk_header,
- STS_CHUNK_HEADER_SIZE) != STS_CHUNK_HEADER_SIZE)
+ errmsg("could not seek block %u in shared tuplestore temporary file",
+ read_page)));
+ nread = BufFileRead(accessor->read_file, &chunk_header,
+ STS_CHUNK_HEADER_SIZE);
+ if (nread != STS_CHUNK_HEADER_SIZE)
ereport(ERROR,
(errcode_for_file_access(),
- errmsg("could not read from shared tuplestore temporary file"),
- errdetail_internal("Short read while reading chunk header.")));
+ errmsg("could not read from shared tuplestore temporary file: read only %zu of %zu bytes",
+ nread, STS_CHUNK_HEADER_SIZE)));
/*
* If this is an overflow chunk, we skip it and any following