diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-12-14 00:27:43 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-12-14 00:27:43 +0100 |
commit | b1805d291c3249d346d54d32871fc43b89fb1aff (patch) | |
tree | f673aae0e1264f4ded5e05dae96ac9187a25ddc9 /src/common/DataStores/DB2FileLoader.cpp | |
parent | 9d9e11f8ca8780e2336dd142bbeb15068da4ea72 (diff) |
Core/DataStores: Fixed loading empty db2 files
Diffstat (limited to 'src/common/DataStores/DB2FileLoader.cpp')
-rw-r--r-- | src/common/DataStores/DB2FileLoader.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/common/DataStores/DB2FileLoader.cpp b/src/common/DataStores/DB2FileLoader.cpp index c71e4b5d215..9216389f346 100644 --- a/src/common/DataStores/DB2FileLoader.cpp +++ b/src/common/DataStores/DB2FileLoader.cpp @@ -601,10 +601,14 @@ char* DB2FileLoaderRegularImpl::AutoProduceStrings(char** indexTable, uint32 ind void DB2FileLoaderRegularImpl::AutoProduceRecordCopies(uint32 records, char** indexTable, char* dataTable) { + uint32 recordCopies = GetRecordCopyCount(); + if (!recordCopies) + return; + uint32 recordsize = _loadInfo->Meta->GetRecordSize(); uint32 offset = _header->RecordCount * recordsize; uint32 idFieldOffset = _loadInfo->Meta->HasIndexFieldInData() ? GetFieldOffset(_loadInfo->Meta->GetIndexField()) : 0; - for (uint32 c = 0; c < GetRecordCopyCount(); ++c) + for (uint32 c = 0; c < recordCopies; ++c) { DB2RecordCopy copy = GetRecordCopy(c); if (copy.SourceRowId && copy.SourceRowId < records && copy.NewRowId < records && indexTable[copy.SourceRowId]) @@ -1306,10 +1310,14 @@ char* DB2FileLoaderSparseImpl::AutoProduceStrings(char** indexTable, uint32 inde void DB2FileLoaderSparseImpl::AutoProduceRecordCopies(uint32 records, char** indexTable, char* dataTable) { + uint32 recordCopies = GetRecordCopyCount(); + if (!recordCopies) + return; + uint32 recordsize = _loadInfo->Meta->GetRecordSize(); uint32 offset = _header->RecordCount * recordsize; uint32 idFieldOffset = _loadInfo->Meta->HasIndexFieldInData() ? _loadInfo->Meta->GetIndexFieldOffset() : 0; - for (uint32 c = 0; c < GetRecordCopyCount(); ++c) + for (uint32 c = 0; c < recordCopies; ++c) { DB2RecordCopy copy = GetRecordCopy(c); if (copy.SourceRowId && copy.SourceRowId < records && copy.NewRowId < records && indexTable[copy.SourceRowId]) |