diff --git a/src/include/storage/store/compression.h b/src/include/storage/store/compression.h index 3d22502b63..3b0fd6d3bc 100644 --- a/src/include/storage/store/compression.h +++ b/src/include/storage/store/compression.h @@ -115,7 +115,7 @@ class Uncompressed : public CompressionAlg { static inline uint64_t numValues(uint64_t dataSize, const common::LogicalType& logicalType) { auto numBytesPerValue = getDataTypeSizeInChunk(logicalType); - return numBytesPerValue == 0 ? 0 : dataSize / numBytesPerValue; + return numBytesPerValue == 0 ? UINT64_MAX : dataSize / numBytesPerValue; } inline CompressionMetadata getCompressionMetadata( diff --git a/src/include/storage/store/var_list_column_chunk.h b/src/include/storage/store/var_list_column_chunk.h index 45d969b1ba..d59d38a79e 100644 --- a/src/include/storage/store/var_list_column_chunk.h +++ b/src/include/storage/store/var_list_column_chunk.h @@ -47,8 +47,11 @@ class VarListColumnChunk : public ColumnChunk { inline void resizeDataColumnChunk(uint64_t numBytesForBuffer) { // TODO(bmwinger): This won't work properly for booleans (will be one eighth as many values // as could fit) - varListDataColumnChunk.resizeBuffer( - numBytesForBuffer / varListDataColumnChunk.dataColumnChunk->getNumBytesPerValue()); + auto numValues = + varListDataColumnChunk.dataColumnChunk->getNumBytesPerValue() == 0 ? + 0 : + numBytesForBuffer / varListDataColumnChunk.dataColumnChunk->getNumBytesPerValue(); + varListDataColumnChunk.resizeBuffer(numValues); } private: diff --git a/src/storage/store/var_list_node_column.cpp b/src/storage/store/var_list_node_column.cpp index 2709b7c659..2fe6250aaa 100644 --- a/src/storage/store/var_list_node_column.cpp +++ b/src/storage/store/var_list_node_column.cpp @@ -54,7 +54,8 @@ void VarListNodeColumn::scan( NodeColumn::scan(nodeGroupIdx, columnChunk); auto metadata = metadataDA->get(nodeGroupIdx, transaction::TransactionType::READ_ONLY); varListColumnChunk->setNumValues(metadata.numValues); - varListColumnChunk->resizeDataColumnChunk(metadata.numPages * PageSizeClass::PAGE_4KB); + varListColumnChunk->resizeDataColumnChunk( + metadata.numPages * BufferPoolConstants::PAGE_4KB_SIZE); dataNodeColumn->scan(nodeGroupIdx, varListColumnChunk->getDataColumnChunk()); } } diff --git a/test/test_files/tinysnb/update_node/create.test b/test/test_files/tinysnb/update_node/create.test index 163fe1c6cc..7e1362389b 100644 --- a/test/test_files/tinysnb/update_node/create.test +++ b/test/test_files/tinysnb/update_node/create.test @@ -176,3 +176,15 @@ -STATEMENT MATCH (a:emptyTable) RETURN a.* ---- 1 2|[1,5,6] + +-CASE CreateMap +-STATEMENT CREATE NODE TABLE test(name STRING, m MAP(STRING,STRING), PRIMARY KEY(name)); +---- ok +-STATEMENT CREATE (t:test {name:"foo"}); +---- ok +-STATEMENT CREATE (t:test {name:"foobar"}); +---- ok +-STATEMENT MATCH (t:test) RETURN t.*; +---- 2 +foo| +foobar|