You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2022/05/22 14:51:31 UTC
[incubator-doris] 06/13: [Bug][Vectorized] fix schema change add varchar type column default value get wrong result (#9523)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch dev-1.0.1
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
commit 8490c3890662ff9d108533446138cec2e4050857
Author: Pxl <px...@qq.com>
AuthorDate: Thu May 19 23:38:57 2022 +0800
[Bug][Vectorized] fix schema change add varchar type column default value get wrong result (#9523)
---
be/src/olap/rowset/segment_v2/column_reader.cpp | 14 +++++++++++---
be/src/olap/rowset/segment_v2/column_reader.h | 2 +-
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp b/be/src/olap/rowset/segment_v2/column_reader.cpp
index 982de671d7..63c4f0d36f 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.cpp
+++ b/be/src/olap/rowset/segment_v2/column_reader.cpp
@@ -346,10 +346,10 @@ Status ColumnReader::new_iterator(ColumnIterator** iterator) {
auto type = (FieldType)_meta.type();
switch (type) {
case FieldType::OLAP_FIELD_TYPE_ARRAY: {
- ColumnIterator* item_iterator;
+ ColumnIterator* item_iterator = nullptr;
RETURN_IF_ERROR(_sub_readers[0]->new_iterator(&item_iterator));
- ColumnIterator* offset_iterator;
+ ColumnIterator* offset_iterator = nullptr;
RETURN_IF_ERROR(_sub_readers[1]->new_iterator(&offset_iterator));
ColumnIterator* null_iterator = nullptr;
@@ -485,7 +485,7 @@ Status FileColumnIterator::seek_to_page_start() {
return seek_to_ordinal(_page.first_ordinal);
}
-void FileColumnIterator::_seek_to_pos_in_page(ParsedPage* page, ordinal_t offset_in_page) {
+void FileColumnIterator::_seek_to_pos_in_page(ParsedPage* page, ordinal_t offset_in_page) const {
if (page->offset_in_page == offset_in_page) {
// fast path, do nothing
return;
@@ -819,6 +819,14 @@ void DefaultValueColumnIterator::insert_default_data(vectorized::MutableColumnPt
insert_column_data();
break;
}
+ case OLAP_FIELD_TYPE_STRING:
+ case OLAP_FIELD_TYPE_VARCHAR:
+ case OLAP_FIELD_TYPE_CHAR: {
+ data_ptr = ((Slice*)_mem_value)->data;
+ data_len = ((Slice*)_mem_value)->size;
+ insert_column_data();
+ break;
+ }
default: {
data_ptr = (char *) _mem_value;
data_len = _type_size;
diff --git a/be/src/olap/rowset/segment_v2/column_reader.h b/be/src/olap/rowset/segment_v2/column_reader.h
index 99206bd53a..76c41ae991 100644
--- a/be/src/olap/rowset/segment_v2/column_reader.h
+++ b/be/src/olap/rowset/segment_v2/column_reader.h
@@ -278,7 +278,7 @@ public:
bool is_nullable() { return _reader->is_nullable(); }
private:
- void _seek_to_pos_in_page(ParsedPage* page, ordinal_t offset_in_page);
+ void _seek_to_pos_in_page(ParsedPage* page, ordinal_t offset_in_page) const;
Status _load_next_page(bool* eos);
Status _read_data_page(const OrdinalPageIndexIterator& iter);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org