diff --git a/be/src/http/action/debug_point_action.cpp b/be/src/http/action/debug_point_action.cpp index 04aa38efaa4b74..babea96268a20e 100644 --- a/be/src/http/action/debug_point_action.cpp +++ b/be/src/http/action/debug_point_action.cpp @@ -35,7 +35,6 @@ void BaseDebugPointAction::handle(HttpRequest* req) { "Disable debug points. please check config::enable_debug_points"); } std::string result = status.to_json(); - LOG(INFO) << "handle request result:" << result; if (status.ok()) { HttpChannel::send_reply(req, HttpStatus::OK, result); } else { diff --git a/be/src/olap/iterators.h b/be/src/olap/iterators.h index 2e2f3ec047e327..03c821e3c03935 100644 --- a/be/src/olap/iterators.h +++ b/be/src/olap/iterators.h @@ -46,7 +46,6 @@ struct IteratorRowRef; namespace segment_v2 { struct SubstreamIterator; } - class StorageReadOptions { public: struct KeyRange { @@ -143,6 +142,9 @@ class StorageReadOptions { std::map vir_cid_to_idx_in_block; std::map vir_col_idx_to_type; + std::map all_access_paths; + std::map predicate_access_paths; + std::shared_ptr score_runtime; CollectionStatisticsPtr collection_statistics; diff --git a/be/src/olap/rowset/beta_rowset_reader.cpp b/be/src/olap/rowset/beta_rowset_reader.cpp index c02b111d59f2a4..fe6d2729057ef9 100644 --- a/be/src/olap/rowset/beta_rowset_reader.cpp +++ b/be/src/olap/rowset/beta_rowset_reader.cpp @@ -103,6 +103,10 @@ Status BetaRowsetReader::get_segment_iterators(RowsetReaderContext* read_context _read_options.remaining_conjunct_roots = _read_context->remaining_conjunct_roots; _read_options.common_expr_ctxs_push_down = _read_context->common_expr_ctxs_push_down; _read_options.virtual_column_exprs = _read_context->virtual_column_exprs; + + _read_options.all_access_paths = _read_context->all_access_paths; + _read_options.predicate_access_paths = _read_context->predicate_access_paths; + _read_options.ann_topn_runtime = _read_context->ann_topn_runtime; _read_options.vir_cid_to_idx_in_block = _read_context->vir_cid_to_idx_in_block; _read_options.vir_col_idx_to_type = _read_context->vir_col_idx_to_type; diff --git a/be/src/olap/rowset/rowset_reader_context.h b/be/src/olap/rowset/rowset_reader_context.h index 951679f413b883..fffa16d0f5cb3d 100644 --- a/be/src/olap/rowset/rowset_reader_context.h +++ b/be/src/olap/rowset/rowset_reader_context.h @@ -18,6 +18,8 @@ #ifndef DORIS_BE_SRC_OLAP_ROWSET_ROWSET_READER_CONTEXT_H #define DORIS_BE_SRC_OLAP_ROWSET_ROWSET_READER_CONTEXT_H +#include + #include "io/io_common.h" #include "olap/column_predicate.h" #include "olap/olap_common.h" @@ -90,6 +92,9 @@ struct RowsetReaderContext { std::map vir_cid_to_idx_in_block; std::map vir_col_idx_to_type; + std::map all_access_paths; + std::map predicate_access_paths; + std::shared_ptr score_runtime; CollectionStatisticsPtr collection_statistics; std::shared_ptr ann_topn_runtime; diff --git a/be/src/olap/rowset/segment_v2/column_reader.cpp b/be/src/olap/rowset/segment_v2/column_reader.cpp index 16d87a1d4253b5..12bdad521bcd77 100644 --- a/be/src/olap/rowset/segment_v2/column_reader.cpp +++ b/be/src/olap/rowset/segment_v2/column_reader.cpp @@ -18,6 +18,7 @@ #include "olap/rowset/segment_v2/column_reader.h" #include +#include #include #include @@ -72,11 +73,11 @@ #include "vec/columns/column_map.h" #include "vec/columns/column_nullable.h" #include "vec/columns/column_struct.h" -#include "vec/columns/column_variant.h" #include "vec/columns/column_vector.h" #include "vec/common/assert_cast.h" #include "vec/common/schema_util.h" #include "vec/common/string_ref.h" +#include "vec/common/typeid_cast.h" #include "vec/core/types.h" #include "vec/data_types/data_type_agg_state.h" #include "vec/data_types/data_type_factory.hpp" @@ -804,11 +805,12 @@ Status ColumnReader::new_iterator(ColumnIteratorUPtr* iterator, const TabletColu *iterator = std::make_unique(); return Status::OK(); } - if (is_scalar_type((FieldType)_meta_type)) { + if (is_scalar_type(_meta_type)) { *iterator = std::make_unique(shared_from_this()); + (*iterator)->set_column_name(tablet_column ? tablet_column->name() : ""); return Status::OK(); } else { - auto type = (FieldType)_meta_type; + auto type = _meta_type; switch (type) { case FieldType::OLAP_FIELD_TYPE_AGG_STATE: { return new_agg_state_iterator(iterator); @@ -842,6 +844,8 @@ Status ColumnReader::new_array_iterator(ColumnIteratorUPtr* iterator, ? &tablet_column->get_sub_column(0) : nullptr)); + item_iterator->set_column_name(tablet_column ? tablet_column->get_sub_column(0).name() : ""); + ColumnIteratorUPtr offset_iterator; RETURN_IF_ERROR(_sub_readers[1]->new_iterator(&offset_iterator, nullptr)); auto* file_iter = static_cast(offset_iterator.release()); @@ -865,11 +869,13 @@ Status ColumnReader::new_map_iterator(ColumnIteratorUPtr* iterator, &key_iterator, tablet_column && tablet_column->get_subtype_count() > 1 ? &tablet_column->get_sub_column(0) : nullptr)); + key_iterator->set_column_name(tablet_column ? tablet_column->get_sub_column(0).name() : ""); ColumnIteratorUPtr val_iterator; RETURN_IF_ERROR(_sub_readers[1]->new_iterator( &val_iterator, tablet_column && tablet_column->get_subtype_count() > 1 ? &tablet_column->get_sub_column(1) : nullptr)); + val_iterator->set_column_name(tablet_column ? tablet_column->get_sub_column(1).name() : ""); ColumnIteratorUPtr offsets_iterator; RETURN_IF_ERROR(_sub_readers[2]->new_iterator(&offsets_iterator, nullptr)); auto* file_iter = static_cast(offsets_iterator.release()); @@ -897,6 +903,8 @@ Status ColumnReader::new_struct_iterator(ColumnIteratorUPtr* iterator, ColumnIteratorUPtr sub_column_iterator; RETURN_IF_ERROR(_sub_readers[i]->new_iterator( &sub_column_iterator, tablet_column ? &tablet_column->get_sub_column(i) : nullptr)); + sub_column_iterator->set_column_name(tablet_column ? tablet_column->get_sub_column(i).name() + : ""); sub_column_iterators.emplace_back(std::move(sub_column_iterator)); } @@ -917,6 +925,33 @@ Status ColumnReader::new_struct_iterator(ColumnIteratorUPtr* iterator, return Status::OK(); } +Result ColumnIterator::_get_sub_access_paths( + const TColumnAccessPaths& access_paths) { + TColumnAccessPaths sub_access_paths = access_paths; + for (auto it = sub_access_paths.begin(); it != sub_access_paths.end();) { + TColumnAccessPath& name_path = *it; + if (name_path.data_access_path.path.empty()) { + return ResultError( + Status::InternalError("Invalid access path for struct column: path is empty")); + } + + if (!StringCaseEqual()(name_path.data_access_path.path[0], _column_name)) { + return ResultError(Status::InternalError( + R"(Invalid access path for column: expected name "{}", got "{}")", _column_name, + name_path.data_access_path.path[0])); + } + + name_path.data_access_path.path.erase(name_path.data_access_path.path.begin()); + if (!name_path.data_access_path.path.empty()) { + ++it; + } else { + set_need_to_read(); + it = sub_access_paths.erase(it); + } + } + return sub_access_paths; +} + ///====================== MapFileColumnIterator ============================//// MapFileColumnIterator::MapFileColumnIterator(std::shared_ptr reader, ColumnIteratorUPtr null_iterator, @@ -933,6 +968,10 @@ MapFileColumnIterator::MapFileColumnIterator(std::shared_ptr reade } Status MapFileColumnIterator::init(const ColumnIteratorOptions& opts) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Map column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } RETURN_IF_ERROR(_key_iterator->init(opts)); RETURN_IF_ERROR(_val_iterator->init(opts)); RETURN_IF_ERROR(_offsets_iterator->init(opts)); @@ -943,6 +982,11 @@ Status MapFileColumnIterator::init(const ColumnIteratorOptions& opts) { } Status MapFileColumnIterator::seek_to_ordinal(ordinal_t ord) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Map column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + if (_map_reader->is_nullable()) { RETURN_IF_ERROR(_null_iterator->seek_to_ordinal(ord)); } @@ -957,10 +1001,16 @@ Status MapFileColumnIterator::seek_to_ordinal(ordinal_t ord) { Status MapFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, bool* has_null) { - const auto* column_map = vectorized::check_and_get_column( + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Map column iterator column " << _column_name << " skip reading."; + dst->resize(*n); + return Status::OK(); + } + + auto& column_map = assert_cast( dst->is_nullable() ? static_cast(*dst).get_nested_column() : *dst); - auto column_offsets_ptr = column_map->get_offsets_column().assume_mutable(); + auto column_offsets_ptr = column_map.get_offsets_column().assume_mutable(); bool offsets_has_null = false; ssize_t start = column_offsets_ptr->size(); RETURN_IF_ERROR(_offsets_iterator->next_batch(n, column_offsets_ptr, &offsets_has_null)); @@ -973,8 +1023,8 @@ Status MapFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr DCHECK(column_offsets.get_data().back() >= column_offsets.get_data()[start - 1]); size_t num_items = column_offsets.get_data().back() - column_offsets.get_data()[start - 1]; // -1 is valid - auto key_ptr = column_map->get_keys().assume_mutable(); - auto val_ptr = column_map->get_values().assume_mutable(); + auto key_ptr = column_map.get_keys().assume_mutable(); + auto val_ptr = column_map.get_values().assume_mutable(); if (num_items > 0) { size_t num_read = num_items; @@ -983,6 +1033,9 @@ Status MapFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr RETURN_IF_ERROR(_key_iterator->next_batch(&num_read, key_ptr, &key_has_null)); RETURN_IF_ERROR(_val_iterator->next_batch(&num_read, val_ptr, &val_has_null)); DCHECK(num_read == num_items); + + column_map.get_keys_ptr() = std::move(key_ptr); + column_map.get_values_ptr() = std::move(val_ptr); } if (dst->is_nullable()) { @@ -1008,6 +1061,12 @@ Status MapFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr Status MapFileColumnIterator::read_by_rowids(const rowid_t* rowids, const size_t count, vectorized::MutableColumnPtr& dst) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "File column iterator column " << _column_name << " skip reading."; + dst->resize(count); + return Status::OK(); + } + for (size_t i = 0; i < count; ++i) { RETURN_IF_ERROR(seek_to_ordinal(rowids[i])); size_t num_read = 1; @@ -1017,6 +1076,93 @@ Status MapFileColumnIterator::read_by_rowids(const rowid_t* rowids, const size_t return Status::OK(); } +void MapFileColumnIterator::set_need_to_read() { + set_reading_flag(ReadingFlag::NEED_TO_READ); + _key_iterator->set_need_to_read(); + _val_iterator->set_need_to_read(); +} + +void MapFileColumnIterator::remove_pruned_sub_iterators() { + _key_iterator->remove_pruned_sub_iterators(); + _val_iterator->remove_pruned_sub_iterators(); +} + +Status MapFileColumnIterator::set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) { + if (all_access_paths.empty()) { + return Status::OK(); + } + + if (!predicate_access_paths.empty()) { + set_reading_flag(ReadingFlag::READING_FOR_PREDICATE); + DLOG(INFO) << "Map column iterator set sub-column " << _column_name + << " to READING_FOR_PREDICATE"; + } + + auto sub_all_access_paths = DORIS_TRY(_get_sub_access_paths(all_access_paths)); + auto sub_predicate_access_paths = DORIS_TRY(_get_sub_access_paths(predicate_access_paths)); + + if (sub_all_access_paths.empty()) { + return Status::OK(); + } + + TColumnAccessPaths key_all_access_paths; + TColumnAccessPaths val_all_access_paths; + TColumnAccessPaths key_predicate_access_paths; + TColumnAccessPaths val_predicate_access_paths; + + for (auto paths : sub_all_access_paths) { + if (paths.data_access_path.path[0] == "*") { + paths.data_access_path.path[0] = _key_iterator->column_name(); + key_all_access_paths.emplace_back(paths); + paths.data_access_path.path[0] = _val_iterator->column_name(); + val_all_access_paths.emplace_back(paths); + } else if (paths.data_access_path.path[0] == "KEYS") { + paths.data_access_path.path[0] = _key_iterator->column_name(); + key_all_access_paths.emplace_back(paths); + } else if (paths.data_access_path.path[0] == "VALUES") { + paths.data_access_path.path[0] = _val_iterator->column_name(); + val_all_access_paths.emplace_back(paths); + } + } + const auto need_read_keys = !key_all_access_paths.empty(); + const auto need_read_values = !val_all_access_paths.empty(); + + for (auto paths : sub_predicate_access_paths) { + if (paths.data_access_path.path[0] == "*") { + paths.data_access_path.path[0] = _key_iterator->column_name(); + key_predicate_access_paths.emplace_back(paths); + paths.data_access_path.path[0] = _val_iterator->column_name(); + val_predicate_access_paths.emplace_back(paths); + } else if (paths.data_access_path.path[0] == "KEYS") { + paths.data_access_path.path[0] = _key_iterator->column_name(); + key_predicate_access_paths.emplace_back(paths); + } else if (paths.data_access_path.path[0] == "VALUES") { + paths.data_access_path.path[0] = _val_iterator->column_name(); + val_predicate_access_paths.emplace_back(paths); + } + } + + if (need_read_keys) { + _key_iterator->set_reading_flag(ReadingFlag::NEED_TO_READ); + RETURN_IF_ERROR( + _key_iterator->set_access_paths(key_all_access_paths, key_predicate_access_paths)); + } else { + _key_iterator->set_reading_flag(ReadingFlag::SKIP_READING); + DLOG(INFO) << "Map column iterator set key column to SKIP_READING"; + } + + if (need_read_values) { + _val_iterator->set_reading_flag(ReadingFlag::NEED_TO_READ); + RETURN_IF_ERROR( + _val_iterator->set_access_paths(val_all_access_paths, val_predicate_access_paths)); + } else { + _val_iterator->set_reading_flag(ReadingFlag::SKIP_READING); + DLOG(INFO) << "Map column iterator set value column to SKIP_READING"; + } + return Status::OK(); +} + //////////////////////////////////////////////////////////////////////////////// StructFileColumnIterator::StructFileColumnIterator( @@ -1029,6 +1175,11 @@ StructFileColumnIterator::StructFileColumnIterator( } Status StructFileColumnIterator::init(const ColumnIteratorOptions& opts) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Struct column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + for (auto& column_iterator : _sub_column_iterators) { RETURN_IF_ERROR(column_iterator->init(opts)); } @@ -1040,16 +1191,23 @@ Status StructFileColumnIterator::init(const ColumnIteratorOptions& opts) { Status StructFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, bool* has_null) { - const auto* column_struct = vectorized::check_and_get_column( + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Struct column iterator column " << _column_name << " skip reading."; + dst->resize(*n); + return Status::OK(); + } + + auto& column_struct = assert_cast( dst->is_nullable() ? static_cast(*dst).get_nested_column() : *dst); - for (size_t i = 0; i < column_struct->tuple_size(); i++) { + for (size_t i = 0; i < column_struct.tuple_size(); i++) { size_t num_read = *n; - auto sub_column_ptr = column_struct->get_column(i).assume_mutable(); + auto sub_column_ptr = column_struct.get_column(i).assume_mutable(); bool column_has_null = false; RETURN_IF_ERROR( _sub_column_iterators[i]->next_batch(&num_read, sub_column_ptr, &column_has_null)); DCHECK(num_read == *n); + column_struct.get_column_ptr(i) = std::move(sub_column_ptr); } if (dst->is_nullable()) { @@ -1075,6 +1233,11 @@ Status StructFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumn } Status StructFileColumnIterator::seek_to_ordinal(ordinal_t ord) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Struct column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + for (auto& column_iterator : _sub_column_iterators) { RETURN_IF_ERROR(column_iterator->seek_to_ordinal(ord)); } @@ -1086,6 +1249,12 @@ Status StructFileColumnIterator::seek_to_ordinal(ordinal_t ord) { Status StructFileColumnIterator::read_by_rowids(const rowid_t* rowids, const size_t count, vectorized::MutableColumnPtr& dst) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Struct column iterator column " << _column_name << " skip reading."; + dst->resize(count); + return Status::OK(); + } + for (size_t i = 0; i < count; ++i) { RETURN_IF_ERROR(seek_to_ordinal(rowids[i])); size_t num_read = 1; @@ -1095,6 +1264,83 @@ Status StructFileColumnIterator::read_by_rowids(const rowid_t* rowids, const siz return Status::OK(); } +void StructFileColumnIterator::set_need_to_read() { + set_reading_flag(ReadingFlag::NEED_TO_READ); + for (auto& sub_iterator : _sub_column_iterators) { + sub_iterator->set_need_to_read(); + } +} + +void StructFileColumnIterator::remove_pruned_sub_iterators() { + for (auto it = _sub_column_iterators.begin(); it != _sub_column_iterators.end();) { + auto& sub_iterator = *it; + if (sub_iterator->reading_flag() == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Struct column iterator remove pruned sub-column " + << sub_iterator->column_name(); + it = _sub_column_iterators.erase(it); + } else { + sub_iterator->remove_pruned_sub_iterators(); + ++it; + } + } +} + +Status StructFileColumnIterator::set_access_paths( + const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) { + if (all_access_paths.empty()) { + return Status::OK(); + } + + if (!predicate_access_paths.empty()) { + set_reading_flag(ReadingFlag::READING_FOR_PREDICATE); + DLOG(INFO) << "Struct column iterator set sub-column " << _column_name + << " to READING_FOR_PREDICATE"; + } + auto sub_all_access_paths = DORIS_TRY(_get_sub_access_paths(all_access_paths)); + auto sub_predicate_access_paths = DORIS_TRY(_get_sub_access_paths(predicate_access_paths)); + + const auto no_sub_column_to_skip = sub_all_access_paths.empty(); + const auto no_predicate_sub_column = sub_predicate_access_paths.empty(); + + for (auto& sub_iterator : _sub_column_iterators) { + const auto name = sub_iterator->column_name(); + bool need_to_read = no_sub_column_to_skip; + TColumnAccessPaths sub_all_access_paths_of_this; + if (!need_to_read) { + for (const auto& paths : sub_all_access_paths) { + if (paths.data_access_path.path[0] == name) { + sub_all_access_paths_of_this.emplace_back(paths); + } + } + need_to_read = !sub_all_access_paths_of_this.empty(); + } + + if (!need_to_read) { + set_reading_flag(ReadingFlag::SKIP_READING); + sub_iterator->set_reading_flag(ReadingFlag::SKIP_READING); + DLOG(INFO) << "Struct column iterator set sub-column " << name << " to SKIP_READING"; + continue; + } + set_reading_flag(ReadingFlag::NEED_TO_READ); + sub_iterator->set_reading_flag(ReadingFlag::NEED_TO_READ); + + TColumnAccessPaths sub_predicate_access_paths_of_this; + + if (!no_predicate_sub_column) { + for (const auto& paths : sub_predicate_access_paths) { + if (StringCaseEqual()(paths.data_access_path.path[0], name)) { + sub_predicate_access_paths_of_this.emplace_back(paths); + } + } + } + + RETURN_IF_ERROR(sub_iterator->set_access_paths(sub_all_access_paths_of_this, + sub_predicate_access_paths_of_this)); + } + return Status::OK(); +} + //////////////////////////////////////////////////////////////////////////////// Status OffsetFileColumnIterator::init(const ColumnIteratorOptions& opts) { RETURN_IF_ERROR(_offset_iterator->init(opts)); @@ -1166,6 +1412,11 @@ ArrayFileColumnIterator::ArrayFileColumnIterator(std::shared_ptr r } Status ArrayFileColumnIterator::init(const ColumnIteratorOptions& opts) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Array column iterator column " << _column_name << " skip readking."; + return Status::OK(); + } + RETURN_IF_ERROR(_offset_iterator->init(opts)); RETURN_IF_ERROR(_item_iterator->init(opts)); if (_array_reader->is_nullable()) { @@ -1183,6 +1434,11 @@ Status ArrayFileColumnIterator::_seek_by_offsets(ordinal_t ord) { } Status ArrayFileColumnIterator::seek_to_ordinal(ordinal_t ord) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Array column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + RETURN_IF_ERROR(_offset_iterator->seek_to_ordinal(ord)); if (_array_reader->is_nullable()) { RETURN_IF_ERROR(_null_iterator->seek_to_ordinal(ord)); @@ -1192,6 +1448,12 @@ Status ArrayFileColumnIterator::seek_to_ordinal(ordinal_t ord) { Status ArrayFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, bool* has_null) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Array column iterator column " << _column_name << " skip reading."; + dst->resize(*n); + return Status::OK(); + } + const auto* column_array = vectorized::check_and_get_column( dst->is_nullable() ? static_cast(*dst).get_nested_column() : *dst); @@ -1240,6 +1502,12 @@ Status ArrayFileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnP Status ArrayFileColumnIterator::read_by_rowids(const rowid_t* rowids, const size_t count, vectorized::MutableColumnPtr& dst) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "Array column iterator column " << _column_name << " skip reading."; + dst->resize(count); + return Status::OK(); + } + for (size_t i = 0; i < count; ++i) { // TODO(cambyzju): now read array one by one, need optimize later RETURN_IF_ERROR(seek_to_ordinal(rowids[i])); @@ -1250,11 +1518,67 @@ Status ArrayFileColumnIterator::read_by_rowids(const rowid_t* rowids, const size return Status::OK(); } +void ArrayFileColumnIterator::set_need_to_read() { + set_reading_flag(ReadingFlag::NEED_TO_READ); + _item_iterator->set_need_to_read(); +} + +void ArrayFileColumnIterator::remove_pruned_sub_iterators() { + _item_iterator->remove_pruned_sub_iterators(); +} + +Status ArrayFileColumnIterator::set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) { + if (all_access_paths.empty()) { + return Status::OK(); + } + + if (!predicate_access_paths.empty()) { + set_reading_flag(ReadingFlag::READING_FOR_PREDICATE); + DLOG(INFO) << "Array column iterator set sub-column " << _column_name + << " to READING_FOR_PREDICATE"; + } + + auto sub_all_access_paths = DORIS_TRY(_get_sub_access_paths(all_access_paths)); + auto sub_predicate_access_paths = DORIS_TRY(_get_sub_access_paths(predicate_access_paths)); + + const auto no_sub_column_to_skip = sub_all_access_paths.empty(); + const auto no_predicate_sub_column = sub_predicate_access_paths.empty(); + + if (!no_sub_column_to_skip) { + for (auto& path : sub_all_access_paths) { + if (path.data_access_path.path[0] == "*") { + path.data_access_path.path[0] = _item_iterator->column_name(); + } + } + } + + if (!no_predicate_sub_column) { + for (auto& path : sub_predicate_access_paths) { + if (path.data_access_path.path[0] == "*") { + path.data_access_path.path[0] = _item_iterator->column_name(); + } + } + } + + if (!no_sub_column_to_skip || !no_predicate_sub_column) { + _item_iterator->set_reading_flag(ReadingFlag::NEED_TO_READ); + RETURN_IF_ERROR( + _item_iterator->set_access_paths(sub_all_access_paths, sub_predicate_access_paths)); + } + return Status::OK(); +} + //////////////////////////////////////////////////////////////////////////////// FileColumnIterator::FileColumnIterator(std::shared_ptr reader) : _reader(reader) {} Status FileColumnIterator::init(const ColumnIteratorOptions& opts) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "File column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + _opts = opts; if (!_opts.use_page_cache) { _reader->disable_index_meta_cache(); @@ -1286,6 +1610,11 @@ Status FileColumnIterator::init(const ColumnIteratorOptions& opts) { FileColumnIterator::~FileColumnIterator() = default; Status FileColumnIterator::seek_to_ordinal(ordinal_t ord) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "File column iterator column " << _column_name << " skip reading."; + return Status::OK(); + } + // if current page contains this row, we don't need to seek if (!_page || !_page.contains(ord) || !_page_iter.valid()) { RETURN_IF_ERROR(_reader->seek_at_or_before(ord, &_page_iter, _opts)); @@ -1336,6 +1665,12 @@ Status FileColumnIterator::next_batch_of_zone_map(size_t* n, vectorized::Mutable Status FileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr& dst, bool* has_null) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "File column iterator column " << _column_name << " skip reading."; + dst->resize(*n); + return Status::OK(); + } + size_t curr_size = dst->byte_size(); dst->reserve(*n); size_t remaining = *n; @@ -1392,6 +1727,12 @@ Status FileColumnIterator::next_batch(size_t* n, vectorized::MutableColumnPtr& d Status FileColumnIterator::read_by_rowids(const rowid_t* rowids, const size_t count, vectorized::MutableColumnPtr& dst) { + if (_reading_flag == ReadingFlag::SKIP_READING) { + DLOG(INFO) << "File column iterator column " << _column_name << " skip reading."; + dst->resize(count); + return Status::OK(); + } + size_t remaining = count; size_t total_read_count = 0; size_t nrows_to_read = 0; diff --git a/be/src/olap/rowset/segment_v2/column_reader.h b/be/src/olap/rowset/segment_v2/column_reader.h index 2ffdb2ee69906f..8e96e2f3faae7d 100644 --- a/be/src/olap/rowset/segment_v2/column_reader.h +++ b/be/src/olap/rowset/segment_v2/column_reader.h @@ -17,6 +17,7 @@ #pragma once +#include #include #include @@ -69,6 +70,8 @@ class FileReader; struct Slice; struct StringRef; +using TColumnAccessPaths = std::vector; + namespace segment_v2 { class EncodingInfo; @@ -271,7 +274,6 @@ class ColumnReader : public MetadataAdder, Status _calculate_row_ranges(const std::vector& page_indexes, RowRanges* row_ranges, const ColumnIteratorOptions& iter_opts); -private: int64_t _meta_length; FieldType _meta_type; FieldType _meta_children_column_type; @@ -366,8 +368,54 @@ class ColumnIterator { virtual bool is_all_dict_encoding() const { return false; } + virtual Status set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) { + if (!predicate_access_paths.empty()) { + _reading_flag = ReadingFlag::READING_FOR_PREDICATE; + } + return Status::OK(); + } + + void set_column_name(const std::string& column_name) { _column_name = column_name; } + + const std::string& column_name() const { return _column_name; } + + // Since there may be multiple paths with conflicts or overlaps, + // we need to define several reading flags: + // + // NORMAL_READING — Default value, indicating that the column should be read. + // SKIP_READING — The column should not be read. + // NEED_TO_READ — The column must be read. + // READING_FOR_PREDICATE — The column is required for predicate evaluation. + // + // For example, suppose there are two paths: + // - Path 1 specifies that column A needs to be read, so it is marked as NEED_TO_READ. + // - Path 2 specifies that the column should not be read, but since it is already marked as NEED_TO_READ, + // it should not be changed to SKIP_READING. + enum class ReadingFlag : int { + NORMAL_READING, + SKIP_READING, + NEED_TO_READ, + READING_FOR_PREDICATE + }; + void set_reading_flag(ReadingFlag flag) { + if (static_cast(flag) > static_cast(_reading_flag)) { + _reading_flag = flag; + } + } + + ReadingFlag reading_flag() const { return _reading_flag; } + + virtual void set_need_to_read() { set_reading_flag(ReadingFlag::NEED_TO_READ); } + + virtual void remove_pruned_sub_iterators() {}; + protected: + Result _get_sub_access_paths(const TColumnAccessPaths& access_paths); ColumnIteratorOptions _opts; + + ReadingFlag _reading_flag {ReadingFlag::NORMAL_READING}; + std::string _column_name; }; // This iterator is used to read column data from file @@ -504,6 +552,13 @@ class MapFileColumnIterator final : public ColumnIterator { return _offsets_iterator->get_current_ordinal(); } + Status set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) override; + + void set_need_to_read() override; + + void remove_pruned_sub_iterators() override; + private: std::shared_ptr _map_reader = nullptr; ColumnIteratorUPtr _null_iterator; @@ -533,6 +588,13 @@ class StructFileColumnIterator final : public ColumnIterator { return _sub_column_iterators[0]->get_current_ordinal(); } + Status set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) override; + + void set_need_to_read() override; + + void remove_pruned_sub_iterators() override; + private: std::shared_ptr _struct_reader = nullptr; ColumnIteratorUPtr _null_iterator; @@ -561,6 +623,12 @@ class ArrayFileColumnIterator final : public ColumnIterator { return _offset_iterator->get_current_ordinal(); } + Status set_access_paths(const TColumnAccessPaths& all_access_paths, + const TColumnAccessPaths& predicate_access_paths) override; + void set_need_to_read() override; + + void remove_pruned_sub_iterators() override; + private: std::shared_ptr _array_reader = nullptr; std::unique_ptr _offset_iterator; diff --git a/be/src/olap/rowset/segment_v2/segment.cpp b/be/src/olap/rowset/segment_v2/segment.cpp index d95d049c7cf1a7..211ba10bbbbf87 100644 --- a/be/src/olap/rowset/segment_v2/segment.cpp +++ b/be/src/olap/rowset/segment_v2/segment.cpp @@ -17,12 +17,14 @@ #include "olap/rowset/segment_v2/segment.h" +#include #include #include #include #include #include +#include #include #include "cloud/config.h" @@ -765,6 +767,20 @@ Status Segment::new_column_iterator(const TabletColumn& tablet_column, sparse_column_cache_ptr)); } else { RETURN_IF_ERROR(reader->new_iterator(iter, &tablet_column, opt)); + if (opt->all_access_paths.contains(unique_id) || + opt->predicate_access_paths.contains(unique_id)) { + const auto& all_access_paths = opt->all_access_paths.contains(unique_id) + ? opt->all_access_paths.at(unique_id) + : TColumnAccessPaths {}; + const auto& predicate_access_paths = opt->predicate_access_paths.contains(unique_id) + ? opt->predicate_access_paths.at(unique_id) + : TColumnAccessPaths {}; + + // set column name to apply access paths. + (*iter)->set_column_name(tablet_column.name()); + RETURN_IF_ERROR((*iter)->set_access_paths(all_access_paths, predicate_access_paths)); + (*iter)->remove_pruned_sub_iterators(); + } } if (config::enable_column_type_check && !tablet_column.has_path_info() && diff --git a/be/src/olap/tablet_reader.cpp b/be/src/olap/tablet_reader.cpp index 3660e709e22e27..3dc120ec4c4bcb 100644 --- a/be/src/olap/tablet_reader.cpp +++ b/be/src/olap/tablet_reader.cpp @@ -263,6 +263,9 @@ Status TabletReader::_capture_rs_readers(const ReaderParams& read_params) { _reader_context.ann_topn_runtime = read_params.ann_topn_runtime; _reader_context.condition_cache_digest = read_params.condition_cache_digest; + _reader_context.all_access_paths = read_params.all_access_paths; + _reader_context.predicate_access_paths = read_params.predicate_access_paths; + return Status::OK(); } diff --git a/be/src/olap/tablet_reader.h b/be/src/olap/tablet_reader.h index 8630c93205230d..593afa9dbe54fd 100644 --- a/be/src/olap/tablet_reader.h +++ b/be/src/olap/tablet_reader.h @@ -17,6 +17,7 @@ #pragma once +#include #include #include #include @@ -146,6 +147,9 @@ class TabletReader { // slots that cast may be eliminated in storage layer std::map target_cast_type_for_variants; + std::map all_access_paths; + std::map predicate_access_paths; + std::vector rs_splits; // For unique key table with merge-on-write DeleteBitmapPtr delete_bitmap = nullptr; diff --git a/be/src/olap/tablet_schema.cpp b/be/src/olap/tablet_schema.cpp index b3331cdfb187a4..bb336115b6a7a2 100644 --- a/be/src/olap/tablet_schema.cpp +++ b/be/src/olap/tablet_schema.cpp @@ -1684,6 +1684,14 @@ vectorized::Block TabletSchema::create_block( tablet_columns_need_convert_null->find(cid) != tablet_columns_need_convert_null->end()); auto data_type = vectorized::DataTypeFactory::instance().create_data_type(col, is_nullable); + if (col.type() == FieldType::OLAP_FIELD_TYPE_STRUCT || + col.type() == FieldType::OLAP_FIELD_TYPE_MAP || + col.type() == FieldType::OLAP_FIELD_TYPE_ARRAY) { + if (_pruned_columns_data_type.contains(col.unique_id())) { + data_type = _pruned_columns_data_type.at(col.unique_id()); + } + } + if (_vir_col_idx_to_unique_id.contains(cid)) { block.insert({vectorized::ColumnNothing::create(0), data_type, col.name()}); VLOG_DEBUG << fmt::format( @@ -1703,7 +1711,13 @@ vectorized::Block TabletSchema::create_block(bool ignore_dropped_col) const { if (ignore_dropped_col && is_dropped_column(*col)) { continue; } + auto data_type = vectorized::DataTypeFactory::instance().create_data_type(*col); + if (col->type() == FieldType::OLAP_FIELD_TYPE_STRUCT) { + if (_pruned_columns_data_type.contains(col->unique_id())) { + data_type = _pruned_columns_data_type.at(col->unique_id()); + } + } block.insert({data_type->create_column(), data_type, col->name()}); } return block; @@ -1714,6 +1728,11 @@ vectorized::Block TabletSchema::create_block_by_cids(const std::vector for (const auto& cid : cids) { const auto& col = *_cols[cid]; auto data_type = vectorized::DataTypeFactory::instance().create_data_type(col); + if (col.type() == FieldType::OLAP_FIELD_TYPE_STRUCT) { + if (_pruned_columns_data_type.contains(col.unique_id())) { + data_type = _pruned_columns_data_type.at(col.unique_id()); + } + } block.insert({data_type->create_column(), data_type, col.name()}); } return block; diff --git a/be/src/olap/tablet_schema.h b/be/src/olap/tablet_schema.h index 429e102c9a2849..ba5bd1220fce90 100644 --- a/be/src/olap/tablet_schema.h +++ b/be/src/olap/tablet_schema.h @@ -42,6 +42,7 @@ #include "runtime/define_primitive_type.h" #include "runtime/descriptors.h" #include "runtime/memory/lru_cache_policy.h" +#include "udf/udf.h" #include "util/debug_points.h" #include "util/string_parser.hpp" #include "util/string_util.h" @@ -682,6 +683,14 @@ class TabletSchema : public MetadataAdder { return 0; } + void add_pruned_columns_data_type(int32_t col_unique_id, vectorized::DataTypePtr data_type) { + _pruned_columns_data_type[col_unique_id] = std::move(data_type); + } + + void clear_pruned_columns_data_type() { _pruned_columns_data_type.clear(); } + + bool has_pruned_columns() const { return !_pruned_columns_data_type.empty(); } + private: friend bool operator==(const TabletSchema& a, const TabletSchema& b); friend bool operator!=(const TabletSchema& a, const TabletSchema& b); @@ -752,6 +761,7 @@ class TabletSchema : public MetadataAdder { bool _enable_variant_flatten_nested = false; std::map _vir_col_idx_to_unique_id; + std::map _pruned_columns_data_type; // value: extracted path set and sparse path set std::unordered_map _path_set_info_map; diff --git a/be/src/runtime/descriptors.cpp b/be/src/runtime/descriptors.cpp index d99cbdc038cbbd..8ee9ff9de17883 100644 --- a/be/src/runtime/descriptors.cpp +++ b/be/src/runtime/descriptors.cpp @@ -63,6 +63,11 @@ SlotDescriptor::SlotDescriptor(const TSlotDescriptor& tdesc) _is_materialized(tdesc.isMaterialized && tdesc.need_materialize), _is_key(tdesc.is_key), _column_paths(tdesc.column_paths), + _all_access_paths(tdesc.__isset.all_access_paths ? tdesc.all_access_paths + : TColumnAccessPaths {}), + _predicate_access_paths(tdesc.__isset.predicate_access_paths + ? tdesc.predicate_access_paths + : TColumnAccessPaths {}), _is_auto_increment(tdesc.__isset.is_auto_increment ? tdesc.is_auto_increment : false), _col_default_value(tdesc.__isset.col_default_value ? tdesc.col_default_value : "") { if (tdesc.__isset.virtual_column_expr) { @@ -98,7 +103,31 @@ SlotDescriptor::SlotDescriptor(const PSlotDescriptor& pdesc) _is_materialized(pdesc.is_materialized()), _is_key(pdesc.is_key()), _column_paths(pdesc.column_paths().begin(), pdesc.column_paths().end()), - _is_auto_increment(pdesc.is_auto_increment()) {} + _is_auto_increment(pdesc.is_auto_increment()) { + auto convert_to_thrift_column_access_path = [](const PColumnAccessPath& pb_path) { + TColumnAccessPath thrift_path; + thrift_path.type = (TAccessPathType::type)pb_path.type(); + if (pb_path.has_data_access_path()) { + thrift_path.__isset.data_access_path = true; + for (int i = 0; i < pb_path.data_access_path().path_size(); ++i) { + thrift_path.data_access_path.path.push_back(pb_path.data_access_path().path(i)); + } + } + if (pb_path.has_meta_access_path()) { + thrift_path.__isset.meta_access_path = true; + for (int i = 0; i < pb_path.meta_access_path().path_size(); ++i) { + thrift_path.meta_access_path.path.push_back(pb_path.meta_access_path().path(i)); + } + } + return thrift_path; + }; + for (const auto& pb_path : pdesc.all_access_paths()) { + _all_access_paths.push_back(convert_to_thrift_column_access_path(pb_path)); + } + for (const auto& pb_path : pdesc.predicate_access_paths()) { + _predicate_access_paths.push_back(convert_to_thrift_column_access_path(pb_path)); + } +} #ifdef BE_TEST SlotDescriptor::SlotDescriptor() @@ -132,6 +161,33 @@ void SlotDescriptor::to_protobuf(PSlotDescriptor* pslot) const { for (const std::string& path : _column_paths) { pslot->add_column_paths(path); } + auto convert_to_protobuf_column_access_path = [](const TColumnAccessPath& thrift_path, + doris::PColumnAccessPath* pb_path) { + pb_path->Clear(); + pb_path->set_type((PAccessPathType)thrift_path.type); // 使用 reinterpret_cast 进行类型转换 + if (thrift_path.__isset.data_access_path) { + auto* pb_data = pb_path->mutable_data_access_path(); + pb_data->Clear(); + for (const auto& s : thrift_path.data_access_path.path) { + pb_data->add_path(s); + } + } + if (thrift_path.__isset.meta_access_path) { + auto* pb_meta = pb_path->mutable_meta_access_path(); + pb_meta->Clear(); + for (const auto& s : thrift_path.meta_access_path.path) { + pb_meta->add_path(s); + } + } + }; + for (const auto& path : _all_access_paths) { + auto* pb_path = pslot->add_all_access_paths(); + convert_to_protobuf_column_access_path(path, pb_path); + } + for (const auto& path : _predicate_access_paths) { + auto* pb_path = pslot->add_predicate_access_paths(); + convert_to_protobuf_column_access_path(path, pb_path); + } } vectorized::DataTypePtr SlotDescriptor::get_data_type_ptr() const { diff --git a/be/src/runtime/descriptors.h b/be/src/runtime/descriptors.h index 0481c4ebfdbac7..8190320fa68b43 100644 --- a/be/src/runtime/descriptors.h +++ b/be/src/runtime/descriptors.h @@ -53,6 +53,8 @@ class ObjectPool; class PTupleDescriptor; class PSlotDescriptor; +using TColumnAccessPaths = std::vector; + class SlotDescriptor { public: MOCK_DEFINE(virtual ~SlotDescriptor() = default;) @@ -82,6 +84,9 @@ class SlotDescriptor { bool is_key() const { return _is_key; } const std::vector& column_paths() const { return _column_paths; }; + const TColumnAccessPaths& all_access_paths() const { return _all_access_paths; } + const TColumnAccessPaths& predicate_access_paths() const { return _predicate_access_paths; } + bool is_auto_increment() const { return _is_auto_increment; } bool is_skip_bitmap_col() const { return _col_name == SKIP_BITMAP_COL; } @@ -95,6 +100,10 @@ class SlotDescriptor { return virtual_column_expr; } + void set_is_predicate(bool is_predicate) { _is_predicate = is_predicate; } + + bool is_predicate() const { return _is_predicate; } + private: friend class DescriptorTbl; friend class TupleDescriptor; @@ -128,11 +137,16 @@ class SlotDescriptor { const bool _is_key; const std::vector _column_paths; + TColumnAccessPaths _all_access_paths; + TColumnAccessPaths _predicate_access_paths; + const bool _is_auto_increment; const std::string _col_default_value; std::shared_ptr virtual_column_expr = nullptr; + bool _is_predicate = false; + SlotDescriptor(const TSlotDescriptor& tdesc); SlotDescriptor(const PSlotDescriptor& pdesc); MOCK_DEFINE(SlotDescriptor();) diff --git a/be/src/vec/columns/column_map.cpp b/be/src/vec/columns/column_map.cpp index 8317aa5bb5e686..7cd6bfe9f4a656 100644 --- a/be/src/vec/columns/column_map.cpp +++ b/be/src/vec/columns/column_map.cpp @@ -59,6 +59,7 @@ ColumnMap::ColumnMap(MutableColumnPtr&& keys, MutableColumnPtr&& values, Mutable /// This will also prevent possible overflow in offset. if (keys_column->size() != last_offset) { + DCHECK(0); throw doris::Exception( doris::ErrorCode::INTERNAL_ERROR, "offsets_column size {} has data inconsistent with key_column {}", last_offset, diff --git a/be/src/vec/data_types/data_type_factory.cpp b/be/src/vec/data_types/data_type_factory.cpp index a957597996835e..55c8b216d257d7 100644 --- a/be/src/vec/data_types/data_type_factory.cpp +++ b/be/src/vec/data_types/data_type_factory.cpp @@ -460,8 +460,7 @@ DataTypePtr DataTypeFactory::create_data_type(const PrimitiveType primitive_type nested = std::make_shared(); break; case TYPE_DECIMALV2: - nested = std::make_shared( - precision > 0 ? precision : 0, precision > 0 ? scale : 0, precision, scale); + nested = std::make_shared(27, 9, precision, scale); break; case TYPE_QUANTILE_STATE: nested = std::make_shared(); diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp b/be/src/vec/exec/format/orc/vorc_reader.cpp index 81b0396aedf0fc..17b1564b9c778c 100644 --- a/be/src/vec/exec/format/orc/vorc_reader.cpp +++ b/be/src/vec/exec/format/orc/vorc_reader.cpp @@ -26,6 +26,7 @@ #include #include +#include #include "vec/exprs/vdirect_in_predicate.h" #include "vec/exprs/vexpr.h" @@ -353,13 +354,16 @@ Status OrcReader::init_reader( bool is_acid, const TupleDescriptor* tuple_descriptor, const RowDescriptor* row_descriptor, const VExprContextSPtrs* not_single_slot_filter_conjuncts, const std::unordered_map* slot_id_to_filter_conjuncts, - std::shared_ptr table_info_node_ptr) { + std::shared_ptr table_info_node_ptr, + const std::set& column_ids, const std::set& filter_column_ids) { _table_column_names = column_names; _lazy_read_ctx.conjuncts = conjuncts; _is_acid = is_acid; _tuple_descriptor = tuple_descriptor; _row_descriptor = row_descriptor; _table_info_node_ptr = table_info_node_ptr; + _column_ids = column_ids; + _filter_column_ids = filter_column_ids; if (not_single_slot_filter_conjuncts != nullptr && !not_single_slot_filter_conjuncts->empty()) { _not_single_slot_filter_conjuncts.insert(_not_single_slot_filter_conjuncts.end(), @@ -398,6 +402,29 @@ Status OrcReader::get_parsed_schema(std::vector* col_names, Status OrcReader::_init_read_columns() { SCOPED_RAW_TIMER(&_statistics.init_column_time); const auto& root_type = _reader->getType(); + + // Build column ID to file type mapping for all columns in file + _column_id_to_file_type.clear(); + std::function build_column_id_map = [&](const orc::Type* type, + int depth) { + if (type == nullptr) return; + uint64_t col_id = type->getColumnId(); + _column_id_to_file_type[col_id] = type; + + std::string indent(depth * 2, ' '); + VLOG_DEBUG << indent << "[OrcReader] Mapping column_id=" << col_id + << ", kind=" << static_cast(type->getKind()) + << ", subtype_count=" << type->getSubtypeCount(); + + for (uint64_t i = 0; i < type->getSubtypeCount(); ++i) { + build_column_id_map(type->getSubtype(i), depth + 1); + } + }; + + VLOG_DEBUG << "[OrcReader] Building column ID to file type mapping..."; + build_column_id_map(&root_type, 0); + VLOG_DEBUG << "[OrcReader] Total mapped columns: " << _column_id_to_file_type.size(); + if (_is_acid) { for (uint64_t i = 0; i < root_type.getSubtypeCount(); ++i) { if (root_type.getSubtype(i)->getKind() == orc::TypeKind::STRUCT) { @@ -647,7 +674,7 @@ std::pair OrcReader::_make_orc_literal(const VSlotRef* slot_ auto* slot = _tuple_descriptor->slots()[slot_ref->column_id()]; auto slot_type = slot->type(); auto primitive_type = slot_type->get_primitive_type(); - auto src_type = OrcReader::convert_to_doris_type(orc_type)->get_primitive_type(); + auto src_type = convert_to_doris_type(orc_type)->get_primitive_type(); // should not down predicate for string type change from other type if (src_type != primitive_type && !is_string_type(src_type) && is_string_type(primitive_type)) { LOG(WARNING) << "Unsupported Push Down Schema Changed Column " << primitive_type << " to " @@ -1155,7 +1182,12 @@ Status OrcReader::set_fill_columns( try { _row_reader_options.range(_range_start_offset, _range_size); _row_reader_options.setTimezoneName(_ctz == "CST" ? "Asia/Shanghai" : _ctz); - _row_reader_options.include(_read_file_cols); + if (!_column_ids.empty()) { + std::list column_ids_list(_column_ids.begin(), _column_ids.end()); + _row_reader_options.includeTypes(column_ids_list); + } else { // If column_ids is empty, include all top-level columns to be read. + _row_reader_options.include(_read_file_cols); + } _row_reader_options.setEnableLazyDecoding(true); //orc reader should not use the tiny stripe optimization when reading by row id. @@ -1243,6 +1275,28 @@ Status OrcReader::set_fill_columns( } } + _type_map.clear(); + if (_is_acid) { + for (uint64_t i = 0; i < selected_type.getSubtypeCount(); ++i) { + if (selected_type.getSubtype(i)->getKind() == orc::TypeKind::STRUCT) { + auto row_orc_type = selected_type.getSubtype(i); + for (uint64_t j = 0; j < row_orc_type->getSubtypeCount(); j++) { + std::string field_name = + TransactionalHive::ROW + "." + row_orc_type->getFieldName(j); + _type_map.emplace(field_name, row_orc_type->getSubtype(j)); + } + } else { + std::string field_name = selected_type.getFieldName(i); + _type_map.emplace(field_name, selected_type.getSubtype(i)); + } + } + } else { + for (int i = 0; i < selected_type.getSubtypeCount(); ++i) { + std::string field_name = selected_type.getFieldName(i); + _type_map.emplace(field_name, selected_type.getSubtype(i)); + } + } + _remaining_rows = _row_reader->getNumberOfRows(); } catch (std::exception& e) { @@ -1390,6 +1444,14 @@ void OrcReader::_init_file_description() { } DataTypePtr OrcReader::convert_to_doris_type(const orc::Type* orc_type) { + // Critical: check for nullptr BEFORE accessing any methods + if (orc_type == nullptr) { + LOG(WARNING) << "[OrcReader] ERROR: convert_to_doris_type called with nullptr orc_type! " + "Falling back to STRING"; + // Return a safe default type instead of crashing + return DataTypeFactory::instance().create_data_type(PrimitiveType::TYPE_STRING, true); + } + switch (orc_type->getKind()) { case orc::TypeKind::BOOLEAN: return DataTypeFactory::instance().create_data_type(PrimitiveType::TYPE_BOOLEAN, true); @@ -1436,6 +1498,75 @@ DataTypePtr OrcReader::convert_to_doris_type(const orc::Type* orc_type) { std::make_shared(convert_to_doris_type(orc_type->getSubtype(0)))); } case orc::TypeKind::MAP: { + // Handle incomplete MAP type due to column pruning + // If MAP doesn't have both key and value subtypes, try to find the complete type from file + if (orc_type->getSubtypeCount() < 2 || orc_type->getSubtype(0) == nullptr || + orc_type->getSubtype(1) == nullptr) { + // Try to find the complete type from _column_id_to_file_type + uint64_t column_id = orc_type->getColumnId(); + VLOG_DEBUG << "[OrcReader] Detected incomplete MAP type: column_id=" << column_id + << ", subtype_count=" << orc_type->getSubtypeCount() << ", subtype(0)=" + << (orc_type->getSubtypeCount() > 0 && orc_type->getSubtype(0) != nullptr + ? "not null" + : "null") + << ", subtype(1)=" + << (orc_type->getSubtypeCount() > 1 && orc_type->getSubtype(1) != nullptr + ? "not null" + : "null"); + + auto it = _column_id_to_file_type.find(column_id); + if (it != _column_id_to_file_type.end() && it->second != nullptr) { + const orc::Type* complete_type = it->second; + VLOG_DEBUG << "[OrcReader] Found complete type in mapping: column_id=" << column_id + << ", complete_type_kind=" << static_cast(complete_type->getKind()) + << ", complete_subtype_count=" << complete_type->getSubtypeCount(); + + // Print subtypes information + for (uint64_t i = 0; i < complete_type->getSubtypeCount(); ++i) { + const orc::Type* subtype = complete_type->getSubtype(i); + VLOG_DEBUG << "[OrcReader] complete_type->subtype[" << i << "]: " + << (subtype != nullptr + ? ("kind=" + + std::to_string(static_cast(subtype->getKind())) + + ", column_id=" + + std::to_string(subtype->getColumnId())) + : "nullptr"); + } + + if (complete_type->getKind() == orc::TypeKind::MAP && + complete_type->getSubtypeCount() == 2) { + VLOG_DEBUG + << "[OrcReader] Using complete MAP type from file schema for column_id=" + << column_id; + + // Get subtypes with extra validation + const orc::Type* key_type = complete_type->getSubtype(0); + const orc::Type* value_type = complete_type->getSubtype(1); + + VLOG_DEBUG << "[OrcReader] About to convert key_type: " + << (key_type != nullptr ? "not null" : "NULL"); + VLOG_DEBUG << "[OrcReader] About to convert value_type: " + << (value_type != nullptr ? "not null" : "NULL"); + + // Use the complete type from file - with null checks + DataTypePtr key_doris_type = convert_to_doris_type(key_type); + VLOG_DEBUG << "[OrcReader] Successfully converted key_type"; + + DataTypePtr value_doris_type = convert_to_doris_type(value_type); + VLOG_DEBUG << "[OrcReader] Successfully converted value_type"; + + return make_nullable( + std::make_shared(key_doris_type, value_doris_type)); + } else { + LOG(WARNING) << "[OrcReader] Warning: Complete type is not a valid MAP or has " + "wrong subtype count"; + } + } else { + LOG(WARNING) << "[OrcReader] Warning: Could not find complete type in mapping for " + "column_id=" + << column_id << ", mapping_size=" << _column_id_to_file_type.size(); + } + } return make_nullable( std::make_shared(convert_to_doris_type(orc_type->getSubtype(0)), convert_to_doris_type(orc_type->getSubtype(1)))); @@ -1681,6 +1812,7 @@ Status OrcReader::_fill_doris_data_column(const std::string& col_name, const orc::Type* orc_column_type, const orc::ColumnVectorBatch* cvb, size_t num_values) { auto logical_type = data_type->get_primitive_type(); + switch (logical_type) { #define DISPATCH(FlatType, CppType, OrcColumnType) \ case FlatType: \ @@ -1751,20 +1883,90 @@ Status OrcReader::_fill_doris_data_column(const std::string& col_name, const DataTypePtr& doris_value_type = reinterpret_cast(remove_nullable(data_type).get()) ->get_value_type(); + + // Get ORC key and value types with null checks const orc::Type* orc_key_type = orc_column_type->getSubtype(0); const orc::Type* orc_value_type = orc_column_type->getSubtype(1); + + VLOG_DEBUG << "[OrcReader] MAP column '" << col_name + << "': orc_key_type=" << (orc_key_type != nullptr ? "not null" : "NULL") + << ", orc_value_type=" << (orc_value_type != nullptr ? "not null" : "NULL") + << ", element_size=" << element_size; + + // Handle incomplete MAP type - if key or value type is nullptr, try to recover from mapping + bool key_is_missing = (orc_key_type == nullptr); + bool value_is_missing = (orc_value_type == nullptr); + + if (key_is_missing || value_is_missing) { + VLOG_DEBUG << "[OrcReader] Detected incomplete MAP subtypes for column '" << col_name + << "', attempting to recover from mapping..."; + + uint64_t column_id = orc_column_type->getColumnId(); + auto it = _column_id_to_file_type.find(column_id); + if (it != _column_id_to_file_type.end() && it->second != nullptr) { + const orc::Type* complete_map_type = it->second; + if (complete_map_type->getKind() == orc::TypeKind::MAP && + complete_map_type->getSubtypeCount() == 2) { + if (key_is_missing) { + orc_key_type = complete_map_type->getSubtype(0); + if (orc_key_type != nullptr) { + // key_is_missing = false; + VLOG_DEBUG << "[OrcReader] Recovered key type from mapping for column '" + << col_name << "'"; + } + } + if (value_is_missing) { + orc_value_type = complete_map_type->getSubtype(1); + if (orc_value_type != nullptr) { + // value_is_missing = false; + VLOG_DEBUG + << "[OrcReader] Recovered value type from mapping for column '" + << col_name << "'"; + } + } + } + } + } + ColumnPtr& doris_key_column = doris_map.get_keys_ptr(); ColumnPtr& doris_value_column = doris_map.get_values_ptr(); std::string key_col_name = col_name + ".key"; std::string value_col_name = col_name + ".value"; - RETURN_IF_ERROR(_orc_column_to_doris_column( - key_col_name, doris_key_column, doris_key_type, root_node->get_key_node(), - - orc_key_type, orc_map->keys.get(), element_size)); - RETURN_IF_ERROR(_orc_column_to_doris_column( - value_col_name, doris_value_column, doris_value_type, root_node->get_value_node(), - orc_value_type, orc_map->elements.get(), element_size)); + // Handle key column: if still missing, fill with default values + if (key_is_missing) { + // Fill key column with default values (nulls or empty values) + auto mutable_key_column = doris_key_column->assume_mutable(); + if (mutable_key_column->is_nullable()) { + auto* nullable_column = static_cast(mutable_key_column.get()); + nullable_column->insert_many_defaults(element_size); + } else { + mutable_key_column->insert_many_defaults(element_size); + } + } else { + // Normal processing: convert ORC column to Doris column + RETURN_IF_ERROR(_orc_column_to_doris_column( + key_col_name, doris_key_column, doris_key_type, root_node->get_key_node(), + orc_key_type, orc_map->keys.get(), element_size)); + } + + // Handle value column: if still missing, fill with default values + if (value_is_missing) { + // Fill value column with default values (nulls or empty values) + auto mutable_value_column = doris_value_column->assume_mutable(); + if (mutable_value_column->is_nullable()) { + auto* nullable_column = static_cast(mutable_value_column.get()); + nullable_column->insert_many_defaults(element_size); + } else { + mutable_value_column->insert_many_defaults(element_size); + } + } else { + // Normal processing: convert ORC column to Doris column + RETURN_IF_ERROR(_orc_column_to_doris_column( + value_col_name, doris_value_column, doris_value_type, + root_node->get_value_node(), orc_value_type, orc_map->elements.get(), + element_size)); + } return doris_map.deduplicate_keys(); } case PrimitiveType::TYPE_STRUCT: { @@ -1780,6 +1982,14 @@ Status OrcReader::_fill_doris_data_column(const std::string& col_name, const auto* doris_struct_type = assert_cast(remove_nullable(data_type).get()); + // Build ORC field name to index map for faster lookup + std::unordered_map orc_field_name_to_idx; + for (int j = 0; j < orc_column_type->getSubtypeCount(); ++j) { + std::string field_name = orc_column_type->getFieldName(j); + std::transform(field_name.begin(), field_name.end(), field_name.begin(), ::tolower); + orc_field_name_to_idx[field_name] = j; + } + for (int i = 0; i < doris_struct.tuple_size(); ++i) { const auto& table_column_name = doris_struct_type->get_name_by_position(i); if (!root_node->children_column_exists(table_column_name)) { @@ -1787,10 +1997,23 @@ Status OrcReader::_fill_doris_data_column(const std::string& col_name, continue; } const auto& file_column_name = root_node->children_file_column_name(table_column_name); - for (int j = 0; j < orc_column_type->getSubtypeCount(); ++j) { - if (boost::iequals(orc_column_type->getFieldName(j), file_column_name)) { - read_fields[i] = j; - } + std::string file_column_name_lower = file_column_name; + std::transform(file_column_name_lower.begin(), file_column_name_lower.end(), + file_column_name_lower.begin(), ::tolower); + + auto it = orc_field_name_to_idx.find(file_column_name_lower); + if (it != orc_field_name_to_idx.end()) { + read_fields[i] = it->second; + VLOG_DEBUG << "[OrcReader] Found field mapping: doris_field[" << i + << "] -> orc_field[" << it->second + << "], table_column: " << table_column_name + << ", file_column: " << file_column_name_lower; + } else { + missing_fields.insert(i); + VLOG_DEBUG << "[OrcReader] Missing field: doris_field[" << i + << "], table_column: " << table_column_name + << ", file_column: " << file_column_name_lower + << " (not found in ORC file)"; } } @@ -1831,67 +2054,83 @@ Status OrcReader::_orc_column_to_doris_column( const std::string& col_name, ColumnPtr& doris_column, const DataTypePtr& data_type, std::shared_ptr root_node, const orc::Type* orc_column_type, const orc::ColumnVectorBatch* cvb, size_t num_values) { - auto src_type = convert_to_doris_type(orc_column_type); - bool is_dict_filter_col = false; - for (const std::pair& dict_col : _dict_filter_cols) { - if (col_name == dict_col.first) { - src_type = DataTypeFactory::instance().create_data_type(PrimitiveType::TYPE_INT, true); - is_dict_filter_col = true; - break; - } - } - // If the column can be dictionary filtered, there will be two types. - // It may be plain or a dictionary, because the same field in different stripes may have different types. - // Here we use the $dict_ prefix to represent the dictionary type converter. - auto converter_key = !is_dict_filter_col ? col_name : fmt::format("$dict_{}", col_name); - - if (!_converters.contains(converter_key)) { - std::unique_ptr converter = - converter::ColumnTypeConverter::get_converter(src_type, data_type, - converter::FileFormat::ORC); - if (!converter->support()) { - return Status::InternalError( - "The column type of '{}' has changed and is not supported: ", col_name, - converter->get_error_msg()); - } - // reuse the cached converter - _converters[converter_key] = std::move(converter); - } - converter::ColumnTypeConverter* converter = _converters[converter_key].get(); - ColumnPtr resolved_column = converter->get_column(src_type, doris_column, data_type); - const DataTypePtr& resolved_type = converter->get_type(); - + DataTypePtr resolved_type; + ColumnPtr resolved_column; MutableColumnPtr data_column; - if (resolved_column->is_nullable()) { - SCOPED_RAW_TIMER(&_statistics.decode_null_map_time); - auto* nullable_column = - reinterpret_cast(resolved_column->assume_mutable().get()); - data_column = nullable_column->get_nested_column_ptr(); - NullMap& map_data_column = nullable_column->get_null_map_data(); - auto origin_size = map_data_column.size(); - map_data_column.resize(origin_size + num_values); - if (cvb->hasNulls) { - const auto* cvb_nulls = cvb->notNull.data(); - for (int i = 0; i < num_values; ++i) { - map_data_column[origin_size + i] = !cvb_nulls[i]; + if (orc_column_type != nullptr) { + auto src_type = convert_to_doris_type(orc_column_type); + bool is_dict_filter_col = false; + for (const std::pair& dict_col : _dict_filter_cols) { + if (col_name == dict_col.first) { + src_type = + DataTypeFactory::instance().create_data_type(PrimitiveType::TYPE_INT, true); + is_dict_filter_col = true; + break; + } + } + // If the column can be dictionary filtered, there will be two types. + // It may be plain or a dictionary, because the same field in different stripes may have different types. + // Here we use the $dict_ prefix to represent the dictionary type converter. + auto converter_key = !is_dict_filter_col ? col_name : fmt::format("$dict_{}", col_name); + + if (!_converters.contains(converter_key)) { + std::unique_ptr converter = + converter::ColumnTypeConverter::get_converter(src_type, data_type, + converter::FileFormat::ORC); + if (!converter->support()) { + return Status::InternalError( + "The column type of '{}' has changed and is not supported: ", col_name, + converter->get_error_msg()); + } + // reuse the cached converter + _converters[converter_key] = std::move(converter); + } + converter::ColumnTypeConverter* converter = _converters[converter_key].get(); + resolved_column = converter->get_column(src_type, doris_column, data_type); + resolved_type = converter->get_type(); + + if (resolved_column->is_nullable()) { + SCOPED_RAW_TIMER(&_statistics.decode_null_map_time); + auto* nullable_column = + reinterpret_cast(resolved_column->assume_mutable().get()); + data_column = nullable_column->get_nested_column_ptr(); + + NullMap& map_data_column = nullable_column->get_null_map_data(); + auto origin_size = map_data_column.size(); + map_data_column.resize(origin_size + num_values); + if (cvb->hasNulls) { + const auto* cvb_nulls = cvb->notNull.data(); + for (int i = 0; i < num_values; ++i) { + map_data_column[origin_size + i] = !cvb_nulls[i]; + } + } else { + memset(map_data_column.data() + origin_size, 0, num_values); } } else { - memset(map_data_column.data() + origin_size, 0, num_values); + if (cvb->hasNulls) { + return Status::InternalError("Not nullable column {} has null values in orc file", + col_name); + } + data_column = resolved_column->assume_mutable(); } + + RETURN_IF_ERROR(_fill_doris_data_column( + col_name, data_column, remove_nullable(resolved_type), root_node, orc_column_type, + cvb, num_values)); + // resolve schema change + auto converted_column = doris_column->assume_mutable(); + return converter->convert(resolved_column, converted_column); } else { - if (cvb->hasNulls) { - return Status::InternalError("Not nullable column {} has null values in orc file", - col_name); + auto mutable_column = doris_column->assume_mutable(); + if (mutable_column->is_nullable()) { + auto* nullable_column = static_cast(mutable_column.get()); + nullable_column->insert_many_defaults(num_values); + } else { + mutable_column->insert_many_defaults(num_values); } - data_column = resolved_column->assume_mutable(); } - RETURN_IF_ERROR(_fill_doris_data_column(col_name, data_column, - remove_nullable(resolved_type), root_node, - orc_column_type, cvb, num_values)); - // resolve schema change - auto converted_column = doris_column->assume_mutable(); - return converter->convert(resolved_column, converted_column); + return Status::OK(); } std::string OrcReader::get_field_name_lower_case(const orc::Type* orc_type, int pos) { @@ -2092,7 +2331,7 @@ Status OrcReader::_get_next_block_impl(Block* block, size_t* read_rows, bool* eo if (orc_col_idx == _colname_to_idx.end()) { return Status::InternalError("Wrong read column '{}' in orc file", col_name); } - RETURN_IF_ERROR(_orc_column_to_doris_column( + RETURN_IF_ERROR(_orc_column_to_doris_column( col_name, column_ptr, column_type, _table_info_node_ptr->get_children_node(col_name), _type_map[file_column_name], batch_vec[orc_col_idx->second], _batch->numElements)); @@ -2274,7 +2513,7 @@ Status OrcReader::filter(orc::ColumnVectorBatch& data, uint16_t* sel, uint16_t s if (orc_col_idx == _colname_to_idx.end()) { return Status::InternalError("Wrong read column '{}' in orc file", table_col_name); } - RETURN_IF_ERROR(_orc_column_to_doris_column( + RETURN_IF_ERROR(_orc_column_to_doris_column( table_col_name, column_ptr, column_type, _table_info_node_ptr->get_children_node(table_col_name), _type_map[file_column_name], batch_vec[orc_col_idx->second], data.numElements)); diff --git a/be/src/vec/exec/format/orc/vorc_reader.h b/be/src/vec/exec/format/orc/vorc_reader.h index 858ffa9bdee45a..c41e6be4131149 100644 --- a/be/src/vec/exec/format/orc/vorc_reader.h +++ b/be/src/vec/exec/format/orc/vorc_reader.h @@ -112,6 +112,12 @@ struct LazyReadContext { std::unordered_map predicate_missing_columns; // lazy read missing columns or all missing columns std::unordered_map missing_columns; + + std::vector partial_predicate_columns; + + // Record the number of rows filled in filter phase for lazy materialization + // This is used to check if a column was already processed in filter phase + size_t filter_phase_rows = 0; }; class OrcReader : public GenericReader { @@ -157,7 +163,9 @@ class OrcReader : public GenericReader { const VExprContextSPtrs* not_single_slot_filter_conjuncts, const std::unordered_map* slot_id_to_filter_conjuncts, std::shared_ptr table_info_node_ptr = - TableSchemaChangeHelper::ConstNode::get_instance()); + TableSchemaChangeHelper::ConstNode::get_instance(), + const std::set& column_ids = {}, + const std::set& filter_column_ids = {}); Status set_fill_columns( const std::unordered_map>& @@ -194,7 +202,8 @@ class OrcReader : public GenericReader { std::unordered_map& column_name_to_dict_map, bool* is_stripe_filtered); - static DataTypePtr convert_to_doris_type(const orc::Type* orc_type); + DataTypePtr convert_to_doris_type(const orc::Type* orc_type); + static std::string get_field_name_lower_case(const orc::Type* orc_type, int pos); void set_row_id_column_iterator( @@ -627,7 +636,7 @@ class OrcReader : public GenericReader { size_t _batch_size; int64_t _range_start_offset; int64_t _range_size; - const std::string& _ctz; + std::string _ctz; int32_t _offset_days = 0; cctz::time_zone _time_zone; @@ -650,6 +659,9 @@ class OrcReader : public GenericReader { // file column name to orc type std::unordered_map _type_map; + // Column ID to file original type mapping for handling incomplete MAP type due to column pruning. + std::unordered_map _column_id_to_file_type; + std::unique_ptr _file_input_stream; Statistics _statistics; OrcProfile _orc_profile; @@ -711,6 +723,9 @@ class OrcReader : public GenericReader { std::shared_ptr _table_info_node_ptr = TableSchemaChangeHelper::ConstNode::get_instance(); + std::set _column_ids; + std::set _filter_column_ids; + VExprSPtrs _push_down_exprs; }; diff --git a/be/src/vec/exec/format/parquet/schema_desc.cpp b/be/src/vec/exec/format/parquet/schema_desc.cpp index 82e6e0c9d61728..c022f1e3cfe1fd 100644 --- a/be/src/vec/exec/format/parquet/schema_desc.cpp +++ b/be/src/vec/exec/format/parquet/schema_desc.cpp @@ -176,6 +176,7 @@ Status FieldDescriptor::parse_node_field(const std::vectorname = t_schema.name; + node_field->lower_case_name = to_lower(t_schema.name); node_field->data_type = std::make_shared(make_nullable(child->data_type)); _next_schema_pos = curr_pos + 1; node_field->field_id = t_schema.__isset.field_id ? t_schema.field_id : -1; @@ -193,8 +194,10 @@ Status FieldDescriptor::parse_node_field(const std::vectorname = physical_schema.name; + physical_field->lower_case_name = to_lower(physical_field->name); physical_field->parquet_schema = physical_schema; physical_field->physical_type = physical_schema.type; + physical_field->column_id = UNASSIGNED_COLUMN_ID; // Initialize column_id _physical_fields.push_back(physical_field); physical_field->physical_column_index = cast_set(_physical_fields.size() - 1); auto type = get_doris_type(physical_schema, is_nullable); @@ -393,6 +396,8 @@ Status FieldDescriptor::parse_group_field(const std::vectorname = group_schema.name; + group_field->lower_case_name = to_lower(group_field->name); + group_field->column_id = UNASSIGNED_COLUMN_ID; // Initialize column_id group_field->data_type = std::make_shared(make_nullable(struct_field->data_type)); group_field->field_id = group_schema.__isset.field_id ? group_schema.field_id : -1; @@ -461,6 +466,8 @@ Status FieldDescriptor::parse_list_field(const std::vectorname = first_level.name; + list_field->lower_case_name = to_lower(first_level.name); + list_field->column_id = UNASSIGNED_COLUMN_ID; // Initialize column_id list_field->data_type = std::make_shared(make_nullable(list_field->children[0].data_type)); if (is_optional) { @@ -519,21 +526,24 @@ Status FieldDescriptor::parse_map_field(const std::vectorrepetition_level++; map_field->definition_level++; - map_field->children.resize(1); + // Directly create key and value children instead of intermediate key_value node + map_field->children.resize(2); // map is a repeated node, we should set the `repeated_parent_def_level` of its children as `definition_level` set_child_node_level(map_field, map_field->definition_level); - auto map_kv_field = &map_field->children[0]; - // produce MAP> - RETURN_IF_ERROR(parse_struct_field(t_schemas, curr_pos + 1, map_kv_field)); + + auto key_field = &map_field->children[0]; + auto value_field = &map_field->children[1]; + + // Parse key and value fields directly from the key_value group's children + _next_schema_pos = curr_pos + 2; // Skip key_value group, go directly to key + RETURN_IF_ERROR(parse_node_field(t_schemas, _next_schema_pos, key_field)); + RETURN_IF_ERROR(parse_node_field(t_schemas, _next_schema_pos, value_field)); map_field->name = map_schema.name; - map_field->data_type = std::make_shared( - make_nullable(assert_cast( - remove_nullable(map_kv_field->data_type).get()) - ->get_element(0)), - make_nullable(assert_cast( - remove_nullable(map_kv_field->data_type).get()) - ->get_element(1))); + map_field->lower_case_name = to_lower(map_field->name); + map_field->column_id = UNASSIGNED_COLUMN_ID; // Initialize column_id + map_field->data_type = std::make_shared(make_nullable(key_field->data_type), + make_nullable(value_field->data_type)); if (is_optional) { map_field->data_type = make_nullable(map_field->data_type); } @@ -558,6 +568,8 @@ Status FieldDescriptor::parse_struct_field(const std::vectorchildren[i])); } struct_field->name = struct_schema.name; + struct_field->lower_case_name = to_lower(struct_field->name); + struct_field->column_id = UNASSIGNED_COLUMN_ID; // Initialize column_id struct_field->field_id = struct_schema.__isset.field_id ? struct_schema.field_id : -1; DataTypes res_data_types; @@ -610,6 +622,59 @@ std::string FieldDescriptor::debug_string() const { ss << "]"; return ss.str(); } + +void FieldDescriptor::assign_ids() { + uint64_t next_id = 1; + for (auto& field : _fields) { + field.assign_ids(next_id); + } +} + +const FieldSchema* FieldDescriptor::find_column_by_id(uint64_t column_id) const { + for (const auto& field : _fields) { + if (auto result = field.find_column_by_id(column_id)) { + return result; + } + } + return nullptr; +} + +void FieldSchema::assign_ids(uint64_t& next_id) { + column_id = next_id++; + + for (auto& child : children) { + child.assign_ids(next_id); + } + + max_column_id = next_id - 1; +} + +const FieldSchema* FieldSchema::find_column_by_id(uint64_t target_id) const { + if (column_id == target_id) { + return this; + } + + for (const auto& child : children) { + if (auto result = child.find_column_by_id(target_id)) { + return result; + } + } + + return nullptr; +} + +uint64_t FieldSchema::get_column_id() const { + return column_id; +} + +void FieldSchema::set_column_id(uint64_t id) { + column_id = id; +} + +uint64_t FieldSchema::get_max_column_id() const { + return max_column_id; +} + #include "common/compile_check_end.h" } // namespace doris::vectorized diff --git a/be/src/vec/exec/format/parquet/schema_desc.h b/be/src/vec/exec/format/parquet/schema_desc.h index 09a52a4251af1c..3ba38071406bdd 100644 --- a/be/src/vec/exec/format/parquet/schema_desc.h +++ b/be/src/vec/exec/format/parquet/schema_desc.h @@ -36,8 +36,13 @@ namespace doris::vectorized { #include "common/compile_check_begin.h" + +// Constant for unassigned column IDs +constexpr uint64_t UNASSIGNED_COLUMN_ID = UINT64_MAX; + struct FieldSchema { std::string name; + std::string lower_case_name; // for hms column name case insensitive match // the referenced parquet schema element tparquet::SchemaElement parquet_schema; @@ -56,12 +61,22 @@ struct FieldSchema { //For UInt8 -> Int16,UInt16 -> Int32,UInt32 -> Int64,UInt64 -> Int128. bool is_type_compatibility = false; - FieldSchema() : data_type(std::make_shared()) {} + FieldSchema() + : data_type(std::make_shared()), column_id(UNASSIGNED_COLUMN_ID) {} ~FieldSchema() = default; FieldSchema(const FieldSchema& fieldSchema) = default; std::string debug_string() const; int32_t field_id = -1; + uint64_t column_id = UNASSIGNED_COLUMN_ID; + uint64_t max_column_id = 0; // Maximum column ID for this field and its children + + // Column ID assignment and lookup methods + void assign_ids(uint64_t& next_id); + const FieldSchema* find_column_by_id(uint64_t target_id) const; + uint64_t get_column_id() const; + void set_column_id(uint64_t id); + uint64_t get_max_column_id() const; }; class FieldDescriptor { @@ -133,6 +148,19 @@ class FieldDescriptor { int32_t size() const { return cast_set(_fields.size()); } const std::vector& get_fields_schema() const { return _fields; } + + /** + * Assign stable column IDs to schema fields. + * + * This uses an ORC-compatible encoding so that the results of + * create_column_ids() are consistent across formats. IDs start from 1 + * and are assigned in a pre-order traversal (parent before children). + * After calling this, each FieldSchema will have column_id and + * max_column_id populated. + */ + void assign_ids(); + + const FieldSchema* find_column_by_id(uint64_t column_id) const; }; #include "common/compile_check_end.h" diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp index 49474c9c90f0d7..e7395178c68f8e 100644 --- a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp +++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp @@ -107,45 +107,96 @@ Status ParquetColumnReader::create(io::FileReaderSPtr file, FieldSchema* field, const tparquet::RowGroup& row_group, const RowRanges& row_ranges, const cctz::time_zone* ctz, io::IOContext* io_ctx, std::unique_ptr& reader, - size_t max_buf_size, const tparquet::OffsetIndex* offset_index) { + size_t max_buf_size, const tparquet::OffsetIndex* offset_index, + const std::set& column_ids, + const std::set& filter_column_ids) { if (field->data_type->get_primitive_type() == TYPE_ARRAY) { std::unique_ptr element_reader; RETURN_IF_ERROR(create(file, &field->children[0], row_group, row_ranges, ctz, io_ctx, - element_reader, max_buf_size)); + element_reader, max_buf_size, nullptr, column_ids, + filter_column_ids)); element_reader->set_nested_column(); auto array_reader = ArrayColumnReader::create_unique(row_ranges, ctz, io_ctx); RETURN_IF_ERROR(array_reader->init(std::move(element_reader), field)); + array_reader->_filter_column_ids = filter_column_ids; reader.reset(array_reader.release()); } else if (field->data_type->get_primitive_type() == TYPE_MAP) { std::unique_ptr key_reader; std::unique_ptr value_reader; - RETURN_IF_ERROR(create(file, &field->children[0].children[0], row_group, row_ranges, ctz, - io_ctx, key_reader, max_buf_size)); - RETURN_IF_ERROR(create(file, &field->children[0].children[1], row_group, row_ranges, ctz, - io_ctx, value_reader, max_buf_size)); - key_reader->set_nested_column(); - value_reader->set_nested_column(); + + if (column_ids.empty() || + column_ids.find(field->children[0].get_column_id()) != column_ids.end()) { + // Create key reader + RETURN_IF_ERROR(create(file, &field->children[0], row_group, row_ranges, ctz, io_ctx, + key_reader, max_buf_size, nullptr, column_ids, + filter_column_ids)); + key_reader->set_nested_column(); + } else { + auto skip_reader = std::make_unique(row_ranges, ctz, io_ctx, + &field->children[0]); + key_reader = std::move(skip_reader); + } + + if (column_ids.empty() || + column_ids.find(field->children[1].get_column_id()) != column_ids.end()) { + // Create value reader + RETURN_IF_ERROR(create(file, &field->children[1], row_group, row_ranges, ctz, io_ctx, + value_reader, max_buf_size, nullptr, column_ids, + filter_column_ids)); + value_reader->set_nested_column(); + } else { + auto skip_reader = std::make_unique(row_ranges, ctz, io_ctx, + &field->children[0]); + value_reader = std::move(skip_reader); + } + auto map_reader = MapColumnReader::create_unique(row_ranges, ctz, io_ctx); RETURN_IF_ERROR(map_reader->init(std::move(key_reader), std::move(value_reader), field)); + map_reader->_filter_column_ids = filter_column_ids; reader.reset(map_reader.release()); } else if (field->data_type->get_primitive_type() == TYPE_STRUCT) { std::unordered_map> child_readers; child_readers.reserve(field->children.size()); + int non_skip_reader_idx = -1; for (int i = 0; i < field->children.size(); ++i) { + auto& child = field->children[i]; std::unique_ptr child_reader; - RETURN_IF_ERROR(create(file, &field->children[i], row_group, row_ranges, ctz, io_ctx, - child_reader, max_buf_size)); + if (column_ids.empty() || column_ids.find(child.get_column_id()) != column_ids.end()) { + RETURN_IF_ERROR(create(file, &child, row_group, row_ranges, ctz, io_ctx, + child_reader, max_buf_size, nullptr, column_ids, + filter_column_ids)); + child_reader->set_nested_column(); + child_readers[child.name] = std::move(child_reader); + // Record the first non-SkippingReader + if (non_skip_reader_idx == -1) { + non_skip_reader_idx = i; + } + } else { + auto skip_reader = + std::make_unique(row_ranges, ctz, io_ctx, &child); + skip_reader->_filter_column_ids = filter_column_ids; + child_readers[child.name] = std::move(skip_reader); + } + } + // If all children are SkipReadingReader, force the first child to call create + if (non_skip_reader_idx == -1) { + std::unique_ptr child_reader; + RETURN_IF_ERROR(create(file, &field->children[0], row_group, row_ranges, ctz, io_ctx, + child_reader, max_buf_size, nullptr, column_ids, + filter_column_ids)); child_reader->set_nested_column(); - child_readers[field->children[i].name] = std::move(child_reader); + child_readers[field->children[0].name] = std::move(child_reader); } auto struct_reader = StructColumnReader::create_unique(row_ranges, ctz, io_ctx); RETURN_IF_ERROR(struct_reader->init(std::move(child_readers), field)); + struct_reader->_filter_column_ids = filter_column_ids; reader.reset(struct_reader.release()); } else { const tparquet::ColumnChunk& chunk = row_group.columns[field->physical_column_index]; auto scalar_reader = ScalarColumnReader::create_unique(row_ranges, chunk, offset_index, ctz, io_ctx); RETURN_IF_ERROR(scalar_reader->init(file, field, max_buf_size)); + scalar_reader->_filter_column_ids = filter_column_ids; reader.reset(scalar_reader.release()); } return Status::OK(); @@ -568,7 +619,8 @@ Status ScalarColumnReader::_try_load_dict_page(bool* loaded, bool* has_dict) { Status ScalarColumnReader::read_column_data( ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, - size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter) { + size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter, + int64_t real_column_size) { if (_converter == nullptr) { _converter = parquet::PhysicalToLogicalConverter::get_converter( _field_schema, _field_schema->data_type, type, _ctz, is_dict_filter); @@ -622,7 +674,7 @@ Status ScalarColumnReader::read_column_data( size_t remaining_num_values = read_ranges.count(); if (batch_size >= remaining_num_values && filter_map.can_filter_all(remaining_num_values, _filter_map_index)) { - // We can skip the whole page if the remaining values is filtered by predicate columns + // We can skip the whole page if the remaining values are filtered by predicate columns _filter_map_index += remaining_num_values; _current_row_index += _chunk_reader->remaining_num_values(); RETURN_IF_ERROR(_chunk_reader->skip_page()); @@ -684,7 +736,8 @@ Status ArrayColumnReader::init(std::unique_ptr element_read Status ArrayColumnReader::read_column_data( ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, - size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter) { + size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter, + int64_t real_column_size) { MutableColumnPtr data_column; NullMap* null_map_ptr = nullptr; if (doris_column->is_nullable()) { @@ -736,7 +789,8 @@ Status MapColumnReader::init(std::unique_ptr key_reader, Status MapColumnReader::read_column_data( ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, - size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter) { + size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter, + int64_t real_column_size) { MutableColumnPtr data_column; NullMap* null_map_ptr = nullptr; if (doris_column->is_nullable()) { @@ -768,6 +822,7 @@ Status MapColumnReader::read_column_data( size_t value_rows = 0; bool key_eof = false; bool value_eof = false; + int64_t orig_col_column_size = key_column->size(); RETURN_IF_ERROR(_key_reader->read_column_data(key_column, key_type, root_node->get_key_node(), filter_map, batch_size, &key_rows, &key_eof, @@ -777,11 +832,11 @@ Status MapColumnReader::read_column_data( size_t loop_rows = 0; RETURN_IF_ERROR(_value_reader->read_column_data( value_column, value_type, root_node->get_value_node(), filter_map, - key_rows - value_rows, &loop_rows, &value_eof, is_dict_filter)); + key_rows - value_rows, &loop_rows, &value_eof, is_dict_filter, + key_column->size() - orig_col_column_size)); value_rows += loop_rows; } DCHECK_EQ(key_rows, value_rows); - DCHECK_EQ(key_eof, value_eof); *read_rows = key_rows; *eof = key_eof; @@ -809,7 +864,8 @@ Status StructColumnReader::init( Status StructColumnReader::read_column_data( ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, - size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter) { + size_t batch_size, size_t* read_rows, bool* eof, bool is_dict_filter, + int64_t real_column_size) { MutableColumnPtr data_column; NullMap* null_map_ptr = nullptr; if (doris_column->is_nullable()) { @@ -833,7 +889,9 @@ Status StructColumnReader::read_column_data( const auto* doris_struct_type = assert_cast(remove_nullable(type).get()); int64_t not_missing_column_id = -1; + size_t not_missing_orig_column_size = 0; std::vector missing_column_idxs {}; + std::vector skip_reading_column_idxs {}; _read_column_names.clear(); @@ -843,16 +901,32 @@ Status StructColumnReader::read_column_data( auto& doris_name = doris_struct_type->get_element_name(i); if (!root_node->children_column_exists(doris_name)) { missing_column_idxs.push_back(i); + VLOG_DEBUG << "[ParquetReader] Missing column in schema: column_idx[" << i + << "], doris_name: " << doris_name << " (column not exists in root node)"; continue; } auto file_name = root_node->children_file_column_name(doris_name); + // Check if this is a SkipReadingReader - we should skip it when choosing reference column + // because SkipReadingReader doesn't know the actual data size in nested context + bool is_skip_reader = + dynamic_cast(_child_readers[file_name].get()) != nullptr; + + if (is_skip_reader) { + // Store SkipReadingReader columns to fill them later based on reference column size + skip_reading_column_idxs.push_back(i); + continue; + } + + // Only add non-SkipReadingReader columns to _read_column_names + // This ensures get_rep_level() and get_def_level() return valid levels _read_column_names.emplace_back(file_name); size_t field_rows = 0; bool field_eof = false; if (not_missing_column_id == -1) { not_missing_column_id = i; + not_missing_orig_column_size = doris_field->size(); RETURN_IF_ERROR(_child_readers[file_name]->read_column_data( doris_field, doris_type, root_node->get_children_node(doris_name), filter_map, batch_size, &field_rows, &field_eof, is_dict_filter)); @@ -881,10 +955,77 @@ Status StructColumnReader::read_column_data( } } + int64_t missing_column_sz = -1; + if (not_missing_column_id == -1) { - // TODO: support read struct which columns are all missing - return Status::Corruption("Not support read struct '{}' which columns are all missing", - _field_schema->name); + // All queried columns are missing in the file (e.g., all added after schema change) + // We need to pick a column from _field_schema children that exists in the file for RL/DL reference + std::string reference_file_column_name; + std::unique_ptr* reference_reader = nullptr; + + for (const auto& child : _field_schema->children) { + auto it = _child_readers.find(child.name); + if (it != _child_readers.end()) { + // Skip SkipReadingReader as they don't have valid RL/DL + bool is_skip_reader = dynamic_cast(it->second.get()) != nullptr; + if (!is_skip_reader) { + reference_file_column_name = child.name; + reference_reader = &(it->second); + break; + } + } + } + + if (reference_reader != nullptr) { + // Read the reference column to get correct RL/DL information + // TODO: Optimize by only reading RL/DL without actual data decoding + + // We need to find the FieldSchema for the reference column from _field_schema children + FieldSchema* ref_field_schema = nullptr; + for (auto& child : _field_schema->children) { + if (child.name == reference_file_column_name) { + ref_field_schema = &child; + break; + } + } + + if (ref_field_schema == nullptr) { + return Status::InternalError( + "Cannot find field schema for reference column '{}' in struct '{}'", + reference_file_column_name, _field_schema->name); + } + + // Create a temporary column to hold the data (we'll use its size for missing_column_sz) + ColumnPtr temp_column = ref_field_schema->data_type->create_column(); + auto temp_type = ref_field_schema->data_type; + + size_t field_rows = 0; + bool field_eof = false; + + // Use root_node to get the correct child node for the reference column + // reference_file_column_name is the file column name, use get_children_node_by_file_column_name + auto ref_child_node = + root_node->get_children_node_by_file_column_name(reference_file_column_name); + not_missing_orig_column_size = temp_column->size(); + + RETURN_IF_ERROR((*reference_reader) + ->read_column_data(temp_column, temp_type, ref_child_node, + filter_map, batch_size, &field_rows, + &field_eof, is_dict_filter)); + + *read_rows = field_rows; + *eof = field_eof; + + // Store this reference column name for get_rep_level/get_def_level to use + _read_column_names.emplace_back(reference_file_column_name); + + missing_column_sz = temp_column->size() - not_missing_orig_column_size; + } else { + return Status::Corruption( + "Cannot read struct '{}': all queried columns are missing and no reference " + "column found in file", + _field_schema->name); + } } // This missing_column_sz is not *read_rows. Because read_rows returns the number of rows. @@ -895,8 +1036,27 @@ Status StructColumnReader::read_column_data( // [{4,null},{5,null}] // When you first read subcolumn a, you read 5 data items and the value of *read_rows is 2. // You should insert 5 records into subcolumn b instead of 2. - auto missing_column_sz = doris_struct.get_column(not_missing_column_id).size(); - // fill missing column with null or default value + if (missing_column_sz == -1) { + missing_column_sz = doris_struct.get_column(not_missing_column_id).size() - + not_missing_orig_column_size; + } + + // Fill SkipReadingReader columns with the correct amount of data based on reference column + // Let SkipReadingReader handle the data filling through its read_column_data method + for (auto idx : skip_reading_column_idxs) { + auto& doris_field = doris_struct.get_column_ptr(idx); + auto& doris_type = const_cast(doris_struct_type->get_element(idx)); + auto& doris_name = const_cast(doris_struct_type->get_element_name(idx)); + auto file_name = root_node->children_file_column_name(doris_name); + + size_t field_rows = 0; + bool field_eof = false; + RETURN_IF_ERROR(_child_readers[file_name]->read_column_data( + doris_field, doris_type, root_node->get_children_node(doris_name), filter_map, + missing_column_sz, &field_rows, &field_eof, is_dict_filter, missing_column_sz)); + } + + // Fill truly missing columns (not in root_node) with null or default value for (auto idx : missing_column_idxs) { auto& doris_field = doris_struct.get_column_ptr(idx); auto& doris_type = doris_struct_type->get_element(idx); @@ -910,7 +1070,6 @@ Status StructColumnReader::read_column_data( fill_struct_null_map(_field_schema, *null_map_ptr, this->get_rep_level(), this->get_def_level()); } - return Status::OK(); } #include "common/compile_check_end.h" diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.h b/be/src/vec/exec/format/parquet/vparquet_column_reader.h index 723e43a70ab38e..23d789eda4b573 100644 --- a/be/src/vec/exec/format/parquet/vparquet_column_reader.h +++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.h @@ -123,7 +123,8 @@ class ParquetColumnReader { virtual Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, size_t batch_size, size_t* read_rows, - bool* eof, bool is_dict_filter) = 0; + bool* eof, bool is_dict_filter, + int64_t real_column_size = -1) = 0; virtual Status read_dict_values_to_column(MutableColumnPtr& doris_column, bool* has_dict) { return Status::NotSupported("read_dict_values_to_column is not supported"); @@ -138,7 +139,9 @@ class ParquetColumnReader { const tparquet::RowGroup& row_group, const RowRanges& row_ranges, const cctz::time_zone* ctz, io::IOContext* io_ctx, std::unique_ptr& reader, size_t max_buf_size, - const tparquet::OffsetIndex* offset_index = nullptr); + const tparquet::OffsetIndex* offset_index = nullptr, + const std::set& column_ids = {}, + const std::set& filter_column_ids = {}); void set_nested_column() { _nested_column = true; } virtual const std::vector& get_rep_level() const = 0; virtual const std::vector& get_def_level() const = 0; @@ -147,6 +150,8 @@ class ParquetColumnReader { virtual void reset_filter_map_index() = 0; + FieldSchema* get_field_schema() const { return _field_schema; } + protected: void _generate_read_ranges(RowRange page_row_range, RowRanges* result_ranges) const; @@ -160,6 +165,7 @@ class ParquetColumnReader { int64_t _decode_null_map_time = 0; size_t _filter_map_index = 0; + std::set _filter_column_ids; }; class ScalarColumnReader : public ParquetColumnReader { @@ -176,7 +182,7 @@ class ScalarColumnReader : public ParquetColumnReader { Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, size_t batch_size, size_t* read_rows, bool* eof, - bool is_dict_filter) override; + bool is_dict_filter, int64_t real_column_size = -1) override; Status read_dict_values_to_column(MutableColumnPtr& doris_column, bool* has_dict) override; MutableColumnPtr convert_dict_column_to_string_column(const ColumnInt32* dict_column) override; const std::vector& get_rep_level() const override { return _rep_levels; } @@ -223,7 +229,7 @@ class ArrayColumnReader : public ParquetColumnReader { Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, size_t batch_size, size_t* read_rows, bool* eof, - bool is_dict_filter) override; + bool is_dict_filter, int64_t real_column_size = -1) override; const std::vector& get_rep_level() const override { return _element_reader->get_rep_level(); } @@ -251,7 +257,7 @@ class MapColumnReader : public ParquetColumnReader { Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, size_t batch_size, size_t* read_rows, bool* eof, - bool is_dict_filter) override; + bool is_dict_filter, int64_t real_column_size = -1) override; const std::vector& get_rep_level() const override { return _key_reader->get_rep_level(); @@ -293,7 +299,7 @@ class StructColumnReader : public ParquetColumnReader { Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, const std::shared_ptr& root_node, FilterMap& filter_map, size_t batch_size, size_t* read_rows, bool* eof, - bool is_dict_filter) override; + bool is_dict_filter, int64_t real_column_size = -1) override; const std::vector& get_rep_level() const override { if (!_read_column_names.empty()) { @@ -342,6 +348,89 @@ class StructColumnReader : public ParquetColumnReader { std::vector _read_column_names; //Need to use vector instead of set,see `get_rep_level()` for the reason. }; + +// A special reader that skips actual reading but provides empty data with correct structure +// This is used when a column is not needed but its structure is required (e.g., for map keys) +class SkipReadingReader : public ParquetColumnReader { +public: + SkipReadingReader(const RowRanges& row_ranges, const cctz::time_zone* ctz, + io::IOContext* io_ctx, FieldSchema* field_schema) + : ParquetColumnReader(row_ranges, ctz, io_ctx) { + _field_schema = field_schema; // Use inherited member from base class + VLOG_DEBUG << "[ParquetReader] Created SkipReadingReader for field: " + << _field_schema->name; + } + + Status read_column_data(ColumnPtr& doris_column, const DataTypePtr& type, + const std::shared_ptr& root_node, + FilterMap& filter_map, size_t batch_size, size_t* read_rows, bool* eof, + bool is_dict_filter, int64_t real_column_size = -1) override { + VLOG_DEBUG << "[ParquetReader] SkipReadingReader::read_column_data for field: " + << _field_schema->name << ", batch_size: " << batch_size; + DCHECK(real_column_size >= 0); // real_column_size for filtered column size. + + // Simulate reading without actually reading data + // Fill with default/null values based on column type + MutableColumnPtr data_column = doris_column->assume_mutable(); + + if (real_column_size > 0) { + if (doris_column->is_nullable()) { + auto* nullable_column = static_cast(data_column.get()); + nullable_column->insert_many_defaults(real_column_size); + } else { + // For non-nullable columns, insert appropriate default values + for (size_t i = 0; i < real_column_size; ++i) { + data_column->insert_default(); + } + } + } + + *read_rows = batch_size; // Indicate we "read" batch_size rows + *eof = false; // We can always provide more empty data + + VLOG_DEBUG << "[ParquetReader] SkipReadingReader generated " << batch_size + << " default values for field: " << _field_schema->name; + + return Status::OK(); + } + + static std::unique_ptr create_unique(const RowRanges& row_ranges, + cctz::time_zone* ctz, + io::IOContext* io_ctx, + FieldSchema* field_schema) { + return std::make_unique(row_ranges, ctz, io_ctx, field_schema); + } + + // These methods should not be called for SkipReadingReader + // If they are called, it indicates a logic error in the code + const std::vector& get_rep_level() const override { + LOG(FATAL) << "get_rep_level() should not be called on SkipReadingReader for field: " + << _field_schema->name + << ". This indicates the SkipReadingReader was incorrectly used as a reference " + "column."; + __builtin_unreachable(); + } + + const std::vector& get_def_level() const override { + LOG(FATAL) << "get_def_level() should not be called on SkipReadingReader for field: " + << _field_schema->name + << ". This indicates the SkipReadingReader was incorrectly used as a reference " + "column."; + __builtin_unreachable(); + } + + // Implement required pure virtual methods from base class + Statistics statistics() override { + return Statistics(); // Return empty statistics + } + + void close() override { + // Nothing to close for skip reading + } + + void reset_filter_map_index() override { _filter_map_index = 0; } +}; + #include "common/compile_check_end.h" }; // namespace doris::vectorized diff --git a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp index 0e31663fb00515..b33596feb89dcd 100644 --- a/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp +++ b/be/src/vec/exec/format/parquet/vparquet_group_reader.cpp @@ -83,7 +83,9 @@ RowGroupReader::RowGroupReader(io::FileReaderSPtr file_reader, const int32_t row_group_id, const tparquet::RowGroup& row_group, const cctz::time_zone* ctz, io::IOContext* io_ctx, const PositionDeleteContext& position_delete_ctx, - const LazyReadContext& lazy_read_ctx, RuntimeState* state) + const LazyReadContext& lazy_read_ctx, RuntimeState* state, + const std::set& column_ids, + const std::set& filter_column_ids) : _file_reader(file_reader), _read_table_columns(read_columns), _row_group_id(row_group_id), @@ -94,7 +96,9 @@ RowGroupReader::RowGroupReader(io::FileReaderSPtr file_reader, _position_delete_ctx(position_delete_ctx), _lazy_read_ctx(lazy_read_ctx), _state(state), - _obj_pool(new ObjectPool()) {} + _obj_pool(new ObjectPool()), + _column_ids(column_ids), + _filter_column_ids(filter_column_ids) {} RowGroupReader::~RowGroupReader() { _column_readers.clear(); @@ -133,9 +137,9 @@ Status RowGroupReader::init( const tparquet::OffsetIndex* offset_index = col_offsets.find(physical_index) != col_offsets.end() ? &col_offsets[physical_index] : nullptr; - RETURN_IF_ERROR(ParquetColumnReader::create(_file_reader, field, _row_group_meta, - _read_ranges, _ctz, _io_ctx, reader, - max_buf_size, offset_index)); + RETURN_IF_ERROR(ParquetColumnReader::create( + _file_reader, field, _row_group_meta, _read_ranges, _ctz, _io_ctx, reader, + max_buf_size, offset_index, _column_ids, _filter_column_ids)); if (reader == nullptr) { VLOG_DEBUG << "Init row group(" << _row_group_id << ") reader failed"; return Status::Corruption("Init row group reader failed"); @@ -323,8 +327,8 @@ Status RowGroupReader::next_batch(Block* block, size_t batch_size, size_t* read_ return _do_lazy_read(block, batch_size, read_rows, batch_eof); } else { FilterMap filter_map; - RETURN_IF_ERROR(_read_column_data(block, _lazy_read_ctx.all_read_columns, batch_size, - read_rows, batch_eof, filter_map)); + RETURN_IF_ERROR((_read_column_data(block, _lazy_read_ctx.all_read_columns, batch_size, + read_rows, batch_eof, filter_map))); RETURN_IF_ERROR( _fill_partition_columns(block, *read_rows, _lazy_read_ctx.partition_columns)); RETURN_IF_ERROR(_fill_missing_columns(block, *read_rows, _lazy_read_ctx.missing_columns)); @@ -429,9 +433,18 @@ Status RowGroupReader::_read_column_data(Block* block, RETURN_IF_ERROR(_column_readers[read_col_name]->read_column_data( column_ptr, column_type, _table_info_node_ptr->get_children_node(read_col_name), filter_map, batch_size - col_read_rows, &loop_rows, &col_eof, is_dict_filter)); + VLOG_DEBUG << "[RowGroupReader] column '" << read_col_name + << "' loop_rows=" << loop_rows << " col_read_rows_so_far=" << col_read_rows + << std::endl; col_read_rows += loop_rows; } + VLOG_DEBUG << "[RowGroupReader] column '" << read_col_name + << "' read_rows=" << col_read_rows << std::endl; if (batch_read_rows > 0 && batch_read_rows != col_read_rows) { + LOG(WARNING) << "[RowGroupReader] Mismatched read rows among parquet columns. " + "previous_batch_read_rows=" + << batch_read_rows << ", current_column='" << read_col_name + << "', current_col_read_rows=" << col_read_rows; return Status::Corruption("Can't read the same number of rows among parquet columns"); } batch_read_rows = col_read_rows; diff --git a/be/src/vec/exec/format/parquet/vparquet_group_reader.h b/be/src/vec/exec/format/parquet/vparquet_group_reader.h index 6d9408ba8f0ded..265a95f4470537 100644 --- a/be/src/vec/exec/format/parquet/vparquet_group_reader.h +++ b/be/src/vec/exec/format/parquet/vparquet_group_reader.h @@ -150,7 +150,9 @@ class RowGroupReader : public ProfileCollector { const int32_t row_group_id, const tparquet::RowGroup& row_group, const cctz::time_zone* ctz, io::IOContext* io_ctx, const PositionDeleteContext& position_delete_ctx, - const LazyReadContext& lazy_read_ctx, RuntimeState* state); + const LazyReadContext& lazy_read_ctx, RuntimeState* state, + const std::set& column_ids, + const std::set& filter_column_ids); ~RowGroupReader(); Status init(const FieldDescriptor& schema, RowRanges& row_ranges, @@ -187,9 +189,11 @@ class RowGroupReader : public ProfileCollector { private: Status _read_empty_batch(size_t batch_size, size_t* read_rows, bool* batch_eof, bool* modify_row_ids); + Status _read_column_data(Block* block, const std::vector& columns, size_t batch_size, size_t* read_rows, bool* batch_eof, FilterMap& filter_map); + Status _do_lazy_read(Block* block, size_t batch_size, size_t* read_rows, bool* batch_eof); Status _rebuild_filter_map(FilterMap& filter_map, DorisUniqueBufferPtr& filter_map_data, @@ -248,6 +252,8 @@ class RowGroupReader : public ProfileCollector { std::vector> _dict_filter_cols; RuntimeState* _state = nullptr; std::shared_ptr _obj_pool; + const std::set& _column_ids; + const std::set& _filter_column_ids; bool _is_row_group_filtered = false; RowGroupIndex _current_row_group_idx {0, 0, 0}; diff --git a/be/src/vec/exec/format/parquet/vparquet_reader.cpp b/be/src/vec/exec/format/parquet/vparquet_reader.cpp index 6a93821f418b6a..fb30e5d4a613bf 100644 --- a/be/src/vec/exec/format/parquet/vparquet_reader.cpp +++ b/be/src/vec/exec/format/parquet/vparquet_reader.cpp @@ -317,7 +317,8 @@ Status ParquetReader::init_reader( const std::unordered_map* colname_to_slot_id, const VExprContextSPtrs* not_single_slot_filter_conjuncts, const std::unordered_map* slot_id_to_filter_conjuncts, - std::shared_ptr table_info_node_ptr, bool filter_groups) { + std::shared_ptr table_info_node_ptr, bool filter_groups, + const std::set& column_ids, const std::set& filter_column_ids) { _tuple_descriptor = tuple_descriptor; _row_descriptor = row_descriptor; _colname_to_slot_id = colname_to_slot_id; @@ -325,6 +326,8 @@ Status ParquetReader::init_reader( _slot_id_to_filter_conjuncts = slot_id_to_filter_conjuncts; _table_info_node_ptr = table_info_node_ptr; _filter_groups = filter_groups; + _column_ids = column_ids; + _filter_column_ids = filter_column_ids; RETURN_IF_ERROR(_open_file()); _t_metadata = &(_file_metadata->to_thrift()); @@ -769,7 +772,7 @@ Status ParquetReader::_next_row_group_reader() { _io_ctx->file_reader_stats) : group_file_reader, _read_table_columns, _current_row_group_index.row_group_id, row_group, _ctz, _io_ctx, - position_delete_ctx, _lazy_read_ctx, _state)); + position_delete_ctx, _lazy_read_ctx, _state, _column_ids, _filter_column_ids)); _row_group_eof = false; _current_group_reader->set_current_row_group_idx(_current_row_group_index); @@ -789,27 +792,30 @@ std::vector ParquetReader::_generate_random_access_ranges( size_t total_io_size = 0; std::function scalar_range = [&](const FieldSchema* field, const tparquet::RowGroup& row_group) { - if (field->data_type->get_primitive_type() == TYPE_ARRAY) { - scalar_range(&field->children[0], row_group); - } else if (field->data_type->get_primitive_type() == TYPE_MAP) { - scalar_range(&field->children[0].children[0], row_group); - scalar_range(&field->children[0].children[1], row_group); - } else if (field->data_type->get_primitive_type() == TYPE_STRUCT) { - for (int i = 0; i < field->children.size(); ++i) { - scalar_range(&field->children[i], row_group); + if (_column_ids.empty() || + _column_ids.find(field->get_column_id()) != _column_ids.end()) { + if (field->data_type->get_primitive_type() == TYPE_ARRAY) { + scalar_range(&field->children[0], row_group); + } else if (field->data_type->get_primitive_type() == TYPE_MAP) { + scalar_range(&field->children[0], row_group); + scalar_range(&field->children[1], row_group); + } else if (field->data_type->get_primitive_type() == TYPE_STRUCT) { + for (int i = 0; i < field->children.size(); ++i) { + scalar_range(&field->children[i], row_group); + } + } else { + const tparquet::ColumnChunk& chunk = + row_group.columns[field->physical_column_index]; + auto& chunk_meta = chunk.meta_data; + int64_t chunk_start = has_dict_page(chunk_meta) + ? chunk_meta.dictionary_page_offset + : chunk_meta.data_page_offset; + int64_t chunk_end = chunk_start + chunk_meta.total_compressed_size; + DCHECK_GE(chunk_start, last_chunk_end); + result.emplace_back(chunk_start, chunk_end); + total_io_size += chunk_meta.total_compressed_size; + last_chunk_end = chunk_end; } - } else { - const tparquet::ColumnChunk& chunk = - row_group.columns[field->physical_column_index]; - auto& chunk_meta = chunk.meta_data; - int64_t chunk_start = has_dict_page(chunk_meta) - ? chunk_meta.dictionary_page_offset - : chunk_meta.data_page_offset; - int64_t chunk_end = chunk_start + chunk_meta.total_compressed_size; - DCHECK_GE(chunk_start, last_chunk_end); - result.emplace_back(chunk_start, chunk_end); - total_io_size += chunk_meta.total_compressed_size; - last_chunk_end = chunk_end; } }; const tparquet::RowGroup& row_group = _t_metadata->row_groups[group.row_group_id]; diff --git a/be/src/vec/exec/format/parquet/vparquet_reader.h b/be/src/vec/exec/format/parquet/vparquet_reader.h index e081535e216846..c3c73d98bea398 100644 --- a/be/src/vec/exec/format/parquet/vparquet_reader.h +++ b/be/src/vec/exec/format/parquet/vparquet_reader.h @@ -121,7 +121,8 @@ class ParquetReader : public GenericReader, public ExprPushDownHelper { const std::unordered_map* slot_id_to_filter_conjuncts, std::shared_ptr table_info_node_ptr = TableSchemaChangeHelper::ConstNode::get_instance(), - bool filter_groups = true); + bool filter_groups = true, const std::set& column_ids = {}, + const std::set& filter_column_ids = {}); Status get_next_block(Block* block, size_t* read_rows, bool* eof) override; @@ -328,6 +329,9 @@ class ParquetReader : public GenericReader, public ExprPushDownHelper { -1}; bool _filter_groups = true; + std::set _column_ids; + std::set _filter_column_ids; + // Since the filtering conditions for topn are dynamic, the filtering is delayed until create next row group reader. VExprSPtrs _top_runtime_vexprs; std::vector> _push_down_predicates; diff --git a/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.cpp b/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.cpp new file mode 100644 index 00000000000000..9c97747e5a4767 --- /dev/null +++ b/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.cpp @@ -0,0 +1,168 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/hive/hive_orc_nested_column_utils.h" + +#include +#include +#include +#include +#include +#include + +#include "common/logging.h" +#include "orc/Type.hh" +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +void HiveOrcNestedColumnUtils::extract_nested_column_ids( + const orc::Type& type, const std::vector>& paths, + std::set& column_ids) { + std::unordered_map>> + child_paths_by_table_col_name; + for (const auto& path : paths) { + if (!path.empty()) { + std::string first_table_col_name = path[0]; + std::vector remaining; + if (path.size() > 1) { + remaining.assign(path.begin() + 1, path.end()); + } + child_paths_by_table_col_name[first_table_col_name].push_back(std::move(remaining)); + } + } + + // Track whether any child column was added to determine if parent should be included + bool has_child_columns = false; + + // For MAP type, normalize wildcard "*" to explicit KEYS/VALUES access + // Wildcard in MAP context means accessing both map keys and values + // Normalization logic: + // path: ["map_col", "*"] → ["map_col", "VALUES"] + ["map_col", "KEYS"] + // path: ["map_col", "*", "field"] → ["map_col", "VALUES", "field"] + ["map_col", "KEYS"] + if (type.getKind() == orc::TypeKind::MAP) { + auto wildcard_it = child_paths_by_table_col_name.find("*"); + if (wildcard_it != child_paths_by_table_col_name.end()) { + auto& wildcard_paths = wildcard_it->second; + + // All wildcard paths go to VALUES + auto& values_paths = child_paths_by_table_col_name["VALUES"]; + values_paths.insert(values_paths.end(), wildcard_paths.begin(), wildcard_paths.end()); + + // Always add KEYS for wildcard access + auto& keys_paths = child_paths_by_table_col_name["KEYS"]; + // Add an empty path to request full KEYS + std::vector empty_path; + keys_paths.push_back(empty_path); + + // Remove wildcard entry as it's been expanded + child_paths_by_table_col_name.erase(wildcard_it); + } + } + + for (uint64_t i = 0; i < type.getSubtypeCount(); ++i) { + const orc::Type* child = type.getSubtype(i); + + std::string child_field_name; + switch (type.getKind()) { + case orc::TypeKind::STRUCT: + child_field_name = to_lower(type.getFieldName(i)); + break; + case orc::TypeKind::LIST: + child_field_name = "*"; + break; + case orc::TypeKind::MAP: + // After wildcard normalization above, all MAP accesses are explicit KEYS/VALUES + // Simply assign the appropriate field name based on which child we're processing + if (i == 0) { + child_field_name = "KEYS"; + } else if (i == 1) { + child_field_name = "VALUES"; + } + + // Special handling for Orc MAP structure: + // When accessing only VALUES, we still need KEY structure for deduplicate_keys + // Check if we're at key child (i==0) and only VALUES is requested (no KEYS) + if (i == 0) { + bool has_keys_access = child_paths_by_table_col_name.find("KEYS") != + child_paths_by_table_col_name.end(); + bool has_values_access = child_paths_by_table_col_name.find("VALUES") != + child_paths_by_table_col_name.end(); + + // If only VALUES is accessed (not KEYS), still include key structure for deduplicate_keys + if (!has_keys_access && has_values_access) { + uint64_t key_start_id = child->getColumnId(); + uint64_t key_max_id = child->getMaximumColumnId(); + for (uint64_t id = key_start_id; id <= key_max_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + continue; // Skip further processing of key child + } + } + break; + default: + child_field_name = ""; + break; + } + + if (child_field_name.empty()) { + continue; + } + + const auto child_paths_it = child_paths_by_table_col_name.find(child_field_name); + + if (child_paths_it != child_paths_by_table_col_name.end()) { + const auto& child_paths = child_paths_it->second; + + // Check if any child path is empty (meaning full child needed) + bool needs_full_child = + std::any_of(child_paths.begin(), child_paths.end(), + [](const std::vector& path) { return path.empty(); }); + + if (needs_full_child) { + uint64_t start_id = child->getColumnId(); + uint64_t max_column_id = child->getMaximumColumnId(); + for (uint64_t id = start_id; id <= max_column_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + } else { + // Store current size to check if recursive call added any columns + size_t before_size = column_ids.size(); + + // Recursively extract from child + extract_nested_column_ids(*child, child_paths, column_ids); + + // Check if recursive call added any columns + if (column_ids.size() > before_size) { + has_child_columns = true; + }; + } + } + } + + // If any child columns were added, also add the parent column ID + // This ensures parent struct/container nodes are included when their children are needed + if (has_child_columns) { + // Set automatically handles deduplication, so no need to check if it already exists + column_ids.insert(type.getColumnId()); + } +} + +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.h b/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.h new file mode 100644 index 00000000000000..1e1968c09b9f8e --- /dev/null +++ b/be/src/vec/exec/format/table/hive/hive_orc_nested_column_utils.h @@ -0,0 +1,43 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#pragma once + +#include +#include +#include +#include +#include + +#include "vec/exec/format/table/table_format_reader.h" + +namespace orc { +class Type; +} // namespace orc + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +class HiveOrcNestedColumnUtils { +public: + static void extract_nested_column_ids(const orc::Type& type, + const std::vector>& paths, + std::set& column_ids); +}; + +#include "common/compile_check_end.h" +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.cpp b/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.cpp new file mode 100644 index 00000000000000..c2223c2aa18954 --- /dev/null +++ b/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.cpp @@ -0,0 +1,171 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/hive/hive_parquet_nested_column_utils.h" + +#include +#include +#include +#include +#include +#include + +#include "vec/exec/format/parquet/schema_desc.h" +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +void HiveParquetNestedColumnUtils::extract_nested_column_ids( + const FieldSchema& field_schema, const std::vector>& paths, + std::set& column_ids) { + // Group paths by first field_id + std::unordered_map>> + child_paths_by_table_col_name; + + for (const auto& path : paths) { + if (!path.empty()) { + std::string first_table_col_name = path[0]; + std::vector remaining; + if (path.size() > 1) { + remaining.assign(path.begin() + 1, path.end()); + } + child_paths_by_table_col_name[first_table_col_name].push_back(std::move(remaining)); + } + } + + // Track whether any child column was added to determine if parent should be included + bool has_child_columns = false; + + // For MAP type, normalize wildcard "*" to explicit KEYS/VALUES access + // Wildcard in MAP context means accessing both map keys and values + // Normalization logic: + // path: ["map_col", "*"] → ["map_col", "VALUES"] + ["map_col", "KEYS"] + // path: ["map_col", "*", "field"] → ["map_col", "VALUES", "field"] + ["map_col", "KEYS"] + if (field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_MAP) { + auto wildcard_it = child_paths_by_table_col_name.find("*"); + if (wildcard_it != child_paths_by_table_col_name.end()) { + auto& wildcard_paths = wildcard_it->second; + + // All wildcard paths go to VALUES + auto& values_paths = child_paths_by_table_col_name["VALUES"]; + values_paths.insert(values_paths.end(), wildcard_paths.begin(), wildcard_paths.end()); + + // Always add KEYS for wildcard access + auto& keys_paths = child_paths_by_table_col_name["KEYS"]; + // Add an empty path to request full KEYS + std::vector empty_path; + keys_paths.push_back(empty_path); + + // Remove wildcard entry as it's been expanded + child_paths_by_table_col_name.erase(wildcard_it); + } + } + + // Efficiently traverse children + for (uint64_t i = 0; i < field_schema.children.size(); ++i) { + const auto& child = field_schema.children[i]; + std::string child_field_name; + + bool is_list = field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_ARRAY; + bool is_map = field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_MAP; + + if (is_list) { + child_field_name = "*"; + } else if (is_map) { + // After wildcard normalization above, all MAP accesses are explicit KEYS/VALUES + // Simply assign the appropriate field name based on which child we're processing + if (i == 0) { + child_field_name = "KEYS"; + } else if (i == 1) { + child_field_name = "VALUES"; + } + + // Special handling for Parquet MAP structure: + // When accessing only VALUES, we still need KEY structure for levels + // Check if we're at key child (i==0) and only VALUES is requested (no KEYS) + if (i == 0) { + bool has_keys_access = child_paths_by_table_col_name.find("KEYS") != + child_paths_by_table_col_name.end(); + bool has_values_access = child_paths_by_table_col_name.find("VALUES") != + child_paths_by_table_col_name.end(); + + // If only VALUES is accessed (not KEYS), still include key structure for RL/DL + if (!has_keys_access && has_values_access) { + // For map_values() queries, we need key's structure for correct RL/DL parsing. + // If key is a nested type (e.g., STRUCT), RL/DL info is stored at leaf columns. + // Add all column IDs from key's start to max (all leaves + intermediate nodes). + uint64_t key_start_id = child.get_column_id(); + uint64_t key_max_id = child.get_max_column_id(); + for (uint64_t id = key_start_id; id <= key_max_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + continue; // Skip further processing of key child + } + } + + } else { + child_field_name = child.lower_case_name; + } + + if (child_field_name.empty()) { + continue; + } + + auto child_paths_it = child_paths_by_table_col_name.find(child_field_name); + if (child_paths_it != child_paths_by_table_col_name.end()) { + const auto& child_paths = child_paths_it->second; + + // Check if any child path is empty (meaning full child needed) + bool needs_full_child = + std::any_of(child_paths.begin(), child_paths.end(), + [](const std::vector& path) { return path.empty(); }); + + if (needs_full_child) { + // Add all column IDs from current child node to max_column_id + // This efficiently handles all nested/complex cases in one loop + uint64_t start_id = child.get_column_id(); + uint64_t max_column_id = child.get_max_column_id(); + for (uint64_t id = start_id; id <= max_column_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + } else { + // Store current size to check if recursive call added any columns + size_t before_size = column_ids.size(); + + // Recursively extract from child + extract_nested_column_ids(child, child_paths, column_ids); + + // Check if recursive call added any columns + if (column_ids.size() > before_size) { + has_child_columns = true; + } + } + } + } + + // If any child columns were added, also add the parent column ID + // This ensures parent struct/container nodes are included when their children are needed + if (has_child_columns) { + // Set automatically handles deduplication, so no need to check if it already exists + column_ids.insert(field_schema.get_column_id()); + } +} + +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.h b/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.h new file mode 100644 index 00000000000000..6b57a0a3a3846c --- /dev/null +++ b/be/src/vec/exec/format/table/hive/hive_parquet_nested_column_utils.h @@ -0,0 +1,41 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#pragma once + +#include +#include +#include +#include +#include + +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +struct FieldSchema; + +class HiveParquetNestedColumnUtils { +public: + static void extract_nested_column_ids(const FieldSchema& field_schema, + const std::vector>& paths, + std::set& column_ids); +}; + +#include "common/compile_check_end.h" +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/hive_reader.cpp b/be/src/vec/exec/format/table/hive_reader.cpp index ebbd682b06bd24..35ae936cc27b3b 100644 --- a/be/src/vec/exec/format/table/hive_reader.cpp +++ b/be/src/vec/exec/format/table/hive_reader.cpp @@ -21,6 +21,9 @@ #include "common/status.h" #include "runtime/runtime_state.h" +#include "vec/exec/format/table/hive/hive_orc_nested_column_utils.h" +#include "vec/exec/format/table/hive/hive_parquet_nested_column_utils.h" +#include "vec/exec/format/table/nested_column_access_helper.h" namespace doris::vectorized { #include "common/compile_check_begin.h" @@ -49,7 +52,7 @@ Status HiveOrcReader::init_reader( // hive1 / use index std::map slot_map; // table_name to slot for (const auto& slot : tuple_descriptor->slots()) { - slot_map.emplace(slot->col_name(), slot); + slot_map.emplace(slot->col_name_lower_case(), slot); } // For top-level columns, use indexes to match, and for sub-columns, still use name to match columns. @@ -75,9 +78,134 @@ Status HiveOrcReader::init_reader( } } + auto column_id_result = ColumnIdResult(); + if (_state->query_options().hive_orc_use_column_names && !is_hive_col_name) { + column_id_result = _create_column_ids(orc_type_ptr, tuple_descriptor); + } else { + column_id_result = + _create_column_ids_by_top_level_col_index(orc_type_ptr, tuple_descriptor); + } + + const auto& column_ids = column_id_result.column_ids; + const auto& filter_column_ids = column_id_result.filter_column_ids; + return orc_reader->init_reader(&read_table_col_names, conjuncts, false, tuple_descriptor, row_descriptor, not_single_slot_filter_conjuncts, - slot_id_to_filter_conjuncts, table_info_node_ptr); + slot_id_to_filter_conjuncts, table_info_node_ptr, column_ids, + filter_column_ids); +} + +ColumnIdResult HiveOrcReader::_create_column_ids(const orc::Type* orc_type, + const TupleDescriptor* tuple_descriptor) { + // map top-level table column name (lower-cased) -> orc::Type* + std::unordered_map table_col_name_to_orc_type_map; + for (uint64_t i = 0; i < orc_type->getSubtypeCount(); ++i) { + auto orc_sub_type = orc_type->getSubtype(i); + if (!orc_sub_type) continue; + + std::string table_col_name = to_lower(orc_type->getFieldName(i)); + table_col_name_to_orc_type_map[table_col_name] = orc_sub_type; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level orc field + auto process_access_paths = [](const orc::Type* orc_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + orc_field, access_paths, out_ids, + [](const orc::Type* type) { return type->getColumnId(); }, + [](const orc::Type* type) { return type->getMaximumColumnId(); }, + HiveOrcNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = table_col_name_to_orc_type_map.find(slot->col_name_lower_case()); + if (it == table_col_name_to_orc_type_map.end()) { + // Column not found in file + continue; + } + const orc::Type* orc_field = it->second; + + // primitive (non-nested) types + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(orc_field->getColumnId()); + if (slot->is_predicate()) { + filter_column_ids.insert(orc_field->getColumnId()); + } + continue; + } + + // complex types + const auto& all_access_paths = slot->all_access_paths(); + process_access_paths(orc_field, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(orc_field, predicate_access_paths, filter_column_ids); + } + } + + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); +} + +ColumnIdResult HiveOrcReader::_create_column_ids_by_top_level_col_index( + const orc::Type* orc_type, const TupleDescriptor* tuple_descriptor) { + // map top-level table column position -> orc::Type* + std::unordered_map table_col_pos_to_orc_type_map; + for (uint64_t i = 0; i < orc_type->getSubtypeCount(); ++i) { + auto orc_sub_type = orc_type->getSubtype(i); + if (!orc_sub_type) continue; + + table_col_pos_to_orc_type_map[i] = orc_sub_type; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level orc field + auto process_access_paths = [](const orc::Type* orc_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + orc_field, access_paths, out_ids, + [](const orc::Type* type) { return type->getColumnId(); }, + [](const orc::Type* type) { return type->getMaximumColumnId(); }, + HiveOrcNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = table_col_pos_to_orc_type_map.find(slot->col_pos()); + if (it == table_col_pos_to_orc_type_map.end()) { + // Column not found in file + continue; + } + const orc::Type* orc_field = it->second; + + // primitive (non-nested) types + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(orc_field->getColumnId()); + if (slot->is_predicate()) { + filter_column_ids.insert(orc_field->getColumnId()); + } + continue; + } + + const auto& all_access_paths = slot->all_access_paths(); + // complex types + process_access_paths(orc_field, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(orc_field, predicate_access_paths, filter_column_ids); + } + } + + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); } Status HiveParquetReader::init_reader( @@ -98,7 +226,7 @@ Status HiveParquetReader::init_reader( } else { // use idx std::map slot_map; //table_name to slot for (const auto& slot : tuple_descriptor->slots()) { - slot_map.emplace(slot->col_name(), slot); + slot_map.emplace(slot->col_name_lower_case(), slot); } // For top-level columns, use indexes to match, and for sub-columns, still use name to match columns. @@ -140,9 +268,144 @@ Status HiveParquetReader::init_reader( } } + auto column_id_result = ColumnIdResult(); + if (_state->query_options().hive_parquet_use_column_names) { + column_id_result = _create_column_ids(field_desc, tuple_descriptor); + } else { + column_id_result = _create_column_ids_by_top_level_col_index(field_desc, tuple_descriptor); + } + + const auto& column_ids = column_id_result.column_ids; + const auto& filter_column_ids = column_id_result.filter_column_ids; + + RETURN_IF_ERROR(init_row_filters()); + return parquet_reader->init_reader( read_table_col_names, conjuncts, tuple_descriptor, row_descriptor, colname_to_slot_id, - not_single_slot_filter_conjuncts, slot_id_to_filter_conjuncts, table_info_node_ptr); + not_single_slot_filter_conjuncts, slot_id_to_filter_conjuncts, table_info_node_ptr, + true, column_ids, filter_column_ids); +} + +ColumnIdResult HiveParquetReader::_create_column_ids(const FieldDescriptor* field_desc, + const TupleDescriptor* tuple_descriptor) { + // First, assign column IDs to the field descriptor + auto* mutable_field_desc = const_cast(field_desc); + mutable_field_desc->assign_ids(); + + // map top-level table column name (lower-cased) -> FieldSchema* + std::unordered_map table_col_name_to_field_schema_map; + for (int i = 0; i < field_desc->size(); ++i) { + auto field_schema = field_desc->get_column(i); + if (!field_schema) continue; + + table_col_name_to_field_schema_map[field_schema->lower_case_name] = field_schema; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level parquet field + auto process_access_paths = [](const FieldSchema* parquet_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + parquet_field, access_paths, out_ids, + [](const FieldSchema* field) { return field->get_column_id(); }, + [](const FieldSchema* field) { return field->get_max_column_id(); }, + HiveParquetNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = table_col_name_to_field_schema_map.find(slot->col_name_lower_case()); + if (it == table_col_name_to_field_schema_map.end()) { + // Column not found in file + continue; + } + auto field_schema = it->second; + + // primitive (non-nested) types + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(field_schema->column_id); + + if (slot->is_predicate()) { + filter_column_ids.insert(field_schema->column_id); + } + continue; + } + + // complex types + const auto& all_access_paths = slot->all_access_paths(); + process_access_paths(field_schema, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(field_schema, predicate_access_paths, filter_column_ids); + } + } + + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); +} + +ColumnIdResult HiveParquetReader::_create_column_ids_by_top_level_col_index( + const FieldDescriptor* field_desc, const TupleDescriptor* tuple_descriptor) { + // First, assign column IDs to the field descriptor + auto* mutable_field_desc = const_cast(field_desc); + mutable_field_desc->assign_ids(); + + // map top-level table column position -> FieldSchema* + std::unordered_map table_col_pos_to_field_schema_map; + for (int i = 0; i < field_desc->size(); ++i) { + auto field_schema = field_desc->get_column(i); + if (!field_schema) continue; + + table_col_pos_to_field_schema_map[i] = field_schema; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level parquet field + auto process_access_paths = [](const FieldSchema* parquet_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + parquet_field, access_paths, out_ids, + [](const FieldSchema* field) { return field->get_column_id(); }, + [](const FieldSchema* field) { return field->get_max_column_id(); }, + HiveParquetNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = table_col_pos_to_field_schema_map.find(slot->col_pos()); + if (it == table_col_pos_to_field_schema_map.end()) { + // Column not found in file + continue; + } + auto field_schema = it->second; + + // primitive (non-nested) types + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(field_schema->column_id); + + if (slot->is_predicate()) { + filter_column_ids.insert(field_schema->column_id); + } + continue; + } + + // complex types + const auto& all_access_paths = slot->all_access_paths(); + process_access_paths(field_schema, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(field_schema, predicate_access_paths, filter_column_ids); + } + } + + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); } #include "common/compile_check_end.h" diff --git a/be/src/vec/exec/format/table/hive_reader.h b/be/src/vec/exec/format/table/hive_reader.h index 02174eb81faf8a..a817209f31c42f 100644 --- a/be/src/vec/exec/format/table/hive_reader.h +++ b/be/src/vec/exec/format/table/hive_reader.h @@ -64,6 +64,13 @@ class HiveOrcReader final : public HiveReader { const RowDescriptor* row_descriptor, const VExprContextSPtrs* not_single_slot_filter_conjuncts, const std::unordered_map* slot_id_to_filter_conjuncts); + +private: + static ColumnIdResult _create_column_ids(const orc::Type* orc_type, + const TupleDescriptor* tuple_descriptor); + + static ColumnIdResult _create_column_ids_by_top_level_col_index( + const orc::Type* orc_type, const TupleDescriptor* tuple_descriptor); }; class HiveParquetReader final : public HiveReader { @@ -84,6 +91,13 @@ class HiveParquetReader final : public HiveReader { const std::unordered_map* colname_to_slot_id, const VExprContextSPtrs* not_single_slot_filter_conjuncts, const std::unordered_map* slot_id_to_filter_conjuncts); + +private: + static ColumnIdResult _create_column_ids(const FieldDescriptor* field_desc, + const TupleDescriptor* tuple_descriptor); + + static ColumnIdResult _create_column_ids_by_top_level_col_index( + const FieldDescriptor* field_desc, const TupleDescriptor* tuple_descriptor); }; #include "common/compile_check_end.h" } // namespace doris::vectorized \ No newline at end of file diff --git a/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.cpp b/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.cpp new file mode 100644 index 00000000000000..42141589c8a794 --- /dev/null +++ b/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.cpp @@ -0,0 +1,168 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h" + +#include +#include +#include +#include +#include +#include + +#include "orc/Type.hh" +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +void IcebergOrcNestedColumnUtils::extract_nested_column_ids( + const orc::Type& type, const std::vector>& paths, + std::set& column_ids) { + // Group paths by first field_id + std::unordered_map>> child_paths_by_field_id; + + for (const auto& path : paths) { + if (!path.empty()) { + std::string first_field_id = path[0]; + std::vector remaining; + if (path.size() > 1) { + remaining.assign(path.begin() + 1, path.end()); + } + child_paths_by_field_id[first_field_id].push_back(std::move(remaining)); + } + } + + // For MAP type, normalize wildcard "*" to explicit KEYS/VALUES access + // Wildcard in MAP context means accessing both map keys and values + // Normalization logic: + // path: ["map_col", "*"] → ["map_col", "VALUES"] + ["map_col", "KEYS"] + // path: ["map_col", "*", "field"] → ["map_col", "VALUES", "field"] + ["map_col", "KEYS"] + if (type.getKind() == orc::TypeKind::MAP) { + auto wildcard_it = child_paths_by_field_id.find("*"); + if (wildcard_it != child_paths_by_field_id.end()) { + auto& wildcard_paths = wildcard_it->second; + + // All wildcard paths go to VALUES + auto& values_paths = child_paths_by_field_id["VALUES"]; + values_paths.insert(values_paths.end(), wildcard_paths.begin(), wildcard_paths.end()); + + // Always add KEYS for wildcard access + auto& keys_paths = child_paths_by_field_id["KEYS"]; + // Add an empty path to request full KEYS + std::vector empty_path; + keys_paths.push_back(empty_path); + + // Remove wildcard entry as it's been expanded + child_paths_by_field_id.erase(wildcard_it); + } + } + + bool has_child_columns = false; + // Efficiently traverse children + for (uint64_t i = 0; i < type.getSubtypeCount(); ++i) { + const orc::Type* child = type.getSubtype(i); + + std::string child_field_id; + switch (type.getKind()) { + case orc::TypeKind::STRUCT: + if (!child->hasAttributeKey(ICEBERG_ORC_ATTRIBUTE)) { + continue; + } + child_field_id = child->getAttributeValue(ICEBERG_ORC_ATTRIBUTE); + break; + case orc::TypeKind::LIST: + child_field_id = "*"; + break; + case orc::TypeKind::MAP: + // After wildcard normalization above, all MAP accesses are explicit KEYS/VALUES + // Simply assign the appropriate field name based on which child we're processing + if (i == 0) { + child_field_id = "KEYS"; + } else if (i == 1) { + child_field_id = "VALUES"; + } + // Special handling for Orc MAP structure: + // When accessing only VALUES, we still need KEY structure for deduplicate_keys + // Check if we're at key child (i==0) and only VALUES is requested (no KEYS) + if (i == 0) { + bool has_keys_access = + child_paths_by_field_id.find("KEYS") != child_paths_by_field_id.end(); + bool has_values_access = + child_paths_by_field_id.find("VALUES") != child_paths_by_field_id.end(); + + // If only VALUES is accessed (not KEYS), still include key structure for deduplicate_keys + if (!has_keys_access && has_values_access) { + uint64_t key_start_id = child->getColumnId(); + uint64_t key_max_id = child->getMaximumColumnId(); + for (uint64_t id = key_start_id; id <= key_max_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + continue; // Skip further processing of key child + } + } + break; + default: + child_field_id = ""; + break; + } + + if (child_field_id.empty() || child_field_id == "-1") { + continue; + } + + auto child_paths_it = child_paths_by_field_id.find(child_field_id); + if (child_paths_it != child_paths_by_field_id.end()) { + const auto& child_paths = child_paths_it->second; + + // Check if any child path is empty (meaning full child needed) + bool needs_full_child = + std::any_of(child_paths.begin(), child_paths.end(), + [](const std::vector& path) { return path.empty(); }); + + if (needs_full_child) { + uint64_t start_id = child->getColumnId(); + uint64_t max_column_id = child->getMaximumColumnId(); + for (uint64_t id = start_id; id <= max_column_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + } else { + // Store current size to check if recursive call added any columns + size_t before_size = column_ids.size(); + + // Recursively extract from child + extract_nested_column_ids(*child, child_paths, column_ids); + + // Check if recursive call added any columns + if (column_ids.size() > before_size) { + has_child_columns = true; + } + } + } + } + + // If any child columns were added, also add the parent column ID + // This ensures parent struct/container nodes are included when their children are needed + if (has_child_columns) { + // Set automatically handles deduplication, so no need to check if it already exists + column_ids.insert(type.getColumnId()); + } +} + +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h b/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h new file mode 100644 index 00000000000000..5a5fe33dd4f32f --- /dev/null +++ b/be/src/vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h @@ -0,0 +1,44 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#pragma once + +#include +#include +#include + +#include "vec/exec/format/table/table_format_reader.h" + +namespace orc { +class Type; +} // namespace orc + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +class IcebergOrcNestedColumnUtils { +public: + static void extract_nested_column_ids(const orc::Type& type, + const std::vector>& paths, + std::set& column_ids); + +private: + static constexpr const char* ICEBERG_ORC_ATTRIBUTE = "iceberg.id"; +}; + +#include "common/compile_check_end.h" +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.cpp b/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.cpp new file mode 100644 index 00000000000000..48c508390eadaa --- /dev/null +++ b/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.cpp @@ -0,0 +1,172 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "vec/exec/format/parquet/schema_desc.h" +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +void IcebergParquetNestedColumnUtils::extract_nested_column_ids( + const FieldSchema& field_schema, const std::vector>& paths, + std::set& column_ids) { + // Group paths by first field_id + std::unordered_map>> child_paths_by_field_id; + + for (const auto& path : paths) { + if (!path.empty()) { + std::string first_field_id = path[0]; + std::vector remaining; + if (path.size() > 1) { + remaining.assign(path.begin() + 1, path.end()); + } + child_paths_by_field_id[first_field_id].push_back(std::move(remaining)); + } + } + + // Track whether any child column was added to determine if parent should be included + bool has_child_columns = false; + + // For MAP type, normalize wildcard "*" to explicit KEYS/VALUES access + // Wildcard in MAP context means accessing both map keys and values + // Normalization logic: + // path: ["map_col", "*"] → ["map_col", "VALUES"] + ["map_col", "KEYS"] + // path: ["map_col", "*", "field"] → ["map_col", "VALUES", "field"] + ["map_col", "KEYS"] + if (field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_MAP) { + auto wildcard_it = child_paths_by_field_id.find("*"); + if (wildcard_it != child_paths_by_field_id.end()) { + auto& wildcard_paths = wildcard_it->second; + + // All wildcard paths go to VALUES + auto& values_paths = child_paths_by_field_id["VALUES"]; + values_paths.insert(values_paths.end(), wildcard_paths.begin(), wildcard_paths.end()); + + // Always add KEYS for wildcard access + auto& keys_paths = child_paths_by_field_id["KEYS"]; + // Add an empty path to request full KEYS + std::vector empty_path; + keys_paths.push_back(empty_path); + + // Remove wildcard entry as it's been expanded + child_paths_by_field_id.erase(wildcard_it); + } + } + + // Efficiently traverse children + for (uint64_t i = 0; i < field_schema.children.size(); ++i) { + const auto& child = field_schema.children[i]; + + std::string child_field_id; + + bool is_list = field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_ARRAY; + bool is_map = field_schema.data_type->get_primitive_type() == PrimitiveType::TYPE_MAP; + + if (is_list) { + child_field_id = "*"; + } else if (is_map) { + // After wildcard normalization above, all MAP accesses are explicit KEYS/VALUES + // Simply assign the appropriate field name based on which child we're processing + if (i == 0) { + child_field_id = "KEYS"; + } else if (i == 1) { + child_field_id = "VALUES"; + } + + // Special handling for Parquet MAP structure: + // When accessing only VALUES, we still need KEY structure for levels + // Check if we're at key child (i==0) and only VALUES is requested (no KEYS) + if (i == 0) { + bool has_keys_access = + child_paths_by_field_id.find("KEYS") != child_paths_by_field_id.end(); + bool has_values_access = + child_paths_by_field_id.find("VALUES") != child_paths_by_field_id.end(); + + // If only VALUES is accessed (not KEYS), still include key structure for RL/DL + if (!has_keys_access && has_values_access) { + // For map_values() queries, we need key's structure for correct RL/DL parsing. + // If key is a nested type (e.g., STRUCT), RL/DL info is stored at leaf columns. + // Add all column IDs from key's start to max (all leaves + intermediate nodes). + uint64_t key_start_id = child.get_column_id(); + uint64_t key_max_id = child.get_max_column_id(); + for (uint64_t id = key_start_id; id <= key_max_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + continue; // Skip further processing of key child + } + } + + } else { + child_field_id = std::to_string(child.field_id); + } + + if (child_field_id.empty() || child_field_id == "-1") { + continue; + } + + auto child_paths_it = child_paths_by_field_id.find(child_field_id); + if (child_paths_it != child_paths_by_field_id.end()) { + const auto& child_paths = child_paths_it->second; + + // Check if any child path is empty (meaning full child needed) + bool needs_full_child = + std::any_of(child_paths.begin(), child_paths.end(), + [](const std::vector& path) { return path.empty(); }); + + if (needs_full_child) { + // Add all column IDs from current child node to max_column_id + // This efficiently handles all nested/complex cases in one loop + uint64_t start_id = child.get_column_id(); + uint64_t max_column_id = child.get_max_column_id(); + for (uint64_t id = start_id; id <= max_column_id; ++id) { + column_ids.insert(id); + } + has_child_columns = true; + } else { + // Store current size to check if recursive call added any columns + size_t before_size = column_ids.size(); + + // Recursively extract from child + extract_nested_column_ids(child, child_paths, column_ids); + + // Check if recursive call added any columns + if (column_ids.size() > before_size) { + has_child_columns = true; + } + } + } + } + + // If any child columns were added, also add the parent column ID + // This ensures parent struct/container nodes are included when their children are needed + if (has_child_columns) { + // Set automatically handles deduplication, so no need to check if it already exists + column_ids.insert(field_schema.get_column_id()); + } +} + +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h b/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h new file mode 100644 index 00000000000000..58237d8182b4dc --- /dev/null +++ b/be/src/vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h @@ -0,0 +1,42 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#pragma once + +#include +#include +#include +#include +#include + +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +class FieldDescriptor; +struct FieldSchema; + +class IcebergParquetNestedColumnUtils { +public: + static void extract_nested_column_ids(const FieldSchema& field_schema, + const std::vector>& paths, + std::set& column_ids); +}; + +#include "common/compile_check_end.h" +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/iceberg_reader.cpp b/be/src/vec/exec/format/table/iceberg_reader.cpp index 04ac788009afa7..f8d0999ac1b236 100644 --- a/be/src/vec/exec/format/table/iceberg_reader.cpp +++ b/be/src/vec/exec/format/table/iceberg_reader.cpp @@ -17,6 +17,7 @@ #include "iceberg_reader.h" +#include #include #include #include @@ -52,6 +53,9 @@ #include "vec/exec/format/orc/vorc_reader.h" #include "vec/exec/format/parquet/schema_desc.h" #include "vec/exec/format/parquet/vparquet_column_chunk_reader.h" +#include "vec/exec/format/table/iceberg/iceberg_orc_nested_column_utils.h" +#include "vec/exec/format/table/iceberg/iceberg_parquet_nested_column_utils.h" +#include "vec/exec/format/table/nested_column_access_helper.h" #include "vec/exec/format/table/table_format_reader.h" namespace cctz { @@ -457,11 +461,86 @@ Status IcebergParquetReader::init_reader( } _all_required_col_names = file_col_names; + + auto column_id_result = _create_column_ids(field_desc, tuple_descriptor); + auto& column_ids = column_id_result.column_ids; + const auto& filter_column_ids = column_id_result.filter_column_ids; + RETURN_IF_ERROR(init_row_filters()); - return parquet_reader->init_reader(_all_required_col_names, conjuncts, tuple_descriptor, - row_descriptor, colname_to_slot_id, - not_single_slot_filter_conjuncts, - slot_id_to_filter_conjuncts, table_info_node_ptr); + for (int i = 0; i < field_desc->size(); ++i) { + auto field_schema = field_desc->get_column(i); + std::string col_name = field_schema->name; + if (std::find(_expand_col_names.begin(), _expand_col_names.end(), col_name) != + _expand_col_names.end()) { + column_ids.insert(field_schema->get_column_id()); + } + } + return parquet_reader->init_reader( + _all_required_col_names, conjuncts, tuple_descriptor, row_descriptor, + colname_to_slot_id, not_single_slot_filter_conjuncts, slot_id_to_filter_conjuncts, + table_info_node_ptr, true, column_ids, filter_column_ids); +} + +ColumnIdResult IcebergParquetReader::_create_column_ids(const FieldDescriptor* field_desc, + const TupleDescriptor* tuple_descriptor) { + // First, assign column IDs to the field descriptor + auto* mutable_field_desc = const_cast(field_desc); + mutable_field_desc->assign_ids(); + + // map top-level table column iceberg_id -> FieldSchema* + std::unordered_map iceberg_id_to_field_schema_map; + + for (int i = 0; i < field_desc->size(); ++i) { + auto field_schema = field_desc->get_column(i); + if (!field_schema) continue; + + int iceberg_id = field_schema->field_id; + iceberg_id_to_field_schema_map[iceberg_id] = field_schema; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level parquet field + auto process_access_paths = [](const FieldSchema* parquet_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + parquet_field, access_paths, out_ids, + [](const FieldSchema* field) { return field->get_column_id(); }, + [](const FieldSchema* field) { return field->get_max_column_id(); }, + IcebergParquetNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = iceberg_id_to_field_schema_map.find(slot->col_unique_id()); + if (it == iceberg_id_to_field_schema_map.end()) { + // Column not found in file (e.g., partition column, added column) + continue; + } + auto field_schema = it->second; + + // primitive (non-nested) types: direct mapping by name + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(field_schema->column_id); + + if (slot->is_predicate()) { + filter_column_ids.insert(field_schema->column_id); + } + continue; + } + + // complex types: + const auto& all_access_paths = slot->all_access_paths(); + process_access_paths(field_schema, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(field_schema, predicate_access_paths, filter_column_ids); + } + } + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); } Status IcebergParquetReader ::_read_position_delete_file(const TFileRangeDesc* delete_range, @@ -537,10 +616,83 @@ Status IcebergOrcReader::init_reader( } } + auto column_id_result = _create_column_ids(orc_type_ptr, tuple_descriptor); + auto& column_ids = column_id_result.column_ids; + const auto& filter_column_ids = column_id_result.filter_column_ids; + RETURN_IF_ERROR(init_row_filters()); + for (uint64_t i = 0; i < orc_type_ptr->getSubtypeCount(); ++i) { + const orc::Type* sub_type = orc_type_ptr->getSubtype(i); + std::string col_name = orc_type_ptr->getFieldName(i); + if (std::find(_expand_col_names.begin(), _expand_col_names.end(), col_name) != + _expand_col_names.end()) { + column_ids.insert(sub_type->getColumnId()); + } + } return orc_reader->init_reader(&_all_required_col_names, conjuncts, false, tuple_descriptor, row_descriptor, not_single_slot_filter_conjuncts, - slot_id_to_filter_conjuncts, table_info_node_ptr); + slot_id_to_filter_conjuncts, table_info_node_ptr, column_ids, + filter_column_ids); +} + +ColumnIdResult IcebergOrcReader::_create_column_ids(const orc::Type* orc_type, + const TupleDescriptor* tuple_descriptor) { + // map top-level table column iceberg_id -> orc::Type* + std::unordered_map iceberg_id_to_orc_type_map; + for (uint64_t i = 0; i < orc_type->getSubtypeCount(); ++i) { + auto orc_sub_type = orc_type->getSubtype(i); + if (!orc_sub_type) continue; + + if (!orc_sub_type->hasAttributeKey(ICEBERG_ORC_ATTRIBUTE)) { + continue; + } + int iceberg_id = std::stoi(orc_sub_type->getAttributeValue(ICEBERG_ORC_ATTRIBUTE)); + iceberg_id_to_orc_type_map[iceberg_id] = orc_sub_type; + } + + std::set column_ids; + std::set filter_column_ids; + + // helper to process access paths for a given top-level orc field + auto process_access_paths = [](const orc::Type* orc_field, + const std::vector& access_paths, + std::set& out_ids) { + process_nested_access_paths( + orc_field, access_paths, out_ids, + [](const orc::Type* type) { return type->getColumnId(); }, + [](const orc::Type* type) { return type->getMaximumColumnId(); }, + IcebergOrcNestedColumnUtils::extract_nested_column_ids); + }; + + for (const auto* slot : tuple_descriptor->slots()) { + auto it = iceberg_id_to_orc_type_map.find(slot->col_unique_id()); + if (it == iceberg_id_to_orc_type_map.end()) { + // Column not found in file + continue; + } + const orc::Type* orc_field = it->second; + + // primitive (non-nested) types + if ((slot->col_type() != TYPE_STRUCT && slot->col_type() != TYPE_ARRAY && + slot->col_type() != TYPE_MAP)) { + column_ids.insert(orc_field->getColumnId()); + if (slot->is_predicate()) { + filter_column_ids.insert(orc_field->getColumnId()); + } + continue; + } + + // complex types + const auto& all_access_paths = slot->all_access_paths(); + process_access_paths(orc_field, all_access_paths, column_ids); + + const auto& predicate_access_paths = slot->predicate_access_paths(); + if (!predicate_access_paths.empty()) { + process_access_paths(orc_field, predicate_access_paths, filter_column_ids); + } + } + + return ColumnIdResult(std::move(column_ids), std::move(filter_column_ids)); } Status IcebergOrcReader::_read_position_delete_file(const TFileRangeDesc* delete_range, diff --git a/be/src/vec/exec/format/table/iceberg_reader.h b/be/src/vec/exec/format/table/iceberg_reader.h index 7b854c7020939b..097fc38dfd7524 100644 --- a/be/src/vec/exec/format/table/iceberg_reader.h +++ b/be/src/vec/exec/format/table/iceberg_reader.h @@ -185,6 +185,9 @@ class IcebergParquetReader final : public IcebergTableReader { } private: + static ColumnIdResult _create_column_ids(const FieldDescriptor* field_desc, + const TupleDescriptor* tuple_descriptor); + Status _read_position_delete_file(const TFileRangeDesc* delete_range, DeleteFile* position_delete) final; }; @@ -222,6 +225,10 @@ class IcebergOrcReader final : public IcebergTableReader { _meta_cache); } +private: + static ColumnIdResult _create_column_ids(const orc::Type* orc_type, + const TupleDescriptor* tuple_descriptor); + private: static const std::string ICEBERG_ORC_ATTRIBUTE; }; diff --git a/be/src/vec/exec/format/table/nested_column_access_helper.h b/be/src/vec/exec/format/table/nested_column_access_helper.h new file mode 100644 index 00000000000000..316cfb7aebe328 --- /dev/null +++ b/be/src/vec/exec/format/table/nested_column_access_helper.h @@ -0,0 +1,82 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#pragma once + +#include +#include +#include + +#include "vec/exec/format/table/table_format_reader.h" + +namespace doris::vectorized { +#include "common/compile_check_begin.h" + +// Helper that normalizes access paths and delegates nested column id extraction. +// The caller provides how to access the column id range for the concrete field type +// (Parquet FieldSchema, ORC Type, etc.) plus a nested extractor implementation. +template +void process_nested_access_paths(const FieldType* field, + const std::vector& access_paths, + std::set& out_ids, ColumnIdGetter&& column_id_getter, + MaxColumnIdGetter&& max_column_id_getter, + ExtractNestedFunc&& extract_nested) { + if (field == nullptr) { + return; + } + + const bool access_paths_empty = access_paths.empty(); + std::vector> paths; + paths.reserve(access_paths.size()); + bool has_top_level_only = false; + + for (const auto& access_path : access_paths) { + const std::vector* path_ptr = nullptr; + if (access_path.type == TAccessPathType::DATA) { + path_ptr = &access_path.data_access_path.path; + } else if (access_path.type == TAccessPathType::META) { + path_ptr = &access_path.meta_access_path.path; + } else { + continue; + } + + const auto& path = *path_ptr; + std::vector remaining_path; + if (path.size() > 1) { + remaining_path.assign(path.begin() + 1, path.end()); + } + if (remaining_path.empty()) { + has_top_level_only = true; + } + paths.push_back(std::move(remaining_path)); + } + + const uint64_t column_id = column_id_getter(field); + if (has_top_level_only || access_paths_empty) { + const uint64_t max_column_id = max_column_id_getter(field); + for (uint64_t id = column_id; id <= max_column_id; ++id) { + out_ids.insert(id); + } + } else if (!paths.empty()) { + out_ids.insert(column_id); + extract_nested(*field, paths, out_ids); + } +} + +#include "common/compile_check_end.h" +} // namespace doris::vectorized diff --git a/be/src/vec/exec/format/table/table_format_reader.cpp b/be/src/vec/exec/format/table/table_format_reader.cpp index b3b7e1df3369b6..2c614777a890f3 100644 --- a/be/src/vec/exec/format/table/table_format_reader.cpp +++ b/be/src/vec/exec/format/table/table_format_reader.cpp @@ -76,8 +76,7 @@ Status TableSchemaChangeHelper::BuildTableInfoUtil::by_parquet_name( if (file_field.data_type->get_primitive_type() != TYPE_MAP) [[unlikely]] { return SCHEMA_ERROR; } - MOCK_REMOVE(DCHECK(file_field.children.size() == 1)); - MOCK_REMOVE(DCHECK(file_field.children[0].children.size() == 2)); + MOCK_REMOVE(DCHECK(file_field.children.size() == 2)); std::shared_ptr key_node = nullptr; { @@ -85,8 +84,7 @@ Status TableSchemaChangeHelper::BuildTableInfoUtil::by_parquet_name( assert_cast(remove_nullable(table_data_type).get()) ->get_key_type()); - RETURN_IF_ERROR( - by_parquet_name(key_type, file_field.children[0].children[0], key_node)); + RETURN_IF_ERROR(by_parquet_name(key_type, file_field.children[0], key_node)); } std::shared_ptr value_node = nullptr; @@ -95,8 +93,7 @@ Status TableSchemaChangeHelper::BuildTableInfoUtil::by_parquet_name( assert_cast(remove_nullable(table_data_type).get()) ->get_value_type()); - RETURN_IF_ERROR( - by_parquet_name(value_type, file_field.children[0].children[1], value_node)); + RETURN_IF_ERROR(by_parquet_name(value_type, file_field.children[1], value_node)); } node = std::make_shared(key_node, value_node); break; @@ -430,19 +427,17 @@ Status TableSchemaChangeHelper::BuildTableInfoUtil::by_parquet_field_id( MOCK_REMOVE(DCHECK(table_schema.nestedField.map_field.key_field.field_ptr != nullptr)); MOCK_REMOVE(DCHECK(table_schema.nestedField.map_field.value_field.field_ptr != nullptr)); - MOCK_REMOVE(DCHECK(parquet_field.children.size() == 1)); - MOCK_REMOVE(DCHECK(parquet_field.children[0].children.size() == 2)); + MOCK_REMOVE(DCHECK(parquet_field.children.size() == 2)); std::shared_ptr key_node = nullptr; std::shared_ptr value_node = nullptr; RETURN_IF_ERROR(by_parquet_field_id(*table_schema.nestedField.map_field.key_field.field_ptr, - parquet_field.children[0].children[0], key_node, - exist_field_id)); + parquet_field.children[0], key_node, exist_field_id)); - RETURN_IF_ERROR(by_parquet_field_id( - *table_schema.nestedField.map_field.value_field.field_ptr, - parquet_field.children[0].children[1], value_node, exist_field_id)); + RETURN_IF_ERROR( + by_parquet_field_id(*table_schema.nestedField.map_field.value_field.field_ptr, + parquet_field.children[1], value_node, exist_field_id)); node = std::make_shared(key_node, value_node); break; diff --git a/be/src/vec/exec/format/table/table_format_reader.h b/be/src/vec/exec/format/table/table_format_reader.h index 1f2a41af93055e..00442dc45f992f 100644 --- a/be/src/vec/exec/format/table/table_format_reader.h +++ b/be/src/vec/exec/format/table/table_format_reader.h @@ -133,6 +133,13 @@ class TableSchemaChangeHelper { throw std::logic_error("get_children_node should not be called on base TableInfoNode"); }; + virtual std::shared_ptr get_children_node_by_file_column_name( + std::string file_column_name) const { + throw std::logic_error( + "get_children_node_by_file_column_name should not be called on base " + "TableInfoNode"); + }; + virtual std::string children_file_column_name(std::string table_column_name) const { throw std::logic_error( "children_file_column_name should not be called on base TableInfoNode"); @@ -184,6 +191,19 @@ class TableSchemaChangeHelper { return children.at(table_column_name).node; } + std::shared_ptr get_children_node_by_file_column_name( + std::string file_column_name) const override { + // Search for the child by file column name + for (const auto& [table_name, child] : children) { + if (child.exists && child.column_name == file_column_name) { + return child.node; + } + } + // Not found - throw or return nullptr + throw std::runtime_error("File column name '" + file_column_name + + "' not found in struct children"); + } + std::string children_file_column_name(std::string table_column_name) const override { DCHECK(children.contains(table_column_name)); DCHECK(children_column_exists(table_column_name)); @@ -238,6 +258,11 @@ class TableSchemaChangeHelper { return get_instance(); }; + std::shared_ptr get_children_node_by_file_column_name( + std::string file_column_name) const override { + return get_instance(); + }; + std::string children_file_column_name(std::string table_column_name) const override { return table_column_name; } @@ -388,5 +413,16 @@ class TableSchemaChangeHelper { }; }; +struct ColumnIdResult { + std::set column_ids; + std::set filter_column_ids; + + ColumnIdResult() = default; // Add default constructor + + ColumnIdResult(std::set column_ids_, std::set filter_column_ids_) + : column_ids(std::move(column_ids_)), + filter_column_ids(std::move(filter_column_ids_)) {} +}; + #include "common/compile_check_end.h" } // namespace doris::vectorized diff --git a/be/src/vec/exec/scan/file_scanner.cpp b/be/src/vec/exec/scan/file_scanner.cpp index 27f03a5e9e5244..99c0dbc018bfa5 100644 --- a/be/src/vec/exec/scan/file_scanner.cpp +++ b/be/src/vec/exec/scan/file_scanner.cpp @@ -336,7 +336,7 @@ Status FileScanner::_process_runtime_filters_partition_prune(bool& can_filter_al return Status::OK(); } -Status FileScanner::_process_conjuncts_for_dict_filter() { +Status FileScanner::_process_conjuncts() { _slot_id_to_filter_conjuncts.clear(); _not_single_slot_filter_conjuncts.clear(); for (auto& conjunct : _push_down_conjuncts) { @@ -374,7 +374,7 @@ Status FileScanner::_process_late_arrival_conjuncts() { for (size_t i = 0; i != _conjuncts.size(); ++i) { RETURN_IF_ERROR(_conjuncts[i]->clone(_state, _push_down_conjuncts[i])); } - RETURN_IF_ERROR(_process_conjuncts_for_dict_filter()); + RETURN_IF_ERROR(_process_conjuncts()); _discard_conjuncts(); } if (_applied_rf_num == _total_rf_num) { @@ -387,6 +387,8 @@ void FileScanner::_get_slot_ids(VExpr* expr, std::vector* slot_ids) { for (auto& child_expr : expr->children()) { if (child_expr->is_slot_ref()) { VSlotRef* slot_ref = reinterpret_cast(child_expr.get()); + SlotDescriptor* slot_desc = _state->desc_tbl().get_slot_descriptor(slot_ref->slot_id()); + slot_desc->set_is_predicate(true); slot_ids->emplace_back(slot_ref->slot_id()); } else { _get_slot_ids(child_expr.get(), slot_ids); diff --git a/be/src/vec/exec/scan/file_scanner.h b/be/src/vec/exec/scan/file_scanner.h index 1a44d06c77b6e8..8c4682ca89f180 100644 --- a/be/src/vec/exec/scan/file_scanner.h +++ b/be/src/vec/exec/scan/file_scanner.h @@ -252,7 +252,7 @@ class FileScanner : public Scanner { void _init_runtime_filter_partition_prune_ctxs(); void _init_runtime_filter_partition_prune_block(); Status _process_runtime_filters_partition_prune(bool& is_partition_pruned); - Status _process_conjuncts_for_dict_filter(); + Status _process_conjuncts(); Status _process_late_arrival_conjuncts(); void _get_slot_ids(VExpr* expr, std::vector* slot_ids); Status _generate_truncate_columns(bool need_to_get_parsed_schema); diff --git a/be/src/vec/exec/scan/olap_scanner.cpp b/be/src/vec/exec/scan/olap_scanner.cpp index 0bdf793872fd87..c3c2179391a8af 100644 --- a/be/src/vec/exec/scan/olap_scanner.cpp +++ b/be/src/vec/exec/scan/olap_scanner.cpp @@ -83,6 +83,8 @@ OlapScanner::OlapScanner(pipeline::ScanLocalStateBase* parent, OlapScanner::Para .function_filters {}, .delete_predicates {}, .target_cast_type_for_variants {}, + .all_access_paths {}, + .predicate_access_paths {}, .rs_splits {}, .return_columns {}, .output_columns {}, @@ -265,7 +267,7 @@ Status OlapScanner::prepare() { // Add newly created tablet schema to schema cache if it does not have virtual columns. if (cached_schema == nullptr && !schema_key.empty() && - tablet_schema->num_virtual_columns() == 0) { + tablet_schema->num_virtual_columns() == 0 && !tablet_schema->has_pruned_columns()) { SchemaCache::instance()->insert_schema(schema_key, tablet_schema); } @@ -547,6 +549,24 @@ Status OlapScanner::_init_return_columns() { _vir_col_idx_to_type[idx_in_block]->get_name()); } + const auto& column = tablet_schema->column(index); + if (!slot->all_access_paths().empty()) { + _tablet_reader_params.all_access_paths.insert( + {column.unique_id(), slot->all_access_paths()}); + } + + if (!slot->predicate_access_paths().empty()) { + _tablet_reader_params.predicate_access_paths.insert( + {column.unique_id(), slot->predicate_access_paths()}); + } + + if ((slot->type()->get_primitive_type() == PrimitiveType::TYPE_STRUCT || + slot->type()->get_primitive_type() == PrimitiveType::TYPE_MAP || + slot->type()->get_primitive_type() == PrimitiveType::TYPE_ARRAY) && + !slot->all_access_paths().empty()) { + tablet_schema->add_pruned_columns_data_type(column.unique_id(), slot->type()); + } + _return_columns.push_back(index); if (slot->is_nullable() && !tablet_schema->column(index).is_nullable()) { _tablet_columns_convert_to_null_set.emplace(index); diff --git a/be/src/vec/functions/function.cpp b/be/src/vec/functions/function.cpp index af927fac913ac4..fd7c4530e87433 100644 --- a/be/src/vec/functions/function.cpp +++ b/be/src/vec/functions/function.cpp @@ -276,6 +276,9 @@ DataTypePtr FunctionBuilderImpl::get_return_type(const ColumnsWithTypeAndName& a create_block_with_nested_columns(Block(arguments), numbers, false); auto return_type = get_return_type_impl( ColumnsWithTypeAndName(nested_block.begin(), nested_block.end())); + if (!return_type) { + return nullptr; + } return make_nullable(return_type); } } diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc new file mode 100644 index 00000000000000..832aaef64a0caa Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00001-1-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00001-1-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc new file mode 100644 index 00000000000000..36f589e393e5cf Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/00001-1-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00000-aa52c4c8-e0bd-4db6-b550-6323977446a4.metadata.json b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00000-aa52c4c8-e0bd-4db6-b550-6323977446a4.metadata.json new file mode 100644 index 00000000000000..97208990039b60 --- /dev/null +++ b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00000-aa52c4c8-e0bd-4db6-b550-6323977446a4.metadata.json @@ -0,0 +1,145 @@ +{ + "format-version" : 2, + "table-uuid" : "daf54708-3539-4de4-a130-322cd4c3fdc4", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg_orc", + "last-sequence-number" : 0, + "last-updated-ms" : 1758865887090, + "last-column-id" : 18, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 4, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 7, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 8, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 9, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 10, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 11, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 5, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 14, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 15, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 6, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 16, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "orc", + "write.parquet.compression-codec" : "zlib" + }, + "current-snapshot-id" : -1, + "refs" : { }, + "snapshots" : [ ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ ], + "metadata-log" : [ ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00001-88a66011-3129-4bfb-9b4b-c1510c566d73.metadata.json b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00001-88a66011-3129-4bfb-9b4b-c1510c566d73.metadata.json new file mode 100644 index 00000000000000..12ec38bbdcd393 --- /dev/null +++ b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/00001-88a66011-3129-4bfb-9b4b-c1510c566d73.metadata.json @@ -0,0 +1,176 @@ +{ + "format-version" : 2, + "table-uuid" : "daf54708-3539-4de4-a130-322cd4c3fdc4", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg_orc", + "last-sequence-number" : 1, + "last-updated-ms" : 1758865954986, + "last-column-id" : 18, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 4, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 7, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 8, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 9, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 10, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 11, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 5, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 14, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 15, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 6, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 16, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "orc", + "write.parquet.compression-codec" : "zlib" + }, + "current-snapshot-id" : 2197982135324349212, + "refs" : { + "main" : { + "snapshot-id" : 2197982135324349212, + "type" : "branch" + } + }, + "snapshots" : [ { + "sequence-number" : 1, + "snapshot-id" : 2197982135324349212, + "timestamp-ms" : 1758865954986, + "summary" : { + "operation" : "append", + "spark.app.id" : "application_1738810850199_0674", + "added-data-files" : "2", + "added-records" : "10", + "added-files-size" : "4611", + "changed-partition-count" : "1", + "total-records" : "10", + "total-files-size" : "4611", + "total-data-files" : "2", + "total-delete-files" : "0", + "total-position-deletes" : "0", + "total-equality-deletes" : "0" + }, + "manifest-list" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg_orc/metadata/snap-2197982135324349212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro", + "schema-id" : 0 + } ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ { + "timestamp-ms" : 1758865954986, + "snapshot-id" : 2197982135324349212 + } ], + "metadata-log" : [ { + "timestamp-ms" : 1758865887090, + "metadata-file" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg_orc/metadata/00000-aa52c4c8-e0bd-4db6-b550-6323977446a4.metadata.json" + } ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/6a876742-85c2-4f84-ae24-292482fa9288-m0.avro b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/6a876742-85c2-4f84-ae24-292482fa9288-m0.avro new file mode 100644 index 00000000000000..1887220ebf0b6e Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/6a876742-85c2-4f84-ae24-292482fa9288-m0.avro differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/snap-2197982135324349212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/snap-2197982135324349212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro new file mode 100644 index 00000000000000..7218d1326d3025 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_orc/metadata/snap-2197982135324349212-1-6a876742-85c2-4f84-ae24-292482fa9288.avro differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..160d000fed6c47 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00001-1-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00001-1-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..3ec61d58469d9f Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00001-1-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00002-2-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00002-2-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..b0f56644ae51c0 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00002-2-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00003-3-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00003-3-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..dee411d7ef76e4 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00003-3-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00004-4-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00004-4-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..4264e841218c55 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00004-4-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00005-5-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00005-5-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..0264972b11dc41 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00005-5-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00006-6-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00006-6-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..3db75d8c01a162 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00006-6-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00007-7-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00007-7-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet new file mode 100644 index 00000000000000..4838bb7d6e72ca Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/00007-7-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00000-30938ed9-31af-46c8-9274-506c7f2709c9.metadata.json b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00000-30938ed9-31af-46c8-9274-506c7f2709c9.metadata.json new file mode 100644 index 00000000000000..e6fc794e81ff1d --- /dev/null +++ b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00000-30938ed9-31af-46c8-9274-506c7f2709c9.metadata.json @@ -0,0 +1,145 @@ +{ + "format-version" : 2, + "table-uuid" : "baf92432-1443-47fd-971a-0a9df2432e4a", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg", + "last-sequence-number" : 0, + "last-updated-ms" : 1758188914000, + "last-column-id" : 18, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 4, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 7, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 8, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 9, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 10, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 11, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 5, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 14, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 15, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 6, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 16, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "parquet", + "write.parquet.compression-codec" : "zstd" + }, + "current-snapshot-id" : -1, + "refs" : { }, + "snapshots" : [ ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ ], + "metadata-log" : [ ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00001-b1b4732d-f823-4900-8185-3eb3cb23e4a9.metadata.json b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00001-b1b4732d-f823-4900-8185-3eb3cb23e4a9.metadata.json new file mode 100644 index 00000000000000..d52c580cbf2b50 --- /dev/null +++ b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/00001-b1b4732d-f823-4900-8185-3eb3cb23e4a9.metadata.json @@ -0,0 +1,176 @@ +{ + "format-version" : 2, + "table-uuid" : "baf92432-1443-47fd-971a-0a9df2432e4a", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg", + "last-sequence-number" : 1, + "last-updated-ms" : 1758188959726, + "last-column-id" : 18, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 4, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 7, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 8, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 9, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 10, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 11, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 5, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 14, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 15, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 6, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 16, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "parquet", + "write.parquet.compression-codec" : "zstd" + }, + "current-snapshot-id" : 1689809712605583552, + "refs" : { + "main" : { + "snapshot-id" : 1689809712605583552, + "type" : "branch" + } + }, + "snapshots" : [ { + "sequence-number" : 1, + "snapshot-id" : 1689809712605583552, + "timestamp-ms" : 1758188959726, + "summary" : { + "operation" : "append", + "spark.app.id" : "application_1738810850199_0668", + "added-data-files" : "8", + "added-records" : "10", + "added-files-size" : "32551", + "changed-partition-count" : "1", + "total-records" : "10", + "total-files-size" : "32551", + "total-data-files" : "8", + "total-delete-files" : "0", + "total-position-deletes" : "0", + "total-equality-deletes" : "0" + }, + "manifest-list" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg/metadata/snap-1689809712605583552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro", + "schema-id" : 0 + } ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ { + "timestamp-ms" : 1758188959726, + "snapshot-id" : 1689809712605583552 + } ], + "metadata-log" : [ { + "timestamp-ms" : 1758188914000, + "metadata-file" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/complex_user_profiles_iceberg/metadata/00000-30938ed9-31af-46c8-9274-506c7f2709c9.metadata.json" + } ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/51fb6058-7fc2-4791-96a9-f3111933728a-m0.avro b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/51fb6058-7fc2-4791-96a9-f3111933728a-m0.avro new file mode 100644 index 00000000000000..201c7908bc407e Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/51fb6058-7fc2-4791-96a9-f3111933728a-m0.avro differ diff --git a/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/snap-1689809712605583552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/snap-1689809712605583552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro new file mode 100644 index 00000000000000..1f6548d7ba87f9 Binary files /dev/null and b/be/test/exec/test_data/complex_user_profiles_iceberg_parquet/metadata/snap-1689809712605583552-1-51fb6058-7fc2-4791-96a9-f3111933728a.avro differ diff --git a/be/test/exec/test_data/nested_user_profiles_iceberg_orc/data/00000-8-5a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/data/00000-8-5a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc new file mode 100644 index 00000000000000..2f63195ff34faf Binary files /dev/null and b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/data/00000-8-5a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc differ diff --git a/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00000-daa20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00000-daa20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json new file mode 100644 index 00000000000000..174f7a92c79562 --- /dev/null +++ b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00000-daa20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json @@ -0,0 +1,548 @@ +{ + "format-version" : 2, + "table-uuid" : "a93bcb6d-568f-4fc2-8235-dc8e218c1beb", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/nested_user_profiles_iceberg_orc", + "last-sequence-number" : 0, + "last-updated-ms" : 1760884376565, + "last-column-id" : 92, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 9, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 14, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 15, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 16, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 10, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 19, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 20, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 11, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 21, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 22, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 23, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + }, { + "id" : 4, + "name" : "tags", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 24, + "element" : "string", + "element-required" : false + } + }, { + "id" : 5, + "name" : "friends", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 25, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 26, + "name" : "user_id", + "required" : false, + "type" : "long" + }, { + "id" : 27, + "name" : "nickname", + "required" : false, + "type" : "string" + }, { + "id" : 28, + "name" : "friendship_level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + }, { + "id" : 6, + "name" : "recent_activity", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 29, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 30, + "name" : "action", + "required" : false, + "type" : "string" + }, { + "id" : 31, + "name" : "details", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 32, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 33, + "name" : "key", + "required" : false, + "type" : "string" + }, { + "id" : 34, + "name" : "value", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + } ] + }, + "element-required" : false + } + }, { + "id" : 7, + "name" : "attributes", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 35, + "key" : "string", + "value-id" : 36, + "value" : "string", + "value-required" : false + } + }, { + "id" : 8, + "name" : "complex_attributes", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 37, + "key" : "string", + "value-id" : 38, + "value" : { + "type" : "struct", + "fields" : [ { + "id" : 39, + "name" : "metadata", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 43, + "name" : "version", + "required" : false, + "type" : "string" + }, { + "id" : 44, + "name" : "created_time", + "required" : false, + "type" : "timestamptz" + }, { + "id" : 45, + "name" : "last_updated", + "required" : false, + "type" : "timestamptz" + }, { + "id" : 46, + "name" : "quality_score", + "required" : false, + "type" : "double" + } ] + } + }, { + "id" : 40, + "name" : "historical_scores", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 47, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 48, + "name" : "period", + "required" : false, + "type" : "string" + }, { + "id" : 49, + "name" : "score", + "required" : false, + "type" : "double" + }, { + "id" : 50, + "name" : "components", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 52, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 53, + "name" : "component_name", + "required" : false, + "type" : "string" + }, { + "id" : 54, + "name" : "weight", + "required" : false, + "type" : "float" + }, { + "id" : 55, + "name" : "sub_scores", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 56, + "key" : "string", + "value-id" : 57, + "value" : "double", + "value-required" : false + } + } ] + }, + "element-required" : false + } + }, { + "id" : 51, + "name" : "trends", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 58, + "name" : "direction", + "required" : false, + "type" : "string" + }, { + "id" : 59, + "name" : "magnitude", + "required" : false, + "type" : "double" + }, { + "id" : 60, + "name" : "confidence_interval", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 61, + "name" : "lower", + "required" : false, + "type" : "double" + }, { + "id" : 62, + "name" : "upper", + "required" : false, + "type" : "double" + } ] + } + } ] + } + } ] + }, + "element-required" : false + } + }, { + "id" : 41, + "name" : "hierarchical_data", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 63, + "key" : "string", + "value-id" : 64, + "value" : { + "type" : "struct", + "fields" : [ { + "id" : 65, + "name" : "category", + "required" : false, + "type" : "string" + }, { + "id" : 66, + "name" : "sub_items", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 68, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 69, + "name" : "item_id", + "required" : false, + "type" : "long" + }, { + "id" : 70, + "name" : "properties", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 72, + "key" : "string", + "value-id" : 73, + "value" : "string", + "value-required" : false + } + }, { + "id" : 71, + "name" : "metrics", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 74, + "name" : "value", + "required" : false, + "type" : "double" + }, { + "id" : 75, + "name" : "unit", + "required" : false, + "type" : "string" + } ] + } + } ] + }, + "element-required" : false + } + }, { + "id" : 67, + "name" : "summary", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 76, + "name" : "total_count", + "required" : false, + "type" : "int" + }, { + "id" : 77, + "name" : "average_value", + "required" : false, + "type" : "double" + } ] + } + } ] + }, + "value-required" : false + } + }, { + "id" : 42, + "name" : "validation_rules", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 78, + "name" : "required", + "required" : false, + "type" : "boolean" + }, { + "id" : 79, + "name" : "constraints", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 81, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 82, + "name" : "rule_type", + "required" : false, + "type" : "string" + }, { + "id" : 83, + "name" : "parameters", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 85, + "key" : "string", + "value-id" : 86, + "value" : "string", + "value-required" : false + } + }, { + "id" : 84, + "name" : "error_message", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + }, { + "id" : 80, + "name" : "complex_constraint", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 87, + "name" : "logic_operator", + "required" : false, + "type" : "string" + }, { + "id" : 88, + "name" : "operands", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 89, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 90, + "name" : "field_path", + "required" : false, + "type" : "string" + }, { + "id" : 91, + "name" : "operator", + "required" : false, + "type" : "string" + }, { + "id" : 92, + "name" : "comparison_value", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } + } ] + }, + "value-required" : false + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "orc", + "write.parquet.compression-codec" : "zstd" + }, + "current-snapshot-id" : -1, + "refs" : { }, + "snapshots" : [ ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ ], + "metadata-log" : [ ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00001-5c6ddc20-6aa8-4864-9d15-546dd5a6bae4.metadata.json b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00001-5c6ddc20-6aa8-4864-9d15-546dd5a6bae4.metadata.json new file mode 100644 index 00000000000000..3fc692fea56e77 --- /dev/null +++ b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/00001-5c6ddc20-6aa8-4864-9d15-546dd5a6bae4.metadata.json @@ -0,0 +1,579 @@ +{ + "format-version" : 2, + "table-uuid" : "a93bcb6d-568f-4fc2-8235-dc8e218c1beb", + "location" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/nested_user_profiles_iceberg_orc", + "last-sequence-number" : 1, + "last-updated-ms" : 1760884424603, + "last-column-id" : 92, + "current-schema-id" : 0, + "schemas" : [ { + "type" : "struct", + "schema-id" : 0, + "fields" : [ { + "id" : 1, + "name" : "id", + "required" : false, + "type" : "long" + }, { + "id" : 2, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 3, + "name" : "profile", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 9, + "name" : "address", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 12, + "name" : "street", + "required" : false, + "type" : "string" + }, { + "id" : 13, + "name" : "city", + "required" : false, + "type" : "string" + }, { + "id" : 14, + "name" : "coordinates", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 15, + "name" : "lat", + "required" : false, + "type" : "double" + }, { + "id" : 16, + "name" : "lng", + "required" : false, + "type" : "double" + } ] + } + } ] + } + }, { + "id" : 10, + "name" : "contact", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 17, + "name" : "email", + "required" : false, + "type" : "string" + }, { + "id" : 18, + "name" : "phone", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 19, + "name" : "country_code", + "required" : false, + "type" : "string" + }, { + "id" : 20, + "name" : "number", + "required" : false, + "type" : "string" + } ] + } + } ] + } + }, { + "id" : 11, + "name" : "hobbies", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 21, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 22, + "name" : "name", + "required" : false, + "type" : "string" + }, { + "id" : 23, + "name" : "level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + } ] + } + }, { + "id" : 4, + "name" : "tags", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 24, + "element" : "string", + "element-required" : false + } + }, { + "id" : 5, + "name" : "friends", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 25, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 26, + "name" : "user_id", + "required" : false, + "type" : "long" + }, { + "id" : 27, + "name" : "nickname", + "required" : false, + "type" : "string" + }, { + "id" : 28, + "name" : "friendship_level", + "required" : false, + "type" : "int" + } ] + }, + "element-required" : false + } + }, { + "id" : 6, + "name" : "recent_activity", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 29, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 30, + "name" : "action", + "required" : false, + "type" : "string" + }, { + "id" : 31, + "name" : "details", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 32, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 33, + "name" : "key", + "required" : false, + "type" : "string" + }, { + "id" : 34, + "name" : "value", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + } ] + }, + "element-required" : false + } + }, { + "id" : 7, + "name" : "attributes", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 35, + "key" : "string", + "value-id" : 36, + "value" : "string", + "value-required" : false + } + }, { + "id" : 8, + "name" : "complex_attributes", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 37, + "key" : "string", + "value-id" : 38, + "value" : { + "type" : "struct", + "fields" : [ { + "id" : 39, + "name" : "metadata", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 43, + "name" : "version", + "required" : false, + "type" : "string" + }, { + "id" : 44, + "name" : "created_time", + "required" : false, + "type" : "timestamptz" + }, { + "id" : 45, + "name" : "last_updated", + "required" : false, + "type" : "timestamptz" + }, { + "id" : 46, + "name" : "quality_score", + "required" : false, + "type" : "double" + } ] + } + }, { + "id" : 40, + "name" : "historical_scores", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 47, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 48, + "name" : "period", + "required" : false, + "type" : "string" + }, { + "id" : 49, + "name" : "score", + "required" : false, + "type" : "double" + }, { + "id" : 50, + "name" : "components", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 52, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 53, + "name" : "component_name", + "required" : false, + "type" : "string" + }, { + "id" : 54, + "name" : "weight", + "required" : false, + "type" : "float" + }, { + "id" : 55, + "name" : "sub_scores", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 56, + "key" : "string", + "value-id" : 57, + "value" : "double", + "value-required" : false + } + } ] + }, + "element-required" : false + } + }, { + "id" : 51, + "name" : "trends", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 58, + "name" : "direction", + "required" : false, + "type" : "string" + }, { + "id" : 59, + "name" : "magnitude", + "required" : false, + "type" : "double" + }, { + "id" : 60, + "name" : "confidence_interval", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 61, + "name" : "lower", + "required" : false, + "type" : "double" + }, { + "id" : 62, + "name" : "upper", + "required" : false, + "type" : "double" + } ] + } + } ] + } + } ] + }, + "element-required" : false + } + }, { + "id" : 41, + "name" : "hierarchical_data", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 63, + "key" : "string", + "value-id" : 64, + "value" : { + "type" : "struct", + "fields" : [ { + "id" : 65, + "name" : "category", + "required" : false, + "type" : "string" + }, { + "id" : 66, + "name" : "sub_items", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 68, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 69, + "name" : "item_id", + "required" : false, + "type" : "long" + }, { + "id" : 70, + "name" : "properties", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 72, + "key" : "string", + "value-id" : 73, + "value" : "string", + "value-required" : false + } + }, { + "id" : 71, + "name" : "metrics", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 74, + "name" : "value", + "required" : false, + "type" : "double" + }, { + "id" : 75, + "name" : "unit", + "required" : false, + "type" : "string" + } ] + } + } ] + }, + "element-required" : false + } + }, { + "id" : 67, + "name" : "summary", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 76, + "name" : "total_count", + "required" : false, + "type" : "int" + }, { + "id" : 77, + "name" : "average_value", + "required" : false, + "type" : "double" + } ] + } + } ] + }, + "value-required" : false + } + }, { + "id" : 42, + "name" : "validation_rules", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 78, + "name" : "required", + "required" : false, + "type" : "boolean" + }, { + "id" : 79, + "name" : "constraints", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 81, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 82, + "name" : "rule_type", + "required" : false, + "type" : "string" + }, { + "id" : 83, + "name" : "parameters", + "required" : false, + "type" : { + "type" : "map", + "key-id" : 85, + "key" : "string", + "value-id" : 86, + "value" : "string", + "value-required" : false + } + }, { + "id" : 84, + "name" : "error_message", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + }, { + "id" : 80, + "name" : "complex_constraint", + "required" : false, + "type" : { + "type" : "struct", + "fields" : [ { + "id" : 87, + "name" : "logic_operator", + "required" : false, + "type" : "string" + }, { + "id" : 88, + "name" : "operands", + "required" : false, + "type" : { + "type" : "list", + "element-id" : 89, + "element" : { + "type" : "struct", + "fields" : [ { + "id" : 90, + "name" : "field_path", + "required" : false, + "type" : "string" + }, { + "id" : 91, + "name" : "operator", + "required" : false, + "type" : "string" + }, { + "id" : 92, + "name" : "comparison_value", + "required" : false, + "type" : "string" + } ] + }, + "element-required" : false + } + } ] + } + } ] + } + } ] + }, + "value-required" : false + } + } ] + } ], + "default-spec-id" : 0, + "partition-specs" : [ { + "spec-id" : 0, + "fields" : [ ] + } ], + "last-partition-id" : 999, + "default-sort-order-id" : 0, + "sort-orders" : [ { + "order-id" : 0, + "fields" : [ ] + } ], + "properties" : { + "owner" : "hive", + "write.format.default" : "orc", + "write.parquet.compression-codec" : "zstd" + }, + "current-snapshot-id" : 514179801967160228, + "refs" : { + "main" : { + "snapshot-id" : 514179801967160228, + "type" : "branch" + } + }, + "snapshots" : [ { + "sequence-number" : 1, + "snapshot-id" : 514179801967160228, + "timestamp-ms" : 1760884424603, + "summary" : { + "operation" : "append", + "spark.app.id" : "application_1738810850199_0681", + "added-data-files" : "1", + "added-records" : "1", + "added-files-size" : "7181", + "changed-partition-count" : "1", + "total-records" : "1", + "total-files-size" : "7181", + "total-data-files" : "1", + "total-delete-files" : "0", + "total-position-deletes" : "0", + "total-equality-deletes" : "0" + }, + "manifest-list" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/nested_user_profiles_iceberg_orc/metadata/snap-514179801967160228-1-d9aed717-61ef-422b-b044-a16ca31f9e86.avro", + "schema-id" : 0 + } ], + "statistics" : [ ], + "partition-statistics" : [ ], + "snapshot-log" : [ { + "timestamp-ms" : 1760884424603, + "snapshot-id" : 514179801967160228 + } ], + "metadata-log" : [ { + "timestamp-ms" : 1760884376565, + "metadata-file" : "hdfs://hdfs-cluster/user/hive/warehouse/cqtest.db/nested_user_profiles_iceberg_orc/metadata/00000-daa20949-0948-4f33-bcf4-5b6bcb0cd400.metadata.json" + } ] +} \ No newline at end of file diff --git a/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/d9aed717-61ef-422b-b044-a16ca31f9e86-m0.avro b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/d9aed717-61ef-422b-b044-a16ca31f9e86-m0.avro new file mode 100644 index 00000000000000..d8b578a8f86bfc --- /dev/null +++ b/be/test/exec/test_data/nested_user_profiles_iceberg_orc/metadata/d9aed717-61ef-422b-b044-a16ca31f9e86-m0.avro @@ -0,0 +1 @@ +Obj schema]{"type":"struct","schema-id":0,"fields":[{"id":1,"name":"id","required":false,"type":"long"},{"id":2,"name":"name","required":false,"type":"string"},{"id":3,"name":"profile","required":false,"type":{"type":"struct","fields":[{"id":9,"name":"address","required":false,"type":{"type":"struct","fields":[{"id":12,"name":"street","required":false,"type":"string"},{"id":13,"name":"city","required":false,"type":"string"},{"id":14,"name":"coordinates","required":false,"type":{"type":"struct","fields":[{"id":15,"name":"lat","required":false,"type":"double"},{"id":16,"name":"lng","required":false,"type":"double"}]}}]}},{"id":10,"name":"contact","required":false,"type":{"type":"struct","fields":[{"id":17,"name":"email","required":false,"type":"string"},{"id":18,"name":"phone","required":false,"type":{"type":"struct","fields":[{"id":19,"name":"country_code","required":false,"type":"string"},{"id":20,"name":"number","required":false,"type":"string"}]}}]}},{"id":11,"name":"hobbies","required":false,"type":{"type":"list","element-id":21,"element":{"type":"struct","fields":[{"id":22,"name":"name","required":false,"type":"string"},{"id":23,"name":"level","required":false,"type":"int"}]},"element-required":false}}]}},{"id":4,"name":"tags","required":false,"type":{"type":"list","element-id":24,"element":"string","element-required":false}},{"id":5,"name":"friends","required":false,"type":{"type":"list","element-id":25,"element":{"type":"struct","fields":[{"id":26,"name":"user_id","required":false,"type":"long"},{"id":27,"name":"nickname","required":false,"type":"string"},{"id":28,"name":"friendship_level","required":false,"type":"int"}]},"element-required":false}},{"id":6,"name":"recent_activity","required":false,"type":{"type":"list","element-id":29,"element":{"type":"struct","fields":[{"id":30,"name":"action","required":false,"type":"string"},{"id":31,"name":"details","required":false,"type":{"type":"list","element-id":32,"element":{"type":"struct","fields":[{"id":33,"name":"key","required":false,"type":"string"},{"id":34,"name":"value","required":false,"type":"string"}]},"element-required":false}}]},"element-required":false}},{"id":7,"name":"attributes","required":false,"type":{"type":"map","key-id":35,"key":"string","value-id":36,"value":"string","value-required":false}},{"id":8,"name":"complex_attributes","required":false,"type":{"type":"map","key-id":37,"key":"string","value-id":38,"value":{"type":"struct","fields":[{"id":39,"name":"metadata","required":false,"type":{"type":"struct","fields":[{"id":43,"name":"version","required":false,"type":"string"},{"id":44,"name":"created_time","required":false,"type":"timestamptz"},{"id":45,"name":"last_updated","required":false,"type":"timestamptz"},{"id":46,"name":"quality_score","required":false,"type":"double"}]}},{"id":40,"name":"historical_scores","required":false,"type":{"type":"list","element-id":47,"element":{"type":"struct","fields":[{"id":48,"name":"period","required":false,"type":"string"},{"id":49,"name":"score","required":false,"type":"double"},{"id":50,"name":"components","required":false,"type":{"type":"list","element-id":52,"element":{"type":"struct","fields":[{"id":53,"name":"component_name","required":false,"type":"string"},{"id":54,"name":"weight","required":false,"type":"float"},{"id":55,"name":"sub_scores","required":false,"type":{"type":"map","key-id":56,"key":"string","value-id":57,"value":"double","value-required":false}}]},"element-required":false}},{"id":51,"name":"trends","required":false,"type":{"type":"struct","fields":[{"id":58,"name":"direction","required":false,"type":"string"},{"id":59,"name":"magnitude","required":false,"type":"double"},{"id":60,"name":"confidence_interval","required":false,"type":{"type":"struct","fields":[{"id":61,"name":"lower","required":false,"type":"double"},{"id":62,"name":"upper","required":false,"type":"double"}]}}]}}]},"element-required":false}},{"id":41,"name":"hierarchical_data","required":false,"type":{"type":"map","key-id":63,"key":"string","value-id":64,"value":{"type":"struct","fields":[{"id":65,"name":"category","required":false,"type":"string"},{"id":66,"name":"sub_items","required":false,"type":{"type":"list","element-id":68,"element":{"type":"struct","fields":[{"id":69,"name":"item_id","required":false,"type":"long"},{"id":70,"name":"properties","required":false,"type":{"type":"map","key-id":72,"key":"string","value-id":73,"value":"string","value-required":false}},{"id":71,"name":"metrics","required":false,"type":{"type":"struct","fields":[{"id":74,"name":"value","required":false,"type":"double"},{"id":75,"name":"unit","required":false,"type":"string"}]}}]},"element-required":false}},{"id":67,"name":"summary","required":false,"type":{"type":"struct","fields":[{"id":76,"name":"total_count","required":false,"type":"int"},{"id":77,"name":"average_value","required":false,"type":"double"}]}}]},"value-required":false}},{"id":42,"name":"validation_rules","required":false,"type":{"type":"struct","fields":[{"id":78,"name":"required","required":false,"type":"boolean"},{"id":79,"name":"constraints","required":false,"type":{"type":"list","element-id":81,"element":{"type":"struct","fields":[{"id":82,"name":"rule_type","required":false,"type":"string"},{"id":83,"name":"parameters","required":false,"type":{"type":"map","key-id":85,"key":"string","value-id":86,"value":"string","value-required":false}},{"id":84,"name":"error_message","required":false,"type":"string"}]},"element-required":false}},{"id":80,"name":"complex_constraint","required":false,"type":{"type":"struct","fields":[{"id":87,"name":"logic_operator","required":false,"type":"string"},{"id":88,"name":"operands","required":false,"type":{"type":"list","element-id":89,"element":{"type":"struct","fields":[{"id":90,"name":"field_path","required":false,"type":"string"},{"id":91,"name":"operator","required":false,"type":"string"},{"id":92,"name":"comparison_value","required":false,"type":"string"}]},"element-required":false}}]}}]}}]},"value-required":false}}]}avro.schema5{"type":"record","name":"manifest_entry","fields":[{"name":"status","type":"int","field-id":0},{"name":"snapshot_id","type":["null","long"],"default":null,"field-id":1},{"name":"sequence_number","type":["null","long"],"default":null,"field-id":3},{"name":"file_sequence_number","type":["null","long"],"default":null,"field-id":4},{"name":"data_file","type":{"type":"record","name":"r2","fields":[{"name":"content","type":"int","doc":"Contents of the file: 0=data, 1=position deletes, 2=equality deletes","field-id":134},{"name":"file_path","type":"string","doc":"Location URI with FS scheme","field-id":100},{"name":"file_format","type":"string","doc":"File format name: avro, orc, or parquet","field-id":101},{"name":"partition","type":{"type":"record","name":"r102","fields":[]},"doc":"Partition data tuple, schema based on the partition spec","field-id":102},{"name":"record_count","type":"long","doc":"Number of records in the file","field-id":103},{"name":"file_size_in_bytes","type":"long","doc":"Total file size in bytes","field-id":104},{"name":"column_sizes","type":["null",{"type":"array","items":{"type":"record","name":"k117_v118","fields":[{"name":"key","type":"int","field-id":117},{"name":"value","type":"long","field-id":118}]},"logicalType":"map"}],"doc":"Map of column id to total size on disk","default":null,"field-id":108},{"name":"value_counts","type":["null",{"type":"array","items":{"type":"record","name":"k119_v120","fields":[{"name":"key","type":"int","field-id":119},{"name":"value","type":"long","field-id":120}]},"logicalType":"map"}],"doc":"Map of column id to total count, including null and NaN","default":null,"field-id":109},{"name":"null_value_counts","type":["null",{"type":"array","items":{"type":"record","name":"k121_v122","fields":[{"name":"key","type":"int","field-id":121},{"name":"value","type":"long","field-id":122}]},"logicalType":"map"}],"doc":"Map of column id to null value count","default":null,"field-id":110},{"name":"nan_value_counts","type":["null",{"type":"array","items":{"type":"record","name":"k138_v139","fields":[{"name":"key","type":"int","field-id":138},{"name":"value","type":"long","field-id":139}]},"logicalType":"map"}],"doc":"Map of column id to number of NaN values in the column","default":null,"field-id":137},{"name":"lower_bounds","type":["null",{"type":"array","items":{"type":"record","name":"k126_v127","fields":[{"name":"key","type":"int","field-id":126},{"name":"value","type":"bytes","field-id":127}]},"logicalType":"map"}],"doc":"Map of column id to lower bound","default":null,"field-id":125},{"name":"upper_bounds","type":["null",{"type":"array","items":{"type":"record","name":"k129_v130","fields":[{"name":"key","type":"int","field-id":129},{"name":"value","type":"bytes","field-id":130}]},"logicalType":"map"}],"doc":"Map of column id to upper bound","default":null,"field-id":128},{"name":"key_metadata","type":["null","bytes"],"doc":"Encryption key metadata blob","default":null,"field-id":131},{"name":"split_offsets","type":["null",{"type":"array","items":"long","element-id":133}],"doc":"Splittable offsets","default":null,"field-id":132},{"name":"equality_ids","type":["null",{"type":"array","items":"int","element-id":136}],"doc":"Equality comparison field IDs","default":null,"field-id":135},{"name":"sort_order_id","type":["null","int"],"doc":"Sort order ID","default":null,"field-id":140}]},"field-id":2}]}avro.codecdeflateformat-version2"partition-spec-id0iceberg.schema+{"type":"struct","schema-id":0,"fields":[{"id":0,"name":"status","required":true,"type":"int"},{"id":1,"name":"snapshot_id","required":false,"type":"long"},{"id":3,"name":"sequence_number","required":false,"type":"long"},{"id":4,"name":"file_sequence_number","required":false,"type":"long"},{"id":2,"name":"data_file","required":true,"type":{"type":"struct","fields":[{"id":134,"name":"content","required":true,"type":"int","doc":"Contents of the file: 0=data, 1=position deletes, 2=equality deletes"},{"id":100,"name":"file_path","required":true,"type":"string","doc":"Location URI with FS scheme"},{"id":101,"name":"file_format","required":true,"type":"string","doc":"File format name: avro, orc, or parquet"},{"id":102,"name":"partition","required":true,"type":{"type":"struct","fields":[]},"doc":"Partition data tuple, schema based on the partition spec"},{"id":103,"name":"record_count","required":true,"type":"long","doc":"Number of records in the file"},{"id":104,"name":"file_size_in_bytes","required":true,"type":"long","doc":"Total file size in bytes"},{"id":108,"name":"column_sizes","required":false,"type":{"type":"map","key-id":117,"key":"int","value-id":118,"value":"long","value-required":true},"doc":"Map of column id to total size on disk"},{"id":109,"name":"value_counts","required":false,"type":{"type":"map","key-id":119,"key":"int","value-id":120,"value":"long","value-required":true},"doc":"Map of column id to total count, including null and NaN"},{"id":110,"name":"null_value_counts","required":false,"type":{"type":"map","key-id":121,"key":"int","value-id":122,"value":"long","value-required":true},"doc":"Map of column id to null value count"},{"id":137,"name":"nan_value_counts","required":false,"type":{"type":"map","key-id":138,"key":"int","value-id":139,"value":"long","value-required":true},"doc":"Map of column id to number of NaN values in the column"},{"id":125,"name":"lower_bounds","required":false,"type":{"type":"map","key-id":126,"key":"int","value-id":127,"value":"binary","value-required":true},"doc":"Map of column id to lower bound"},{"id":128,"name":"upper_bounds","required":false,"type":{"type":"map","key-id":129,"key":"int","value-id":130,"value":"binary","value-required":true},"doc":"Map of column id to upper bound"},{"id":131,"name":"key_metadata","required":false,"type":"binary","doc":"Encryption key metadata blob"},{"id":132,"name":"split_offsets","required":false,"type":{"type":"list","element-id":133,"element":"long","element-required":true},"doc":"Splittable offsets"},{"id":135,"name":"equality_ids","required":false,"type":{"type":"list","element-id":136,"element":"int","element-required":true},"doc":"Equality comparison field IDs"},{"id":140,"name":"sort_order_id","required":false,"type":"int","doc":"Sort order ID"}]}}]}partition-spec[]contentdatav7lrPKq=lXY~, ð,5;3*baia6_kێͮ"!!!co{B=l}8s8̇m7 `bg4{dxN7̕N j`9QcmzA[]s{r.6[A7n3}Vo7\3S65jV}׈5Vq+ިeX=i٥;y~o/HI"-я sTIGAAJ* ,1'8&}:\.箨"Xd[,OD\ܐw7 pC#J?&H"/(M%^!^[H{G}ʾ'>~@\dNp8łӬp?gXrs<*ks gEqHA *@9@\aul봻9ѵ.a0rP6QT*ò-;+amiݜ2iW親,= `Mnam a]lak|lGn& %i p(h&7EӔ)CYZ.eSԢ6uHm CDB#m# vv߁7 0 Q8LB`4d P 0ЄEXG@!l"l!;{GlShH`,q 泌a ;㓵rUHԴ+’ + 3J*MmMXYȗHٓ[DŽxʝ,??ν +:Ԛ&k(N)] H$"J!)d>_N 7x3EuRsOq~_΁b}zdɤb \ No newline at end of file diff --git a/be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/snap-6622777947381868002-1-bee22dff-a1d3-420d-bfba-c1b4193ab0df.avro b/be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/snap-6622777947381868002-1-bee22dff-a1d3-420d-bfba-c1b4193ab0df.avro new file mode 100644 index 00000000000000..a3eee4e6a11a20 Binary files /dev/null and b/be/test/exec/test_data/nested_user_profiles_iceberg_parquet/metadata/snap-6622777947381868002-1-bee22dff-a1d3-420d-bfba-c1b4193ab0df.avro differ diff --git a/be/test/exec/test_data/nested_user_profiles_orc/_SUCCESS b/be/test/exec/test_data/nested_user_profiles_orc/_SUCCESS new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/be/test/exec/test_data/nested_user_profiles_orc/part-00000-62614f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc b/be/test/exec/test_data/nested_user_profiles_orc/part-00000-62614f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc new file mode 100644 index 00000000000000..8a0f8bc17b489d Binary files /dev/null and b/be/test/exec/test_data/nested_user_profiles_orc/part-00000-62614f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc differ diff --git a/be/test/exec/test_data/nested_user_profiles_parquet/_SUCCESS b/be/test/exec/test_data/nested_user_profiles_parquet/_SUCCESS new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/be/test/exec/test_data/nested_user_profiles_parquet/part-00000-64a7a390-1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet b/be/test/exec/test_data/nested_user_profiles_parquet/part-00000-64a7a390-1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet new file mode 100644 index 00000000000000..73ae0061c21e1e Binary files /dev/null and b/be/test/exec/test_data/nested_user_profiles_parquet/part-00000-64a7a390-1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet differ diff --git a/be/test/olap/rowset/segment_v2/column_reader_test.cpp b/be/test/olap/rowset/segment_v2/column_reader_test.cpp new file mode 100644 index 00000000000000..98478df7016196 --- /dev/null +++ b/be/test/olap/rowset/segment_v2/column_reader_test.cpp @@ -0,0 +1,220 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +#include "olap/rowset/segment_v2/column_reader.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include "agent/be_exec_version_manager.h" +#include "common/config.h" +#include "gen_cpp/olap_file.pb.h" +#include "gen_cpp/segment_v2.pb.h" +#include "io/fs/file_reader.h" +#include "mock/mock_segment.h" +#include "olap/rowset/segment_v2/column_reader_cache.h" +#include "olap/rowset/segment_v2/segment.h" +#include "olap/rowset/segment_v2/variant/variant_column_reader.h" +#include "olap/tablet_schema.h" +#include "vec/json/path_in_data.h" + +namespace doris::segment_v2 { +class ColumnReaderTest : public ::testing::Test { +protected: + void SetUp() override {} + void TearDown() override {} +}; + +TEST_F(ColumnReaderTest, StructAccessPaths) { + auto create_struct_iterator = []() { + auto null_reader = std::make_shared(); + auto null_iterator = std::make_unique(null_reader); + + std::vector sub_column_iterators; + auto sub_reader1 = std::make_shared(); + auto sub_iterator1 = std::make_unique(sub_reader1); + sub_iterator1->set_column_name("sub_col_1"); + auto sub_reader2 = std::make_shared(); + auto sub_iterator2 = std::make_unique(sub_reader2); + sub_iterator2->set_column_name("sub_col_2"); + + sub_column_iterators.emplace_back(std::move(sub_iterator1)); + sub_column_iterators.emplace_back(std::move(sub_iterator2)); + auto iterator = std::make_unique(std::make_shared(), + std::move(null_iterator), + std::move(sub_column_iterators)); + return iterator; + }; + + auto iterator = create_struct_iterator(); + auto st = iterator->set_access_paths(TColumnAccessPaths {}, TColumnAccessPaths {}); + + ASSERT_TRUE(st.ok()) << "failed to set access paths: " << st.to_string(); + ASSERT_EQ(iterator->_reading_flag, ColumnIterator::ReadingFlag::NORMAL_READING); + + TColumnAccessPaths all_access_paths; + all_access_paths.emplace_back(); + + TColumnAccessPaths predicate_access_paths; + predicate_access_paths.emplace_back(); + + st = iterator->set_access_paths(all_access_paths, predicate_access_paths); + // empty paths leads to error + ASSERT_FALSE(st.ok()); + + // Only reading sub_col_1 + // sub_col_2 should be set to SKIP_READING + all_access_paths[0].data_access_path.path = {"self", "sub_col_1"}; + + predicate_access_paths[0].data_access_path.path = {"self", "sub_col_1"}; + + st = iterator->set_access_paths(all_access_paths, predicate_access_paths); + // invalid name leads to error + ASSERT_FALSE(st.ok()); + + iterator->set_column_name("self"); + // now column name is "self", should be ok + st = iterator->set_access_paths(all_access_paths, predicate_access_paths); + ASSERT_TRUE(st.ok()) << "failed to set access paths: " << st.to_string(); + ASSERT_EQ(iterator->_reading_flag, ColumnIterator::ReadingFlag::READING_FOR_PREDICATE); + + ASSERT_EQ(iterator->_sub_column_iterators[0]->_reading_flag, + ColumnIterator::ReadingFlag::READING_FOR_PREDICATE); + ASSERT_EQ(iterator->_sub_column_iterators[1]->_reading_flag, + ColumnIterator::ReadingFlag::SKIP_READING); + + // Reading all sub columns + all_access_paths[0].data_access_path.path = {"self"}; + iterator = create_struct_iterator(); + iterator->set_column_name("self"); + st = iterator->set_access_paths(all_access_paths, predicate_access_paths); + + ASSERT_TRUE(st.ok()) << "failed to set access paths: " << st.to_string(); + ASSERT_EQ(iterator->_reading_flag, ColumnIterator::ReadingFlag::READING_FOR_PREDICATE); + + ASSERT_EQ(iterator->_sub_column_iterators[0]->_reading_flag, + ColumnIterator::ReadingFlag::READING_FOR_PREDICATE); + ASSERT_EQ(iterator->_sub_column_iterators[1]->_reading_flag, + ColumnIterator::ReadingFlag::NEED_TO_READ); +} + +TEST_F(ColumnReaderTest, MultiAccessPaths) { + auto create_struct_iterator = []() { + auto null_reader = std::make_shared(); + auto null_iterator = std::make_unique(null_reader); + + std::vector sub_column_iterators; + auto sub_reader1 = std::make_shared(); + auto sub_iterator1 = std::make_unique(sub_reader1); + sub_iterator1->set_column_name("sub_col_1"); + auto sub_reader2 = std::make_shared(); + auto sub_iterator2 = std::make_unique(sub_reader2); + sub_iterator2->set_column_name("sub_col_2"); + + sub_column_iterators.emplace_back(std::move(sub_iterator1)); + sub_column_iterators.emplace_back(std::move(sub_iterator2)); + auto iterator = std::make_unique(std::make_shared(), + std::move(null_iterator), + std::move(sub_column_iterators)); + return iterator; + }; + + auto create_struct_iterator2 = [](ColumnIteratorUPtr&& nested_iterator) { + auto null_reader = std::make_shared(); + auto null_iterator = std::make_unique(null_reader); + + std::vector sub_column_iterators; + auto sub_reader1 = std::make_shared(); + auto sub_iterator1 = std::make_unique(sub_reader1); + sub_iterator1->set_column_name("sub_col_1"); + + sub_column_iterators.emplace_back(std::move(sub_iterator1)); + sub_column_iterators.emplace_back(std::move(nested_iterator)); + auto iterator = std::make_unique(std::make_shared(), + std::move(null_iterator), + std::move(sub_column_iterators)); + return iterator; + }; + + auto struct_iterator = create_struct_iterator(); + struct_iterator->set_column_name("struct"); + + auto map_iterator = std::make_unique( + std::make_shared(), + std::make_unique(std::make_shared()), // null iterator + std::make_unique( + std::make_unique(std::make_shared())), + std::make_unique(std::make_shared()), + std::move(struct_iterator)); + + auto array_iterator = std::make_unique( + std::make_shared(), + std::make_unique( + std::make_unique(std::make_shared())), + std::move(map_iterator), + std::make_unique(std::make_shared())); + + // here create: + // struct< + // sub_col_1, + // sub_col_2: array< + // map< + // key, + // value: struct< + // sub_col_1, + // sub_col_2 + // > + // > + // > + // > + array_iterator->set_column_name("sub_col_2"); + auto iterator = create_struct_iterator2(std::move(array_iterator)); + TColumnAccessPaths all_access_paths; + all_access_paths.emplace_back(); + + // all access paths: + // self.sub_col_2.*.KEYS + // predicates paths empty + all_access_paths[0].data_access_path.path = {"self", "sub_col_2", "*", "KEYS"}; + + TColumnAccessPaths predicate_access_paths; + + iterator->set_column_name("self"); + auto st = iterator->set_access_paths(all_access_paths, predicate_access_paths); + + ASSERT_TRUE(st.ok()) << "failed to set access paths: " << st.to_string(); + ASSERT_EQ(iterator->_reading_flag, ColumnIterator::ReadingFlag::NEED_TO_READ); + + ASSERT_EQ(iterator->_sub_column_iterators[0]->_reading_flag, + ColumnIterator::ReadingFlag::SKIP_READING); + ASSERT_EQ(iterator->_sub_column_iterators[1]->_reading_flag, + ColumnIterator::ReadingFlag::NEED_TO_READ); + + auto* array_iter = + static_cast(iterator->_sub_column_iterators[1].get()); + ASSERT_EQ(array_iter->_item_iterator->_reading_flag, ColumnIterator::ReadingFlag::NEED_TO_READ); + + auto* map_iter = static_cast(array_iter->_item_iterator.get()); + ASSERT_EQ(map_iter->_key_iterator->_reading_flag, ColumnIterator::ReadingFlag::NEED_TO_READ); + ASSERT_EQ(map_iter->_val_iterator->_reading_flag, ColumnIterator::ReadingFlag::SKIP_READING); +} +} // namespace doris::segment_v2 \ No newline at end of file diff --git a/be/test/vec/exec/format/parquet/parquet_thrift_test.cpp b/be/test/vec/exec/format/parquet/parquet_thrift_test.cpp index 797ab9fc7db8e6..4f4202e1143ccb 100644 --- a/be/test/vec/exec/format/parquet/parquet_thrift_test.cpp +++ b/be/test/vec/exec/format/parquet/parquet_thrift_test.cpp @@ -140,20 +140,18 @@ TEST_F(ParquetThriftReaderTest, complex_nested_file) { ASSERT_EQ(schemaDescriptor.get_column_index("hobby"), 2); auto hobby = schemaDescriptor.get_column("hobby"); - // should be parsed as ARRAY>> - ASSERT_TRUE(hobby->children.size() == 1 && hobby->children[0].children.size() == 1 && - hobby->children[0].children[0].children.size() == 2); + // should be parsed as ARRAY> + ASSERT_TRUE(hobby->children.size() == 1 && hobby->children[0].children.size() == 2); ASSERT_TRUE(hobby->data_type->get_primitive_type() == TYPE_ARRAY && - hobby->children[0].data_type->get_primitive_type() == TYPE_MAP && - hobby->children[0].children[0].data_type->get_primitive_type() == TYPE_STRUCT); + hobby->children[0].data_type->get_primitive_type() == TYPE_MAP); // hobby(opt) --- bag(rep) --- array_element(opt) --- map(rep) // \------- key(req) // \------- value(opt) // R=0,D=1 R=1,D=2 R=1,D=3 R=2,D=4 // \------ R=2,D=4 // \------ R=2,D=5 - auto h_key = hobby->children[0].children[0].children[0]; - auto h_value = hobby->children[0].children[0].children[1]; + auto h_key = hobby->children[0].children[0]; + auto h_value = hobby->children[0].children[1]; ASSERT_TRUE(h_key.repetition_level == 2 && h_key.definition_level == 4); ASSERT_TRUE(h_value.repetition_level == 2 && h_value.definition_level == 5); diff --git a/be/test/vec/exec/format/table/hive/hive_reader_create_column_ids_test.cpp b/be/test/vec/exec/format/table/hive/hive_reader_create_column_ids_test.cpp new file mode 100644 index 00000000000000..eea631928578f4 --- /dev/null +++ b/be/test/vec/exec/format/table/hive/hive_reader_create_column_ids_test.cpp @@ -0,0 +1,1193 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "common/object_pool.h" +#include "exec/olap_common.h" +#include "io/fs/file_meta_cache.h" +#include "io/fs/file_reader_writer_fwd.h" +#include "io/fs/file_system.h" +#include "io/fs/local_file_system.h" +#include "runtime/descriptors.h" +#include "runtime/runtime_state.h" +#include "util/timezone_utils.h" +#include "vec/columns/column.h" +#include "vec/columns/column_array.h" +#include "vec/columns/column_nullable.h" +#include "vec/columns/column_struct.h" +#include "vec/core/block.h" +#include "vec/core/column_with_type_and_name.h" +#include "vec/data_types/data_type.h" +#include "vec/data_types/data_type_array.h" +#include "vec/data_types/data_type_factory.hpp" +#include "vec/data_types/data_type_nullable.h" +#include "vec/data_types/data_type_number.h" +#include "vec/data_types/data_type_string.h" +#include "vec/data_types/data_type_struct.h" +#include "vec/exec/format/parquet/vparquet_reader.h" +#include "vec/exec/format/table/hive_reader.h" + +namespace doris::vectorized { + +// Define the column access path configuration structure +struct ColumnAccessPathConfig { + std::string column_name; + std::vector> all_column_paths; // For all_column_access_paths + std::vector> predicate_paths; // For predicate_column_access_paths +}; + +// ORC column IDs are assigned in a tree-increment order, root is 0 and children increment sequentially. +// 0: struct (table/root) +// 1: id (bigint) +// 2: name (string) +// 3: profile (struct) +// 4: address (struct) +// 5: street (string) +// 6: city (string) +// 7: coordinates (struct) +// 8: lat (double) +// 9: lng (double) +// 10: contact (struct) +// 11: email (string) +// 12: phone (struct) +// 13: country_code (string) +// 14: number (string) +// 15: hobbies (array) +// 16: element (struct) +// 17: name (string) +// 18: level (int) +// 19: tags (array) +// 20: element (string) +// 21: friends (array) +// 22: element (struct) +// 23: user_id (bigint) +// 24: nickname (string) +// 25: friendship_level (int) +// 26: recent_activity (array) +// 27: element (struct) +// 28: action (string) +// 29: details (array) +// 30: element (struct) +// 31: key (string) +// 32: value (string) +// 33: attributes (map) +// 34: key (string) +// 35: value (string) +// 36: complex_attributes (map) +// 37: key (string) +// 38: value (struct) +// 39: metadata (struct) +// 40: version (string) +// 41: created_time (timestamp) +// 42: last_updated (timestamp) +// 43: quality_score (double) +// 44: historical_scores (array) +// 45: element (struct) +// 46: period (string) +// 47: score (double) +// 48: components (array) +// 49: element (struct) +// 50: component_name (string) +// 51: weight (float) +// 52: sub_scores (map) +// 53: key (string) +// 54: value (double) +// 55: trends (struct) +// 56: direction (string) +// 57: magnitude (double) +// 58: confidence_interval (struct) +// 59: lower (double) +// 60: upper (double) +// 61: hierarchical_data (map) +// 62: key (string) +// 63: value (struct) +// 64: category (string) +// 65: sub_items (array) +// 66: element (struct) +// 67: item_id (bigint) +// 68: properties (map) +// 69: key (string) +// 70: value (string) +// 71: metrics (struct) +// 72: value (double) +// 73: unit (string) +// 74: summary (struct) +// 75: total_count (int) +// 76: average_value (double) +// 77: validation_rules (struct) +// 78: required (boolean) +// 79: constraints (array) +// 80: element (struct) +// 81: rule_type (string) +// 82: parameters (map) +// 83: key (string) +// 84: value (string) +// 85: error_message (string) +// 86: complex_constraint (struct) +// 87: logic_operator (string) +// 88: operands (array) +// 89: element (struct) +// 90: field_path (string) +// 91: operator (string) +// 92: comparison_value (string) + +class HiveReaderCreateColumnIdsTest : public ::testing::Test { +protected: + void SetUp() override { + cache = std::make_unique(1024); + + // Setup timezone + doris::TimezoneUtils::find_cctz_time_zone(doris::TimezoneUtils::default_time_zone, + timezone_obj); + } + + void TearDown() override { cache.reset(); } + + // Helper function to create tuple descriptor + const TupleDescriptor* create_tuple_descriptor( + DescriptorTbl** desc_tbl, ObjectPool& obj_pool, TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc, const std::vector& column_names, + const std::vector& column_positions, + const std::vector& column_types, + const std::vector& access_configs = {}) { + // Create table descriptor with complex schema + auto create_table_desc = [this, &access_configs]( + TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc, + const std::vector& table_column_names, + const std::vector& table_column_positions, + const std::vector& types) { + t_table_desc.__set_id(0); + t_table_desc.__set_tableType(TTableType::HIVE_TABLE); + t_table_desc.__set_numCols(0); + t_table_desc.__set_numClusteringCols(0); + t_desc_table.tableDescriptors.push_back(t_table_desc); + t_desc_table.__isset.tableDescriptors = true; + for (int i = 0; i < table_column_names.size(); i++) { + TSlotDescriptor tslot_desc; + TTypeDesc type; + if (table_column_names[i] == "id") { + // id: bigint + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(TPrimitiveType::BIGINT); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "name") { + // name: string + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(TPrimitiveType::STRING); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "tags") { + // tags: array + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_node; + element_node.__set_type(TTypeNodeType::SCALAR); + TScalarType element_scalar; + element_scalar.__set_type(TPrimitiveType::STRING); + element_node.__set_scalar_type(element_scalar); + type.types.push_back(element_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "friends") { + // friends: array> + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_struct_node; + element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector element_fields; + TStructField user_id_field; + user_id_field.__set_name("user_id"); + user_id_field.__set_contains_null(true); + element_fields.push_back(user_id_field); + TStructField nickname_field; + nickname_field.__set_name("nickname"); + nickname_field.__set_contains_null(true); + element_fields.push_back(nickname_field); + TStructField friendship_level_field; + friendship_level_field.__set_name("friendship_level"); + friendship_level_field.__set_contains_null(true); + element_fields.push_back(friendship_level_field); + element_struct_node.__set_struct_fields(element_fields); + type.types.push_back(element_struct_node); + // user_id: bigint + TTypeNode user_id_node; + user_id_node.__set_type(TTypeNodeType::SCALAR); + TScalarType user_id_scalar; + user_id_scalar.__set_type(TPrimitiveType::BIGINT); + user_id_node.__set_scalar_type(user_id_scalar); + type.types.push_back(user_id_node); + // nickname: string + TTypeNode nickname_node; + nickname_node.__set_type(TTypeNodeType::SCALAR); + TScalarType nickname_scalar; + nickname_scalar.__set_type(TPrimitiveType::STRING); + nickname_node.__set_scalar_type(nickname_scalar); + type.types.push_back(nickname_node); + // friendship_level: int + TTypeNode friendship_level_node; + friendship_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType friendship_level_scalar; + friendship_level_scalar.__set_type(TPrimitiveType::INT); + friendship_level_node.__set_scalar_type(friendship_level_scalar); + type.types.push_back(friendship_level_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "recent_activity") { + // recent_activity: array>>> + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_struct_node; + element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector element_fields; + TStructField action_field; + action_field.__set_name("action"); + action_field.__set_contains_null(true); + element_fields.push_back(action_field); + TStructField details_field; + details_field.__set_name("details"); + details_field.__set_contains_null(true); + element_fields.push_back(details_field); + element_struct_node.__set_struct_fields(element_fields); + type.types.push_back(element_struct_node); + // action: string + TTypeNode action_node; + action_node.__set_type(TTypeNodeType::SCALAR); + TScalarType action_scalar; + action_scalar.__set_type(TPrimitiveType::STRING); + action_node.__set_scalar_type(action_scalar); + type.types.push_back(action_node); + // details: array> + TTypeNode details_array_node; + details_array_node.__set_type(TTypeNodeType::ARRAY); + details_array_node.__set_contains_nulls({true}); + type.types.push_back(details_array_node); + TTypeNode details_element_struct_node; + details_element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector details_element_fields; + TStructField key_field; + key_field.__set_name("key"); + key_field.__set_contains_null(true); + details_element_fields.push_back(key_field); + TStructField value_field; + value_field.__set_name("value"); + value_field.__set_contains_null(true); + details_element_fields.push_back(value_field); + details_element_struct_node.__set_struct_fields(details_element_fields); + type.types.push_back(details_element_struct_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: string + TTypeNode value_node; + value_node.__set_type(TTypeNodeType::SCALAR); + TScalarType value_scalar; + value_scalar.__set_type(TPrimitiveType::STRING); + value_node.__set_scalar_type(value_scalar); + type.types.push_back(value_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "attributes") { + // attributes: map + TTypeNode map_node; + map_node.__set_type(TTypeNodeType::MAP); + map_node.__set_contains_nulls({true, true}); + type.types.push_back(map_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: string + TTypeNode value_node; + value_node.__set_type(TTypeNodeType::SCALAR); + TScalarType value_scalar; + value_scalar.__set_type(TPrimitiveType::STRING); + value_node.__set_scalar_type(value_scalar); + type.types.push_back(value_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "complex_attributes") { + // complex_attributes: map>> + TTypeNode map_node; + map_node.__set_type(TTypeNodeType::MAP); + map_node.__set_contains_nulls({true, true}); + type.types.push_back(map_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: struct> + TTypeNode value_struct_node; + value_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector value_fields; + TStructField metadata_field; + metadata_field.__set_name("metadata"); + metadata_field.__set_contains_null(true); + value_fields.push_back(metadata_field); + value_struct_node.__set_struct_fields(value_fields); + type.types.push_back(value_struct_node); + // metadata: struct + TTypeNode metadata_struct_node; + metadata_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector metadata_fields; + TStructField version_field; + version_field.__set_name("version"); + version_field.__set_contains_null(true); + metadata_fields.push_back(version_field); + TStructField created_time_field; + created_time_field.__set_name("created_time"); + created_time_field.__set_contains_null(true); + metadata_fields.push_back(created_time_field); + TStructField last_updated_field; + last_updated_field.__set_name("last_updated"); + last_updated_field.__set_contains_null(true); + metadata_fields.push_back(last_updated_field); + metadata_struct_node.__set_struct_fields(metadata_fields); + type.types.push_back(metadata_struct_node); + // version: string + TTypeNode version_node; + version_node.__set_type(TTypeNodeType::SCALAR); + TScalarType version_scalar; + version_scalar.__set_type(TPrimitiveType::STRING); + version_node.__set_scalar_type(version_scalar); + type.types.push_back(version_node); + // created_time: timestamp + TTypeNode created_time_node; + created_time_node.__set_type(TTypeNodeType::SCALAR); + TScalarType created_time_scalar; + created_time_scalar.__set_type(TPrimitiveType::DATETIME); + created_time_node.__set_scalar_type(created_time_scalar); + type.types.push_back(created_time_node); + // last_updated: timestamp + TTypeNode last_updated_node; + last_updated_node.__set_type(TTypeNodeType::SCALAR); + TScalarType last_updated_scalar; + last_updated_scalar.__set_type(TPrimitiveType::DATETIME); + last_updated_node.__set_scalar_type(last_updated_scalar); + type.types.push_back(last_updated_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "profile") { + // STRUCT/ARRAY nodes need contains_nulls, SCALAR nodes do not + TTypeNode struct_node; + struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector struct_fields; + TStructField address_field; + address_field.__set_name("address"); + address_field.__set_contains_null(true); + struct_fields.push_back(address_field); + TStructField contact_field; + contact_field.__set_name("contact"); + contact_field.__set_contains_null(true); + struct_fields.push_back(contact_field); + TStructField hobbies_field; + hobbies_field.__set_name("hobbies"); + hobbies_field.__set_contains_null(true); + struct_fields.push_back(hobbies_field); + struct_node.__set_struct_fields(struct_fields); + type.types.push_back(struct_node); + TTypeNode address_node; + address_node.__set_type(TTypeNodeType::STRUCT); + std::vector address_fields; + TStructField street_field; + street_field.__set_name("street"); + street_field.__set_contains_null(true); + address_fields.push_back(street_field); + TStructField city_field; + city_field.__set_name("city"); + city_field.__set_contains_null(true); + address_fields.push_back(city_field); + TStructField coordinates_field; + coordinates_field.__set_name("coordinates"); + coordinates_field.__set_contains_null(true); + address_fields.push_back(coordinates_field); + address_node.__set_struct_fields(address_fields); + type.types.push_back(address_node); + TTypeNode street_node; + street_node.__set_type(TTypeNodeType::SCALAR); + TScalarType street_scalar; + street_scalar.__set_type(TPrimitiveType::STRING); + street_node.__set_scalar_type(street_scalar); + type.types.push_back(street_node); + TTypeNode city_node; + city_node.__set_type(TTypeNodeType::SCALAR); + TScalarType city_scalar; + city_scalar.__set_type(TPrimitiveType::STRING); + city_node.__set_scalar_type(city_scalar); + type.types.push_back(city_node); + TTypeNode coordinates_node; + coordinates_node.__set_type(TTypeNodeType::STRUCT); + std::vector coordinates_fields; + TStructField lat_field; + lat_field.__set_name("lat"); + lat_field.__set_contains_null(true); + coordinates_fields.push_back(lat_field); + TStructField lng_field; + lng_field.__set_name("lng"); + lng_field.__set_contains_null(true); + coordinates_fields.push_back(lng_field); + coordinates_node.__set_struct_fields(coordinates_fields); + type.types.push_back(coordinates_node); + TTypeNode lat_node; + lat_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lat_scalar; + lat_scalar.__set_type(TPrimitiveType::DOUBLE); + lat_node.__set_scalar_type(lat_scalar); + type.types.push_back(lat_node); + TTypeNode lng_node; + lng_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lng_scalar; + lng_scalar.__set_type(TPrimitiveType::DOUBLE); + lng_node.__set_scalar_type(lng_scalar); + type.types.push_back(lng_node); + TTypeNode contact_node; + contact_node.__set_type(TTypeNodeType::STRUCT); + std::vector contact_fields; + TStructField email_field; + email_field.__set_name("email"); + email_field.__set_contains_null(true); + contact_fields.push_back(email_field); + TStructField phone_field; + phone_field.__set_name("phone"); + phone_field.__set_contains_null(true); + contact_fields.push_back(phone_field); + contact_node.__set_struct_fields(contact_fields); + type.types.push_back(contact_node); + TTypeNode email_node; + email_node.__set_type(TTypeNodeType::SCALAR); + TScalarType email_scalar; + email_scalar.__set_type(TPrimitiveType::STRING); + email_node.__set_scalar_type(email_scalar); + type.types.push_back(email_node); + TTypeNode phone_node; + phone_node.__set_type(TTypeNodeType::STRUCT); + std::vector phone_fields; + TStructField country_code_field; + country_code_field.__set_name("country_code"); + country_code_field.__set_contains_null(true); + phone_fields.push_back(country_code_field); + TStructField number_field; + number_field.__set_name("number"); + number_field.__set_contains_null(true); + phone_fields.push_back(number_field); + phone_node.__set_struct_fields(phone_fields); + type.types.push_back(phone_node); + TTypeNode country_code_node; + country_code_node.__set_type(TTypeNodeType::SCALAR); + TScalarType country_code_scalar; + country_code_scalar.__set_type(TPrimitiveType::STRING); + country_code_node.__set_scalar_type(country_code_scalar); + type.types.push_back(country_code_node); + TTypeNode number_node; + number_node.__set_type(TTypeNodeType::SCALAR); + TScalarType number_scalar; + number_scalar.__set_type(TPrimitiveType::STRING); + number_node.__set_scalar_type(number_scalar); + type.types.push_back(number_node); + TTypeNode hobbies_node; + hobbies_node.__set_type(TTypeNodeType::ARRAY); + hobbies_node.__set_contains_nulls({true}); + type.types.push_back(hobbies_node); + TTypeNode hobby_element_node; + hobby_element_node.__set_type(TTypeNodeType::STRUCT); + std::vector hobby_element_fields; + TStructField hobby_name_field; + hobby_name_field.__set_name("name"); + hobby_name_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_name_field); + TStructField hobby_level_field; + hobby_level_field.__set_name("level"); + hobby_level_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_level_field); + hobby_element_node.__set_struct_fields(hobby_element_fields); + type.types.push_back(hobby_element_node); + TTypeNode hobby_name_node; + hobby_name_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_name_scalar; + hobby_name_scalar.__set_type(TPrimitiveType::STRING); + hobby_name_node.__set_scalar_type(hobby_name_scalar); + type.types.push_back(hobby_name_node); + TTypeNode hobby_level_node; + hobby_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_level_scalar; + hobby_level_scalar.__set_type(TPrimitiveType::INT); + hobby_level_node.__set_scalar_type(hobby_level_scalar); + type.types.push_back(hobby_level_node); + tslot_desc.__set_slotType(type); + } else { + // Regular types + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(types[i]); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } + tslot_desc.__set_id(i); + tslot_desc.__set_parent(0); + tslot_desc.__set_colName(table_column_names[i]); + tslot_desc.__set_columnPos(table_column_positions[i]); + tslot_desc.__set_byteOffset(0); + tslot_desc.__set_nullIndicatorByte(0); + tslot_desc.__set_nullIndicatorBit(-1); + tslot_desc.__set_slotIdx(0); + tslot_desc.__set_isMaterialized(true); + + // Use configuration to set column_access_paths + for (const auto& config : access_configs) { + set_column_access_paths(tslot_desc, config); + } + + t_desc_table.slotDescriptors.push_back(tslot_desc); + } + t_desc_table.__isset.slotDescriptors = true; + TTupleDescriptor t_tuple_desc; + t_tuple_desc.__set_id(0); + t_tuple_desc.__set_byteSize(16); + t_tuple_desc.__set_numNullBytes(0); + t_tuple_desc.__set_tableId(0); + t_tuple_desc.__isset.tableId = true; + t_desc_table.tupleDescriptors.push_back(t_tuple_desc); + }; + + create_table_desc(t_desc_table, t_table_desc, column_names, column_positions, column_types); + EXPECT_TRUE(DescriptorTbl::create(&obj_pool, t_desc_table, desc_tbl).ok()); + return (*desc_tbl)->get_tuple_descriptor(0); + } + + // Helper function: Set column access paths + void set_column_access_paths(TSlotDescriptor& tslot_desc, + const ColumnAccessPathConfig& config) { + if (config.column_name != tslot_desc.colName) { + return; // Not the target column, skip + } + + // Set all_column_access_paths + if (!config.all_column_paths.empty()) { + std::vector access_paths; + for (const auto& path_vector : config.all_column_paths) { + TColumnAccessPath access_path; + access_path.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path; + data_path.__set_path(path_vector); + access_path.__set_data_access_path(data_path); + access_paths.push_back(access_path); + } + tslot_desc.__set_all_access_paths(access_paths); + } + + // Set predicate_column_access_paths + if (!config.predicate_paths.empty()) { + std::vector access_paths; + for (const auto& path_vector : config.predicate_paths) { + TColumnAccessPath access_path; + access_path.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path; + data_path.__set_path(path_vector); + access_path.__set_data_access_path(data_path); + access_paths.push_back(access_path); + } + tslot_desc.__set_predicate_access_paths(access_paths); + } + } + + std::unique_ptr cache; + cctz::time_zone timezone_obj; + + // Helper function: Create and setup ParquetReader + std::tuple, const FieldDescriptor*> create_parquet_reader( + const std::string& test_file) { + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + return {nullptr, nullptr}; + } + + RuntimeState runtime_state((TQueryGlobals())); + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_PARQUET; + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); + scan_range.path = test_file; + RuntimeProfile profile("test_profile"); + + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + auto generic_reader = + ParquetReader::create_unique(&profile, scan_params, scan_range, 1024, &ctz, nullptr, + &runtime_state, cache.get()); + if (!generic_reader) { + return {nullptr, nullptr}; + } + + auto parquet_reader = static_cast(generic_reader.get()); + parquet_reader->set_file_reader(file_reader); + + const FieldDescriptor* field_desc = nullptr; + st = parquet_reader->get_file_metadata_schema(&field_desc); + if (!st.ok() || !field_desc) { + return {nullptr, nullptr}; + } + + auto hive_reader = std::make_unique( + std::move(generic_reader), &profile, &runtime_state, scan_params, scan_range, + nullptr, nullptr, cache.get()); + + return {std::move(hive_reader), field_desc}; + } + + // Helper function: Create and setup OrcReader + std::tuple, const orc::Type*> create_orc_reader( + const std::string& test_file) { + // Open the Hive Orc test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + return {nullptr, nullptr}; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_ORC; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create OrcReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = + OrcReader::create_unique(&profile, &runtime_state, scan_params, scan_range, 1024, + "CST", nullptr, cache.get()); + if (!generic_reader) { + return {nullptr, nullptr}; + } + + auto orc_reader = static_cast(generic_reader.get()); + // Get FieldDescriptor from Orc file + const orc::Type* orc_type_ptr = nullptr; + st = orc_reader->get_file_type(&orc_type_ptr); + if (!st.ok() || !orc_type_ptr) { + return {nullptr, nullptr}; + } + + // Create HiveOrcReader + auto hive_reader = std::make_unique(std::move(generic_reader), &profile, + &runtime_state, scan_params, scan_range, + nullptr, nullptr, cache.get()); + + return {std::move(hive_reader), orc_type_ptr}; + } + + // Helper function: Run Parquet test with different column ID extraction methods + void run_parquet_test(const std::vector& table_column_names, + const std::vector& access_configs, + const std::set& expected_column_ids, + const std::set& expected_filter_column_ids, + bool use_top_level_method = false, bool should_skip_assertion = false) { + std::string test_file = + "./be/test/exec/test_data/nested_user_profiles_parquet/" + "part-00000-64a7a390-1a03-4efc-ab51-557e9369a1f9-c000.snappy.parquet"; + + auto [hive_reader, field_desc] = create_parquet_reader(test_file); + if (!hive_reader || !field_desc) { + GTEST_SKIP() << "Test file not found or failed to create reader: " << test_file; + return; + } + + // Create tuple descriptor based on full schema + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + + // Define all columns according to the schema + std::vector all_table_column_names = {"id", "name", + "profile", "tags", + "friends", "recent_activity", + "attributes", "complex_attributes"}; + std::vector all_table_column_positions = {0, 1, 2, 3, 4, 5, 6, 7}; + std::vector all_table_column_types = { + TPrimitiveType::BIGINT, // id + TPrimitiveType::STRING, // name + TPrimitiveType::STRUCT, // profile + TPrimitiveType::ARRAY, // tags + TPrimitiveType::ARRAY, // friends + TPrimitiveType::ARRAY, // recent_activity + TPrimitiveType::MAP, // attributes + TPrimitiveType::MAP // complex_attributes + }; + + std::vector table_column_positions; + std::vector table_column_types; + for (const auto& col_name : table_column_names) { + auto it = std::find(all_table_column_names.begin(), all_table_column_names.end(), + col_name); + if (it != all_table_column_names.end()) { + int idx = std::distance(all_table_column_names.begin(), it); + table_column_positions.push_back(idx); + table_column_types.push_back(all_table_column_types[idx]); + } + } + + const TupleDescriptor* tuple_descriptor = create_tuple_descriptor( + &desc_tbl, obj_pool, t_desc_table, t_table_desc, table_column_names, + table_column_positions, table_column_types, access_configs); + + // Execute test based on method choice + ColumnIdResult actual_result; + if (use_top_level_method) { + actual_result = HiveParquetReader::_create_column_ids_by_top_level_col_index( + field_desc, tuple_descriptor); + } else { + actual_result = HiveParquetReader::_create_column_ids(field_desc, tuple_descriptor); + } + + if (!should_skip_assertion) { + EXPECT_EQ(actual_result.column_ids, expected_column_ids); + EXPECT_EQ(actual_result.filter_column_ids, expected_filter_column_ids); + } + } + + // Helper function: Run ORC test with different column ID extraction methods + void run_orc_test(const std::vector& table_column_names, + const std::vector& access_configs, + const std::set& expected_column_ids, + const std::set& expected_filter_column_ids, + bool use_top_level_method = false, bool should_skip_assertion = false) { + std::string test_file = + "./be/test/exec/test_data/nested_user_profiles_orc/" + "part-00000-62614f23-05d1-4043-a533-b155ef52b720-c000.snappy.orc"; + + auto [hive_reader, orc_type] = create_orc_reader(test_file); + if (!hive_reader || !orc_type) { + GTEST_SKIP() << "Test file not found or failed to create reader: " << test_file; + return; + } + + // Create tuple descriptor based on full schema + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + + // Define all columns according to the schema + std::vector all_table_column_names = {"id", "name", + "profile", "tags", + "friends", "recent_activity", + "attributes", "complex_attributes"}; + std::vector all_table_column_positions = {0, 1, 2, 3, 4, 5, 6, 7}; + std::vector all_table_column_types = { + TPrimitiveType::BIGINT, // id + TPrimitiveType::STRING, // name + TPrimitiveType::STRUCT, // profile + TPrimitiveType::ARRAY, // tags + TPrimitiveType::ARRAY, // friends + TPrimitiveType::ARRAY, // recent_activity + TPrimitiveType::MAP, // attributes + TPrimitiveType::MAP // complex_attributes + }; + + std::vector table_column_positions; + std::vector table_column_types; + for (const auto& col_name : table_column_names) { + auto it = std::find(all_table_column_names.begin(), all_table_column_names.end(), + col_name); + if (it != all_table_column_names.end()) { + int idx = std::distance(all_table_column_names.begin(), it); + table_column_positions.push_back(idx); + table_column_types.push_back(all_table_column_types[idx]); + } + } + + const TupleDescriptor* tuple_descriptor = create_tuple_descriptor( + &desc_tbl, obj_pool, t_desc_table, t_table_desc, table_column_names, + table_column_positions, table_column_types, access_configs); + + // Execute test based on method choice + ColumnIdResult actual_result; + if (use_top_level_method) { + actual_result = HiveOrcReader::_create_column_ids_by_top_level_col_index( + orc_type, tuple_descriptor); + } else { + actual_result = HiveOrcReader::_create_column_ids(orc_type, tuple_descriptor); + } + + if (!should_skip_assertion) { + EXPECT_EQ(actual_result.column_ids, expected_column_ids); + EXPECT_EQ(actual_result.filter_column_ids, expected_filter_column_ids); + } + } +}; + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_1) { + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"profile", "address", "coordinates", "lat"}, + {"profile", "address", "coordinates", "lng"}, + {"profile", "contact", "email"}, + {"profile", "hobbies", "*", "level"}}; + access_config.predicate_paths = {{"profile", "address", "coordinates", "lat"}, + {"profile", "contact", "email"}}; + + // column_ids should contain all necessary column IDs (set automatically deduplicates) + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 18}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); + + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); +} + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_2) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 0: struct (table/root) + // 1: id (int64) + // 2: name (string) + // 3: profile (struct) + // 4: address (struct) + // 5: street (string) + // 6: city (string) + // 7: coordinates (struct) + // 8: lat (double) + // 9: lng (double) + // 10: contact (struct) + // 11: email (string) + // 12: phone (struct) + // 13: country_code (string) + // 14: number (string) + // 15: hobbies (list/array) + // 16: element (struct) + // 17: name (string) + // 18: level (int32) + + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"profile"}}; + access_config.predicate_paths = {{"profile", "address", "coordinates", "lat"}, + {"profile", "contact", "email"}}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); + + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); +} + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_3) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 0: struct (table/root) + // 1: id (int64) + // 2: name (string) + // 3: profile (struct) + // 4: address (struct) + // 5: street (string) + // 6: city (string) + // 7: coordinates (struct) + // 8: lat (double) + // 9: lng (double) + // 10: contact (struct) + // 11: email (string) + // 12: phone (struct) + // 13: country_code (string) + // 14: number (string) + // 15: hobbies (list/array) + // 16: element (struct) + // 17: name (string) + // 18: level (int32) + + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"profile", "contact"}, {"profile", "address"}}; + access_config.predicate_paths = {{"profile", "address", "coordinates"}, + {"profile", "contact", "email"}}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 9, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); + + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); +} + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_4) { + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {}; + access_config.predicate_paths = {}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18}; + std::set expected_filter_column_ids = {}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); + + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids, true); +} + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_5) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 19: tags (array) + // 20: element (string) + // 21: friends (array) + // 22: element (struct) + // 23: user_id (bigint) + // 24: nickname (string) + // 25: friendship_level (int) + // 26: recent_activity (array) + // 27: element (struct) + // 28: action (string) + // 29: details (array) + // 30: element (struct) + // 31: key (string) + // 32: value (string) + + std::vector access_configs; + + { + // Configure access paths for friends column + ColumnAccessPathConfig access_config; + access_config.column_name = "friends"; + + access_config.all_column_paths = {{"friends", "*", "nickname"}, + {"friends", "*", "friendship_level"}}; + access_config.predicate_paths = { + {"friends", "*", "nickname"}, + }; + access_configs.push_back(access_config); + } + + { + // Configure access paths for recent_activity column + ColumnAccessPathConfig access_config; + access_config.column_name = "recent_activity"; + + access_config.all_column_paths = {{"recent_activity", "*", "action"}, + {"recent_activity", "*", "details", "*", "value"}}; + access_config.predicate_paths = { + {"recent_activity", "*", "action"}, + }; + access_configs.push_back(access_config); + } + + std::vector table_column_names = {"name", "friends", "recent_activity"}; + std::set expected_column_ids = {2, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32}; + std::set expected_filter_column_ids = {21, 22, 24, 26, 27, 28}; + + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids, true); + + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids, true); +} + +TEST_F(HiveReaderCreateColumnIdsTest, test_create_column_ids_6) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 33: attributes (map) + // 34: key (string) + // 35: value (string) + // 36: complex_attributes (map) + // 37: key (string) + // 38: value (struct) + // 39: metadata (struct) + // 40: version (string) + // 41: created_time (timestamp) + // 42: last_updated (timestamp) + // 43: quality_score (double) + // 44: historical_scores (array) + // 45: element (struct) + // 46: period (string) + // 47: score (double) + // 48: components (array) + // 49: element (struct) + // 50: component_name (string) + // 51: weight (float) + // 52: sub_scores (map) + // 53: key (string) + // 54: value (double) + // 55: trends (struct) + // 56: direction (string) + // 57: magnitude (double) + // 58: confidence_interval (struct) + // 59: lower (double) + // 60: upper (double) + // 61: hierarchical_data (map) + // 62: key (string) + // 63: value (struct) + // 64: category (string) + // 65: sub_items (array) + // 66: element (struct) + // 67: item_id (bigint) + // 68: properties (map) + // 69: key (string) + // 70: value (string) + // 71: metrics (struct) + // 72: value (double) + // 73: unit (string) + // 74: summary (struct) + // 75: total_count (int) + // 76: average_value (double) + // 77: validation_rules (struct) + // 78: required (boolean) + // 79: constraints (array) + // 80: element (struct) + // 81: rule_type (string) + // 82: parameters (map) + // 83: key (string) + // 84: value (string) + // 85: error_message (string) + // 86: complex_constraint (struct) + // 87: logic_operator (string) + // 88: operands (array) + // 89: element (struct) + // 90: field_path (string) + // 91: operator (string) + // 92: comparison_value (string) + std::vector access_configs; + + { + // Configure access paths for complex_attributes column + ColumnAccessPathConfig access_config; + access_config.column_name = "complex_attributes"; + + access_config.all_column_paths = { + {"complex_attributes", "*", "metadata", "version"}, + {"complex_attributes", "*", "historical_scores", "*", "components", "*", + "sub_scores"}, + {"complex_attributes", "*", "hierarchical_data", "VALUES"}, + {"complex_attributes", "VALUES", "validation_rules", "constraints", "*", + "parameters", "KEYS"}}; + access_config.predicate_paths = {{"complex_attributes", "*", "metadata", "version"} + + }; + access_configs.push_back(access_config); + } + + { + std::vector table_column_names = {"name", "complex_attributes"}; + // parquet values should access keys + std::set expected_column_ids = {2, 36, 37, 38, 39, 40, 44, 45, 48, 49, 52, 53, + 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 79, 80, 82, 83}; + std::set expected_filter_column_ids = {36, 37, 38, 39, 40}; + + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids, true); + } + + { + std::vector table_column_names = {"name", "complex_attributes"}; + // orc values should access keys because need to deduplicate by keys + std::set expected_column_ids = {2, 36, 37, 38, 39, 40, 44, 45, 48, 49, 52, 53, + 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 79, 80, 82, 83}; + std::set expected_filter_column_ids = {36, 37, 38, 39, 40}; + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids, true); + } +} + +} // namespace doris::vectorized \ No newline at end of file diff --git a/be/test/vec/exec/format/table/hive/hive_reader_test.cpp b/be/test/vec/exec/format/table/hive/hive_reader_test.cpp new file mode 100644 index 00000000000000..c831940602d687 --- /dev/null +++ b/be/test/vec/exec/format/table/hive/hive_reader_test.cpp @@ -0,0 +1,740 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/hive_reader.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "common/object_pool.h" +#include "exec/olap_common.h" +#include "io/fs/file_meta_cache.h" +#include "io/fs/file_reader_writer_fwd.h" +#include "io/fs/file_system.h" +#include "io/fs/local_file_system.h" +#include "runtime/descriptors.h" +#include "runtime/runtime_state.h" +#include "util/timezone_utils.h" +#include "vec/columns/column.h" +#include "vec/columns/column_array.h" +#include "vec/columns/column_nullable.h" +#include "vec/columns/column_struct.h" +#include "vec/core/block.h" +#include "vec/core/column_with_type_and_name.h" +#include "vec/data_types/data_type.h" +#include "vec/data_types/data_type_array.h" +#include "vec/data_types/data_type_factory.hpp" +#include "vec/data_types/data_type_nullable.h" +#include "vec/data_types/data_type_number.h" +#include "vec/data_types/data_type_string.h" +#include "vec/data_types/data_type_struct.h" +#include "vec/exec/format/parquet/vparquet_reader.h" + +namespace doris::vectorized::table { + +class HiveReaderTest : public ::testing::Test { +protected: + void SetUp() override { + cache = std::make_unique(1024); + + // Setup timezone + doris::TimezoneUtils::find_cctz_time_zone(doris::TimezoneUtils::default_time_zone, + timezone_obj); + } + + void TearDown() override { cache.reset(); } + + // Helper function to create complex struct types for testing + void create_complex_struct_types(DataTypePtr& coordinates_struct_type, + DataTypePtr& address_struct_type, + DataTypePtr& phone_struct_type, + DataTypePtr& contact_struct_type, + DataTypePtr& hobby_element_struct_type, + DataTypePtr& hobbies_array_type, + DataTypePtr& profile_struct_type, DataTypePtr& name_type) { + // Create name column type (direct field) + name_type = make_nullable(std::make_shared()); + + // First create coordinates struct type + std::vector coordinates_types = { + make_nullable(std::make_shared()), // lat (field ID 10) + make_nullable(std::make_shared()) // lng (field ID 11) + }; + std::vector coordinates_names = {"lat", "lng"}; + coordinates_struct_type = make_nullable( + std::make_shared(coordinates_types, coordinates_names)); + + // Create address struct type (with street, city, coordinates) + std::vector address_types = { + make_nullable(std::make_shared()), // street (field ID 7) + make_nullable(std::make_shared()), // city (field ID 8) + coordinates_struct_type // coordinates (field ID 9) + }; + std::vector address_names = {"street", "city", "coordinates"}; + address_struct_type = + make_nullable(std::make_shared(address_types, address_names)); + + // Create phone struct type + std::vector phone_types = { + make_nullable(std::make_shared()), // country_code (field ID 14) + make_nullable(std::make_shared()) // number (field ID 15) + }; + std::vector phone_names = {"country_code", "number"}; + phone_struct_type = + make_nullable(std::make_shared(phone_types, phone_names)); + + // Create contact struct type (with email, phone) + std::vector contact_types = { + make_nullable(std::make_shared()), // email (field ID 12) + phone_struct_type // phone (field ID 13) + }; + std::vector contact_names = {"email", "phone"}; + contact_struct_type = + make_nullable(std::make_shared(contact_types, contact_names)); + + // Create hobby element struct type for array elements + std::vector hobby_element_types = { + make_nullable(std::make_shared()), // name (field ID 17) + make_nullable(std::make_shared()) // level (field ID 18) + }; + std::vector hobby_element_names = {"name", "level"}; + hobby_element_struct_type = make_nullable( + std::make_shared(hobby_element_types, hobby_element_names)); + + // Create hobbies array type + hobbies_array_type = + make_nullable(std::make_shared(hobby_element_struct_type)); + + // Create complete profile struct type (with address, contact, hobbies) + std::vector profile_types = { + address_struct_type, // address (field ID 4) + contact_struct_type, // contact (field ID 5) + hobbies_array_type // hobbies (field ID 6) + }; + std::vector profile_names = {"address", "contact", "hobbies"}; + profile_struct_type = + make_nullable(std::make_shared(profile_types, profile_names)); + } + + // Helper function to create tuple descriptor + const TupleDescriptor* create_tuple_descriptor( + DescriptorTbl** desc_tbl, ObjectPool& obj_pool, TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc, const std::vector& column_names, + const std::vector& column_positions, + const std::vector& column_types) { + // Create table descriptor with complex schema + auto create_table_desc = [](TDescriptorTable& t_desc_table, TTableDescriptor& t_table_desc, + const std::vector& table_column_names, + const std::vector& table_column_positions, + const std::vector& types) { + t_table_desc.__set_id(0); + t_table_desc.__set_tableType(TTableType::OLAP_TABLE); + t_table_desc.__set_numCols(0); + t_table_desc.__set_numClusteringCols(0); + t_desc_table.tableDescriptors.push_back(t_table_desc); + t_desc_table.__isset.tableDescriptors = true; + for (int i = 0; i < table_column_names.size(); i++) { + TSlotDescriptor tslot_desc; + TTypeDesc type; + if (table_column_names[i] == "profile") { + // STRUCT/ARRAY nodes set contains_nulls; SCALAR nodes do not + TTypeNode struct_node; + struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector struct_fields; + TStructField address_field; + address_field.__set_name("address"); + address_field.__set_contains_null(true); + struct_fields.push_back(address_field); + TStructField contact_field; + contact_field.__set_name("contact"); + contact_field.__set_contains_null(true); + struct_fields.push_back(contact_field); + TStructField hobbies_field; + hobbies_field.__set_name("hobbies"); + hobbies_field.__set_contains_null(true); + struct_fields.push_back(hobbies_field); + struct_node.__set_struct_fields(struct_fields); + type.types.push_back(struct_node); + TTypeNode address_node; + address_node.__set_type(TTypeNodeType::STRUCT); + std::vector address_fields; + TStructField street_field; + street_field.__set_name("street"); + street_field.__set_contains_null(true); + address_fields.push_back(street_field); + TStructField city_field; + city_field.__set_name("city"); + city_field.__set_contains_null(true); + address_fields.push_back(city_field); + TStructField coordinates_field; + coordinates_field.__set_name("coordinates"); + coordinates_field.__set_contains_null(true); + address_fields.push_back(coordinates_field); + address_node.__set_struct_fields(address_fields); + type.types.push_back(address_node); + TTypeNode street_node; + street_node.__set_type(TTypeNodeType::SCALAR); + TScalarType street_scalar; + street_scalar.__set_type(TPrimitiveType::STRING); + street_node.__set_scalar_type(street_scalar); + type.types.push_back(street_node); + TTypeNode city_node; + city_node.__set_type(TTypeNodeType::SCALAR); + TScalarType city_scalar; + city_scalar.__set_type(TPrimitiveType::STRING); + city_node.__set_scalar_type(city_scalar); + type.types.push_back(city_node); + TTypeNode coordinates_node; + coordinates_node.__set_type(TTypeNodeType::STRUCT); + std::vector coordinates_fields; + TStructField lat_field; + lat_field.__set_name("lat"); + lat_field.__set_contains_null(true); + coordinates_fields.push_back(lat_field); + TStructField lng_field; + lng_field.__set_name("lng"); + lng_field.__set_contains_null(true); + coordinates_fields.push_back(lng_field); + coordinates_node.__set_struct_fields(coordinates_fields); + type.types.push_back(coordinates_node); + TTypeNode lat_node; + lat_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lat_scalar; + lat_scalar.__set_type(TPrimitiveType::DOUBLE); + lat_node.__set_scalar_type(lat_scalar); + type.types.push_back(lat_node); + TTypeNode lng_node; + lng_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lng_scalar; + lng_scalar.__set_type(TPrimitiveType::DOUBLE); + lng_node.__set_scalar_type(lng_scalar); + type.types.push_back(lng_node); + TTypeNode contact_node; + contact_node.__set_type(TTypeNodeType::STRUCT); + std::vector contact_fields; + TStructField email_field; + email_field.__set_name("email"); + email_field.__set_contains_null(true); + contact_fields.push_back(email_field); + TStructField phone_field; + phone_field.__set_name("phone"); + phone_field.__set_contains_null(true); + contact_fields.push_back(phone_field); + contact_node.__set_struct_fields(contact_fields); + type.types.push_back(contact_node); + TTypeNode email_node; + email_node.__set_type(TTypeNodeType::SCALAR); + TScalarType email_scalar; + email_scalar.__set_type(TPrimitiveType::STRING); + email_node.__set_scalar_type(email_scalar); + type.types.push_back(email_node); + TTypeNode phone_node; + phone_node.__set_type(TTypeNodeType::STRUCT); + std::vector phone_fields; + TStructField country_code_field; + country_code_field.__set_name("country_code"); + country_code_field.__set_contains_null(true); + phone_fields.push_back(country_code_field); + TStructField number_field; + number_field.__set_name("number"); + number_field.__set_contains_null(true); + phone_fields.push_back(number_field); + phone_node.__set_struct_fields(phone_fields); + type.types.push_back(phone_node); + TTypeNode country_code_node; + country_code_node.__set_type(TTypeNodeType::SCALAR); + TScalarType country_code_scalar; + country_code_scalar.__set_type(TPrimitiveType::STRING); + country_code_node.__set_scalar_type(country_code_scalar); + type.types.push_back(country_code_node); + TTypeNode number_node; + number_node.__set_type(TTypeNodeType::SCALAR); + TScalarType number_scalar; + number_scalar.__set_type(TPrimitiveType::STRING); + number_node.__set_scalar_type(number_scalar); + type.types.push_back(number_node); + TTypeNode hobbies_node; + hobbies_node.__set_type(TTypeNodeType::ARRAY); + hobbies_node.__set_contains_nulls({true}); + type.types.push_back(hobbies_node); + TTypeNode hobby_element_node; + hobby_element_node.__set_type(TTypeNodeType::STRUCT); + std::vector hobby_element_fields; + TStructField hobby_name_field; + hobby_name_field.__set_name("name"); + hobby_name_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_name_field); + TStructField hobby_level_field; + hobby_level_field.__set_name("level"); + hobby_level_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_level_field); + hobby_element_node.__set_struct_fields(hobby_element_fields); + type.types.push_back(hobby_element_node); + TTypeNode hobby_name_node; + hobby_name_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_name_scalar; + hobby_name_scalar.__set_type(TPrimitiveType::STRING); + hobby_name_node.__set_scalar_type(hobby_name_scalar); + type.types.push_back(hobby_name_node); + TTypeNode hobby_level_node; + hobby_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_level_scalar; + hobby_level_scalar.__set_type(TPrimitiveType::INT); + hobby_level_node.__set_scalar_type(hobby_level_scalar); + type.types.push_back(hobby_level_node); + tslot_desc.__set_slotType(type); + } else { + // Regular type + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(types[i]); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } + tslot_desc.__set_id(i); + tslot_desc.__set_parent(0); + tslot_desc.__set_colName(table_column_names[i]); + tslot_desc.__set_columnPos(table_column_positions[i]); + tslot_desc.__set_byteOffset(0); + tslot_desc.__set_nullIndicatorByte(0); + tslot_desc.__set_nullIndicatorBit(-1); + tslot_desc.__set_slotIdx(0); + tslot_desc.__set_isMaterialized(true); + // Set column_access_paths only for the profile field + if (table_column_names[i] == "profile") { + { + std::vector access_paths; + // address.coordinates.lat + TColumnAccessPath path1; + path1.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path1; + data_path1.__set_path({"profile", "address", "coordinates", "lat"}); + path1.__set_data_access_path(data_path1); + access_paths.push_back(path1); + // address.coordinates.lng + TColumnAccessPath path2; + path2.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path2; + data_path2.__set_path({"profile", "address", "coordinates", "lng"}); + path2.__set_data_access_path(data_path2); + access_paths.push_back(path2); + // contact.email + TColumnAccessPath path3; + path3.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path3; + data_path3.__set_path({"profile", "contact", "email"}); + path3.__set_data_access_path(data_path3); + access_paths.push_back(path3); + // hobbies[].element.level + TColumnAccessPath path4; + path4.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path4; + data_path4.__set_path({"profile", "hobbies", "*", "level"}); + path4.__set_data_access_path(data_path4); + access_paths.push_back(path4); + tslot_desc.__set_all_access_paths(access_paths); + } + } + t_desc_table.slotDescriptors.push_back(tslot_desc); + } + t_desc_table.__isset.slotDescriptors = true; + TTupleDescriptor t_tuple_desc; + t_tuple_desc.__set_id(0); + t_tuple_desc.__set_byteSize(16); + t_tuple_desc.__set_numNullBytes(0); + t_tuple_desc.__set_tableId(0); + t_tuple_desc.__isset.tableId = true; + t_desc_table.tupleDescriptors.push_back(t_tuple_desc); + }; + + create_table_desc(t_desc_table, t_table_desc, column_names, column_positions, column_types); + EXPECT_TRUE(DescriptorTbl::create(&obj_pool, t_desc_table, desc_tbl).ok()); + return (*desc_tbl)->get_tuple_descriptor(0); + } + + // Helper function to recursively print column row counts and check size > 0 + void verify_test_results(Block& block, size_t read_rows) { + // Verify that we read some data + EXPECT_GT(read_rows, 0) << "Should read at least one row"; + EXPECT_EQ(block.rows(), read_rows); + + // Verify column count matches expected (2 columns: name, profile) + EXPECT_EQ(block.columns(), 2); + + // Verify column names and types + auto columns_with_names = block.get_columns_with_type_and_name(); + std::vector expected_column_names = {"name", "profile"}; + for (size_t i = 0; i < expected_column_names.size(); i++) { + EXPECT_EQ(columns_with_names[i].name, expected_column_names[i]); + } + + // Verify column types + EXPECT_TRUE(columns_with_names[0].type->get_name().find("String") != + std::string::npos); // name is STRING + EXPECT_TRUE(columns_with_names[1].type->get_name().find("Struct") != + std::string::npos); // profile is STRUCT + + // Print row count for each column and nested subcolumns + std::cout << "Block rows: " << block.rows() << std::endl; + + // Helper function to recursively print column row counts + std::function + print_column_rows = [&](const ColumnPtr& col, const DataTypePtr& type, + const std::string& name, int depth) { + std::string indent(depth * 2, ' '); + std::cout << indent << name << " row count: " << col->size() << std::endl; + EXPECT_GT(col->size(), 0) << name << " column/subcolumn size should be > 0"; + + // Check if it's a nullable column + if (const auto* nullable_col = typeid_cast(col.get())) { + auto nested_type = + assert_cast(type.get())->get_nested_type(); + + // Only add ".nested" suffix for non-leaf (complex) nullable columns + // Leaf columns like String, Int, etc. should not get the ".nested" suffix + bool is_complex_type = + (typeid_cast(nested_type.get()) != + nullptr) || + (typeid_cast(nested_type.get()) != nullptr) || + (typeid_cast(nested_type.get()) != nullptr); + + std::string nested_name = is_complex_type ? name + ".nested" : name; + print_column_rows(nullable_col->get_nested_column_ptr(), nested_type, + nested_name, depth + (is_complex_type ? 1 : 0)); + } + // Check if it's a struct column + else if (const auto* struct_col = typeid_cast(col.get())) { + auto struct_type = assert_cast(type.get()); + for (size_t i = 0; i < struct_col->tuple_size(); ++i) { + std::string field_name = struct_type->get_element_name(i); + auto field_type = struct_type->get_element(i); + print_column_rows(struct_col->get_column_ptr(i), field_type, + name + "." + field_name, depth + 1); + } + } + // Check if it's an array column + else if (const auto* array_col = typeid_cast(col.get())) { + auto array_type = assert_cast(type.get()); + auto element_type = array_type->get_nested_type(); + print_column_rows(array_col->get_data_ptr(), element_type, name + ".data", + depth + 1); + } + }; + + // Print row counts for all columns + for (size_t i = 0; i < block.columns(); ++i) { + const auto& column_with_name = block.get_by_position(i); + print_column_rows(column_with_name.column, column_with_name.type, column_with_name.name, + 0); + EXPECT_EQ(column_with_name.column->size(), block.rows()) + << "Column " << column_with_name.name << " size mismatch"; + } + } + + std::unique_ptr cache; + cctz::time_zone timezone_obj; +}; + +// Test reading real Hive Parquet file using HiveTableReader +TEST_F(HiveReaderTest, read_hive_parquet_file) { + // Read only: name, profile.address.coordinates.lat, profile.address.coordinates.lng, profile.contact.email + // Setup table descriptor for test columns with new schema: + /** + Schema: + message table { + required int64 id = 1; + required binary name (STRING) = 2; + required group profile = 3 { + optional group address = 4 { + optional binary street (STRING) = 7; + optional binary city (STRING) = 8; + optional group coordinates = 9 { + optional double lat = 10; + optional double lng = 11; + } + } + optional group contact = 5 { + optional binary email (STRING) = 12; + optional group phone = 13 { + optional binary country_code (STRING) = 14; + optional binary number (STRING) = 15; + } + } + optional group hobbies (LIST) = 6 { + repeated group list { + optional group element = 16 { + optional binary name (STRING) = 17; + optional int32 level = 18; + } + } + } + } + } + */ + + // Open the Hive Parquet test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + std::string test_file = + "./be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/" + "00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet"; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + GTEST_SKIP() << "Test file not found: " << test_file; + return; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_PARQUET; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create ParquetReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = ParquetReader::create_unique(&profile, scan_params, scan_range, 1024, + &ctz, nullptr, &runtime_state, cache.get()); + ASSERT_NE(generic_reader, nullptr); + + // Set file reader for the generic reader + auto parquet_reader = static_cast(generic_reader.get()); + parquet_reader->set_file_reader(file_reader); + + // Create HiveParquetReader + auto hive_reader = std::make_unique(std::move(generic_reader), &profile, + &runtime_state, scan_params, scan_range, + nullptr, nullptr, cache.get()); + + // Create complex struct types using helper function + DataTypePtr coordinates_struct_type, address_struct_type, phone_struct_type; + DataTypePtr contact_struct_type, hobby_element_struct_type, hobbies_array_type; + DataTypePtr profile_struct_type, name_type; + create_complex_struct_types(coordinates_struct_type, address_struct_type, phone_struct_type, + contact_struct_type, hobby_element_struct_type, hobbies_array_type, + profile_struct_type, name_type); + + // Create tuple descriptor using helper function + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + std::vector table_column_names = {"name", "profile"}; + std::vector table_column_positions = {1, 2}; + std::vector table_column_types = { + TPrimitiveType::STRING, TPrimitiveType::STRUCT // profile 用 STRUCT 类型 + }; + const TupleDescriptor* tuple_descriptor = + create_tuple_descriptor(&desc_tbl, obj_pool, t_desc_table, t_table_desc, + table_column_names, table_column_positions, table_column_types); + + VExprContextSPtrs conjuncts; // Empty conjuncts for this test + std::vector table_col_names = {"name", "profile"}; + const RowDescriptor* row_descriptor = nullptr; + const std::unordered_map* colname_to_slot_id = nullptr; + const VExprContextSPtrs* not_single_slot_filter_conjuncts = nullptr; + const std::unordered_map* slot_id_to_filter_conjuncts = nullptr; + + st = hive_reader->init_reader(table_col_names, conjuncts, tuple_descriptor, row_descriptor, + colname_to_slot_id, not_single_slot_filter_conjuncts, + slot_id_to_filter_conjuncts); + ASSERT_TRUE(st.ok()) << st; + + std::unordered_map> + partition_columns; + std::unordered_map missing_columns; + ASSERT_TRUE(hive_reader->set_fill_columns(partition_columns, missing_columns).ok()); + + // Create block for reading nested structure (not flattened) + Block block; + { + MutableColumnPtr name_column = name_type->create_column(); + block.insert(ColumnWithTypeAndName(std::move(name_column), name_type, "name")); + // Add profile column (nested struct) + MutableColumnPtr profile_column = profile_struct_type->create_column(); + block.insert( + ColumnWithTypeAndName(std::move(profile_column), profile_struct_type, "profile")); + } + + // Read data from the file + size_t read_rows = 0; + bool eof = false; + st = hive_reader->get_next_block(&block, &read_rows, &eof); + ASSERT_TRUE(st.ok()) << st; + + // Verify test results using helper function + verify_test_results(block, read_rows); +} + +// Test reading real Hive Orc file using HiveTableReader +TEST_F(HiveReaderTest, read_hive_rrc_file) { + // Read only: name, profile.address.coordinates.lat, profile.address.coordinates.lng, profile.contact.email + // Setup table descriptor for test columns with new schema: + /** + Schema: + message table { + required int64 id = 1; + required binary name (STRING) = 2; + required group profile = 3 { + optional group address = 4 { + optional binary street (STRING) = 7; + optional binary city (STRING) = 8; + optional group coordinates = 9 { + optional double lat = 10; + optional double lng = 11; + } + } + optional group contact = 5 { + optional binary email (STRING) = 12; + optional group phone = 13 { + optional binary country_code (STRING) = 14; + optional binary number (STRING) = 15; + } + } + optional group hobbies (LIST) = 6 { + repeated group list { + optional group element = 16 { + optional binary name (STRING) = 17; + optional int32 level = 18; + } + } + } + } + } + */ + // Open the Hive Orc test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + std::string test_file = + "./be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/" + "00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc"; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + GTEST_SKIP() << "Test file not found: " << test_file; + return; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_ORC; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create OrcReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = OrcReader::create_unique(&profile, &runtime_state, scan_params, + scan_range, 1024, "CST", nullptr, cache.get()); + ASSERT_NE(generic_reader, nullptr); + + // Create HiveOrcReader + auto hive_reader = + std::make_unique(std::move(generic_reader), &profile, &runtime_state, + scan_params, scan_range, nullptr, nullptr, cache.get()); + + // Create complex struct types using helper function + DataTypePtr coordinates_struct_type, address_struct_type, phone_struct_type; + DataTypePtr contact_struct_type, hobby_element_struct_type, hobbies_array_type; + DataTypePtr profile_struct_type, name_type; + create_complex_struct_types(coordinates_struct_type, address_struct_type, phone_struct_type, + contact_struct_type, hobby_element_struct_type, hobbies_array_type, + profile_struct_type, name_type); + + // Create tuple descriptor using helper function + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + std::vector table_column_names = {"name", "profile"}; + std::vector table_column_positions = {1, 2}; + std::vector table_column_types = { + TPrimitiveType::STRING, TPrimitiveType::STRUCT // profile 用 STRUCT 类型 + }; + const TupleDescriptor* tuple_descriptor = + create_tuple_descriptor(&desc_tbl, obj_pool, t_desc_table, t_table_desc, + table_column_names, table_column_positions, table_column_types); + + VExprContextSPtrs conjuncts; // Empty conjuncts for this test + std::vector table_col_names = {"name", "profile"}; + const RowDescriptor* row_descriptor = nullptr; + const VExprContextSPtrs* not_single_slot_filter_conjuncts = nullptr; + const std::unordered_map* slot_id_to_filter_conjuncts = nullptr; + + st = hive_reader->init_reader(table_col_names, conjuncts, tuple_descriptor, row_descriptor, + not_single_slot_filter_conjuncts, slot_id_to_filter_conjuncts); + ASSERT_TRUE(st.ok()) << st; + + std::unordered_map> + partition_columns; + std::unordered_map missing_columns; + ASSERT_TRUE(hive_reader->set_fill_columns(partition_columns, missing_columns).ok()); + + // Create block for reading nested structure (not flattened) + Block block; + + { + MutableColumnPtr name_column = name_type->create_column(); + block.insert(ColumnWithTypeAndName(std::move(name_column), name_type, "name")); + // Add profile column (nested struct) + MutableColumnPtr profile_column = profile_struct_type->create_column(); + block.insert( + ColumnWithTypeAndName(std::move(profile_column), profile_struct_type, "profile")); + } + + // Read data from the file + size_t read_rows = 0; + bool eof = false; + st = hive_reader->get_next_block(&block, &read_rows, &eof); + ASSERT_TRUE(st.ok()) << st; + + // Verify test results using helper function + verify_test_results(block, read_rows); +} + +} // namespace doris::vectorized::table diff --git a/be/test/vec/exec/format/table/iceberg/iceberg_reader_create_column_ids_test.cpp b/be/test/vec/exec/format/table/iceberg/iceberg_reader_create_column_ids_test.cpp new file mode 100644 index 00000000000000..d897f0e47621c5 --- /dev/null +++ b/be/test/vec/exec/format/table/iceberg/iceberg_reader_create_column_ids_test.cpp @@ -0,0 +1,1184 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "common/object_pool.h" +#include "exec/olap_common.h" +#include "io/fs/file_meta_cache.h" +#include "io/fs/file_reader_writer_fwd.h" +#include "io/fs/file_system.h" +#include "io/fs/local_file_system.h" +#include "runtime/descriptors.h" +#include "runtime/runtime_state.h" +#include "util/timezone_utils.h" +#include "vec/columns/column.h" +#include "vec/columns/column_array.h" +#include "vec/columns/column_nullable.h" +#include "vec/columns/column_struct.h" +#include "vec/core/block.h" +#include "vec/core/column_with_type_and_name.h" +#include "vec/data_types/data_type.h" +#include "vec/data_types/data_type_array.h" +#include "vec/data_types/data_type_factory.hpp" +#include "vec/data_types/data_type_nullable.h" +#include "vec/data_types/data_type_number.h" +#include "vec/data_types/data_type_string.h" +#include "vec/data_types/data_type_struct.h" +#include "vec/exec/format/parquet/vparquet_reader.h" +#include "vec/exec/format/table/iceberg_reader.h" + +namespace doris::vectorized { + +// Define the column access path configuration structure +struct ColumnAccessPathConfig { + std::string column_name; + std::vector> all_column_paths; // For all_column_access_paths + std::vector> predicate_paths; // For predicate_column_access_paths +}; + +// Iceberg column ID assignment (based on Protobuf schema definition) +// 1: id (int64) +// 2: name (string) +// 3: profile (struct) +// 9: address (struct) +// 12: street (string) +// 13: city (string) +// 14: coordinates (struct) +// 15: lat (double) +// 16: lng (double) +// 10: contact (struct) +// 17: email (string) +// 18: phone (struct) +// 19: country_code (string) +// 20: number (string) +// 11: hobbies (list) +// 21: element (struct) +// 22: name (string) +// 23: level (int32) +// 4: tags (list) +// 24: element (string) +// 5: friends (list) +// 25: element (struct) +// 26: user_id (int64) +// 27: nickname (string) +// 28: friendship_level (int32) +// 6: recent_activity (list) +// 29: element (struct) +// 30: action (string) +// 31: details (list) +// 32: element (struct) +// 33: key (string) +// 34: value (string) +// 7: attributes (map) +// 35: key (string) +// 36: value (string) +// 8: complex_attributes (map) +// 37: key (string) +// 38: value (struct) +// 39: metadata (struct) +// 43: version (string) +// 44: created_time (timestamp) +// 45: last_updated (timestamp) +// 46: quality_score (double) +// 40: historical_scores (list) +// 47: element (struct) +// 48: period (string) +// 49: score (double) +// 50: components (list) +// 52: element (struct) +// 53: component_name (string) +// 54: weight (float) +// 55: sub_scores (map) +// 56: key (string) +// 57: value (double) +// 51: trends (struct) +// 58: direction (string) +// 59: magnitude (double) +// 60: confidence_interval (struct) +// 61: lower (double) +// 62: upper (double) +// 41: hierarchical_data (map) +// 63: key (string) +// 64: value (struct) +// 65: category (string) +// 66: sub_items (list) +// 68: element (struct) +// 69: item_id (int64) +// 70: properties (map) +// 72: key (string) +// 73: value (string) +// 71: metrics (struct) +// 74: value (double) +// 75: unit (string) +// 67: summary (struct) +// 76: total_count (int32) +// 77: average_value (double) +// 42: validation_rules (struct) +// 78: required (boolean) +// 79: constraints (list) +// 81: element (struct) +// 82: rule_type (string) +// 83: parameters (map) +// 85: key (string) +// 86: value (string) +// 84: error_message (string) +// 80: complex_constraint (struct) +// 87: logic_operator (string) +// 88: operands (list) +// 89: element (struct) +// 90: field_path (string) +// 91: operator (string) +// 92: comparison_value (string) + +class IcebergReaderCreateColumnIdsTest : public ::testing::Test { +protected: + void SetUp() override { + cache = std::make_unique(1024); + + // Setup timezone + doris::TimezoneUtils::find_cctz_time_zone(doris::TimezoneUtils::default_time_zone, + timezone_obj); + } + + void TearDown() override { cache.reset(); } + + // Helper function to map column name to Iceberg field ID + int get_iceberg_field_id(const std::string& column_name) { + // Mapping based on the Iceberg schema definition in comments + static const std::unordered_map column_to_field_id = { + {"id", 1}, {"name", 2}, + {"profile", 3}, {"tags", 4}, + {"friends", 5}, {"recent_activity", 6}, + {"attributes", 7}, {"complex_attributes", 8}}; + + auto it = column_to_field_id.find(column_name); + if (it != column_to_field_id.end()) { + return it->second; + } + return -1; // Invalid field ID + } + + // Helper function to create tuple descriptor + const TupleDescriptor* create_tuple_descriptor( + DescriptorTbl** desc_tbl, ObjectPool& obj_pool, TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc, const std::vector& column_names, + const std::vector& column_positions, + const std::vector& column_types, + const std::vector& access_configs = {}) { + // Create table descriptor with complex schema + auto create_table_desc = [this, &access_configs]( + TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc, + const std::vector& table_column_names, + const std::vector& table_column_positions, + const std::vector& types) { + t_table_desc.__set_id(0); + t_table_desc.__set_tableType(TTableType::HIVE_TABLE); + t_table_desc.__set_numCols(0); + t_table_desc.__set_numClusteringCols(0); + t_desc_table.tableDescriptors.push_back(t_table_desc); + t_desc_table.__isset.tableDescriptors = true; + for (int i = 0; i < table_column_names.size(); i++) { + TSlotDescriptor tslot_desc; + TTypeDesc type; + if (table_column_names[i] == "id") { + // id: bigint + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(TPrimitiveType::BIGINT); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "name") { + // name: string + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(TPrimitiveType::STRING); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "tags") { + // tags: array + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_node; + element_node.__set_type(TTypeNodeType::SCALAR); + TScalarType element_scalar; + element_scalar.__set_type(TPrimitiveType::STRING); + element_node.__set_scalar_type(element_scalar); + type.types.push_back(element_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "friends") { + // friends: array> + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_struct_node; + element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector element_fields; + TStructField user_id_field; + user_id_field.__set_name("user_id"); + user_id_field.__set_contains_null(true); + element_fields.push_back(user_id_field); + TStructField nickname_field; + nickname_field.__set_name("nickname"); + nickname_field.__set_contains_null(true); + element_fields.push_back(nickname_field); + TStructField friendship_level_field; + friendship_level_field.__set_name("friendship_level"); + friendship_level_field.__set_contains_null(true); + element_fields.push_back(friendship_level_field); + element_struct_node.__set_struct_fields(element_fields); + type.types.push_back(element_struct_node); + // user_id: bigint + TTypeNode user_id_node; + user_id_node.__set_type(TTypeNodeType::SCALAR); + TScalarType user_id_scalar; + user_id_scalar.__set_type(TPrimitiveType::BIGINT); + user_id_node.__set_scalar_type(user_id_scalar); + type.types.push_back(user_id_node); + // nickname: string + TTypeNode nickname_node; + nickname_node.__set_type(TTypeNodeType::SCALAR); + TScalarType nickname_scalar; + nickname_scalar.__set_type(TPrimitiveType::STRING); + nickname_node.__set_scalar_type(nickname_scalar); + type.types.push_back(nickname_node); + // friendship_level: int + TTypeNode friendship_level_node; + friendship_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType friendship_level_scalar; + friendship_level_scalar.__set_type(TPrimitiveType::INT); + friendship_level_node.__set_scalar_type(friendship_level_scalar); + type.types.push_back(friendship_level_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "recent_activity") { + // recent_activity: array>>> + TTypeNode array_node; + array_node.__set_type(TTypeNodeType::ARRAY); + array_node.__set_contains_nulls({true}); + type.types.push_back(array_node); + TTypeNode element_struct_node; + element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector element_fields; + TStructField action_field; + action_field.__set_name("action"); + action_field.__set_contains_null(true); + element_fields.push_back(action_field); + TStructField details_field; + details_field.__set_name("details"); + details_field.__set_contains_null(true); + element_fields.push_back(details_field); + element_struct_node.__set_struct_fields(element_fields); + type.types.push_back(element_struct_node); + // action: string + TTypeNode action_node; + action_node.__set_type(TTypeNodeType::SCALAR); + TScalarType action_scalar; + action_scalar.__set_type(TPrimitiveType::STRING); + action_node.__set_scalar_type(action_scalar); + type.types.push_back(action_node); + // details: array> + TTypeNode details_array_node; + details_array_node.__set_type(TTypeNodeType::ARRAY); + details_array_node.__set_contains_nulls({true}); + type.types.push_back(details_array_node); + TTypeNode details_element_struct_node; + details_element_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector details_element_fields; + TStructField key_field; + key_field.__set_name("key"); + key_field.__set_contains_null(true); + details_element_fields.push_back(key_field); + TStructField value_field; + value_field.__set_name("value"); + value_field.__set_contains_null(true); + details_element_fields.push_back(value_field); + details_element_struct_node.__set_struct_fields(details_element_fields); + type.types.push_back(details_element_struct_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: string + TTypeNode value_node; + value_node.__set_type(TTypeNodeType::SCALAR); + TScalarType value_scalar; + value_scalar.__set_type(TPrimitiveType::STRING); + value_node.__set_scalar_type(value_scalar); + type.types.push_back(value_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "attributes") { + // attributes: map + TTypeNode map_node; + map_node.__set_type(TTypeNodeType::MAP); + map_node.__set_contains_nulls({true, true}); + type.types.push_back(map_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: string + TTypeNode value_node; + value_node.__set_type(TTypeNodeType::SCALAR); + TScalarType value_scalar; + value_scalar.__set_type(TPrimitiveType::STRING); + value_node.__set_scalar_type(value_scalar); + type.types.push_back(value_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "complex_attributes") { + // complex_attributes: map>> + TTypeNode map_node; + map_node.__set_type(TTypeNodeType::MAP); + map_node.__set_contains_nulls({true, true}); + type.types.push_back(map_node); + // key: string + TTypeNode key_node; + key_node.__set_type(TTypeNodeType::SCALAR); + TScalarType key_scalar; + key_scalar.__set_type(TPrimitiveType::STRING); + key_node.__set_scalar_type(key_scalar); + type.types.push_back(key_node); + // value: struct> + TTypeNode value_struct_node; + value_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector value_fields; + TStructField metadata_field; + metadata_field.__set_name("metadata"); + metadata_field.__set_contains_null(true); + value_fields.push_back(metadata_field); + value_struct_node.__set_struct_fields(value_fields); + type.types.push_back(value_struct_node); + // metadata: struct + TTypeNode metadata_struct_node; + metadata_struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector metadata_fields; + TStructField version_field; + version_field.__set_name("version"); + version_field.__set_contains_null(true); + metadata_fields.push_back(version_field); + TStructField created_time_field; + created_time_field.__set_name("created_time"); + created_time_field.__set_contains_null(true); + metadata_fields.push_back(created_time_field); + TStructField last_updated_field; + last_updated_field.__set_name("last_updated"); + last_updated_field.__set_contains_null(true); + metadata_fields.push_back(last_updated_field); + metadata_struct_node.__set_struct_fields(metadata_fields); + type.types.push_back(metadata_struct_node); + // version: string + TTypeNode version_node; + version_node.__set_type(TTypeNodeType::SCALAR); + TScalarType version_scalar; + version_scalar.__set_type(TPrimitiveType::STRING); + version_node.__set_scalar_type(version_scalar); + type.types.push_back(version_node); + // created_time: timestamp + TTypeNode created_time_node; + created_time_node.__set_type(TTypeNodeType::SCALAR); + TScalarType created_time_scalar; + created_time_scalar.__set_type(TPrimitiveType::DATETIME); + created_time_node.__set_scalar_type(created_time_scalar); + type.types.push_back(created_time_node); + // last_updated: timestamp + TTypeNode last_updated_node; + last_updated_node.__set_type(TTypeNodeType::SCALAR); + TScalarType last_updated_scalar; + last_updated_scalar.__set_type(TPrimitiveType::DATETIME); + last_updated_node.__set_scalar_type(last_updated_scalar); + type.types.push_back(last_updated_node); + tslot_desc.__set_slotType(type); + } else if (table_column_names[i] == "profile") { + // STRUCT/ARRAY 节点设置 contains_nulls,SCALAR 节点不设置 + TTypeNode struct_node; + struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector struct_fields; + TStructField address_field; + address_field.__set_name("address"); + address_field.__set_contains_null(true); + struct_fields.push_back(address_field); + TStructField contact_field; + contact_field.__set_name("contact"); + contact_field.__set_contains_null(true); + struct_fields.push_back(contact_field); + TStructField hobbies_field; + hobbies_field.__set_name("hobbies"); + hobbies_field.__set_contains_null(true); + struct_fields.push_back(hobbies_field); + struct_node.__set_struct_fields(struct_fields); + type.types.push_back(struct_node); + TTypeNode address_node; + address_node.__set_type(TTypeNodeType::STRUCT); + std::vector address_fields; + TStructField street_field; + street_field.__set_name("street"); + street_field.__set_contains_null(true); + address_fields.push_back(street_field); + TStructField city_field; + city_field.__set_name("city"); + city_field.__set_contains_null(true); + address_fields.push_back(city_field); + TStructField coordinates_field; + coordinates_field.__set_name("coordinates"); + coordinates_field.__set_contains_null(true); + address_fields.push_back(coordinates_field); + address_node.__set_struct_fields(address_fields); + type.types.push_back(address_node); + TTypeNode street_node; + street_node.__set_type(TTypeNodeType::SCALAR); + TScalarType street_scalar; + street_scalar.__set_type(TPrimitiveType::STRING); + street_node.__set_scalar_type(street_scalar); + type.types.push_back(street_node); + TTypeNode city_node; + city_node.__set_type(TTypeNodeType::SCALAR); + TScalarType city_scalar; + city_scalar.__set_type(TPrimitiveType::STRING); + city_node.__set_scalar_type(city_scalar); + type.types.push_back(city_node); + TTypeNode coordinates_node; + coordinates_node.__set_type(TTypeNodeType::STRUCT); + std::vector coordinates_fields; + TStructField lat_field; + lat_field.__set_name("lat"); + lat_field.__set_contains_null(true); + coordinates_fields.push_back(lat_field); + TStructField lng_field; + lng_field.__set_name("lng"); + lng_field.__set_contains_null(true); + coordinates_fields.push_back(lng_field); + coordinates_node.__set_struct_fields(coordinates_fields); + type.types.push_back(coordinates_node); + TTypeNode lat_node; + lat_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lat_scalar; + lat_scalar.__set_type(TPrimitiveType::DOUBLE); + lat_node.__set_scalar_type(lat_scalar); + type.types.push_back(lat_node); + TTypeNode lng_node; + lng_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lng_scalar; + lng_scalar.__set_type(TPrimitiveType::DOUBLE); + lng_node.__set_scalar_type(lng_scalar); + type.types.push_back(lng_node); + TTypeNode contact_node; + contact_node.__set_type(TTypeNodeType::STRUCT); + std::vector contact_fields; + TStructField email_field; + email_field.__set_name("email"); + email_field.__set_contains_null(true); + contact_fields.push_back(email_field); + TStructField phone_field; + phone_field.__set_name("phone"); + phone_field.__set_contains_null(true); + contact_fields.push_back(phone_field); + contact_node.__set_struct_fields(contact_fields); + type.types.push_back(contact_node); + TTypeNode email_node; + email_node.__set_type(TTypeNodeType::SCALAR); + TScalarType email_scalar; + email_scalar.__set_type(TPrimitiveType::STRING); + email_node.__set_scalar_type(email_scalar); + type.types.push_back(email_node); + TTypeNode phone_node; + phone_node.__set_type(TTypeNodeType::STRUCT); + std::vector phone_fields; + TStructField country_code_field; + country_code_field.__set_name("country_code"); + country_code_field.__set_contains_null(true); + phone_fields.push_back(country_code_field); + TStructField number_field; + number_field.__set_name("number"); + number_field.__set_contains_null(true); + phone_fields.push_back(number_field); + phone_node.__set_struct_fields(phone_fields); + type.types.push_back(phone_node); + TTypeNode country_code_node; + country_code_node.__set_type(TTypeNodeType::SCALAR); + TScalarType country_code_scalar; + country_code_scalar.__set_type(TPrimitiveType::STRING); + country_code_node.__set_scalar_type(country_code_scalar); + type.types.push_back(country_code_node); + TTypeNode number_node; + number_node.__set_type(TTypeNodeType::SCALAR); + TScalarType number_scalar; + number_scalar.__set_type(TPrimitiveType::STRING); + number_node.__set_scalar_type(number_scalar); + type.types.push_back(number_node); + TTypeNode hobbies_node; + hobbies_node.__set_type(TTypeNodeType::ARRAY); + hobbies_node.__set_contains_nulls({true}); + type.types.push_back(hobbies_node); + TTypeNode hobby_element_node; + hobby_element_node.__set_type(TTypeNodeType::STRUCT); + std::vector hobby_element_fields; + TStructField hobby_name_field; + hobby_name_field.__set_name("name"); + hobby_name_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_name_field); + TStructField hobby_level_field; + hobby_level_field.__set_name("level"); + hobby_level_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_level_field); + hobby_element_node.__set_struct_fields(hobby_element_fields); + type.types.push_back(hobby_element_node); + TTypeNode hobby_name_node; + hobby_name_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_name_scalar; + hobby_name_scalar.__set_type(TPrimitiveType::STRING); + hobby_name_node.__set_scalar_type(hobby_name_scalar); + type.types.push_back(hobby_name_node); + TTypeNode hobby_level_node; + hobby_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_level_scalar; + hobby_level_scalar.__set_type(TPrimitiveType::INT); + hobby_level_node.__set_scalar_type(hobby_level_scalar); + type.types.push_back(hobby_level_node); + tslot_desc.__set_slotType(type); + } else { + // 普通类型 + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(types[i]); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } + tslot_desc.__set_id(i); + tslot_desc.__set_parent(0); + tslot_desc.__set_colName(table_column_names[i]); + tslot_desc.__set_columnPos(table_column_positions[i]); + tslot_desc.__set_byteOffset(0); + tslot_desc.__set_nullIndicatorByte(0); + tslot_desc.__set_nullIndicatorBit(-1); + tslot_desc.__set_slotIdx(0); + tslot_desc.__set_isMaterialized(true); + + // Set Iceberg field ID (col_unique_id) + int iceberg_field_id = get_iceberg_field_id(table_column_names[i]); + if (iceberg_field_id > 0) { + tslot_desc.__set_col_unique_id(iceberg_field_id); + } + + // Use configuration to set column_access_paths + for (const auto& config : access_configs) { + set_column_access_paths(tslot_desc, config); + } + + t_desc_table.slotDescriptors.push_back(tslot_desc); + } + t_desc_table.__isset.slotDescriptors = true; + TTupleDescriptor t_tuple_desc; + t_tuple_desc.__set_id(0); + t_tuple_desc.__set_byteSize(16); + t_tuple_desc.__set_numNullBytes(0); + t_tuple_desc.__set_tableId(0); + t_tuple_desc.__isset.tableId = true; + t_desc_table.tupleDescriptors.push_back(t_tuple_desc); + }; + + create_table_desc(t_desc_table, t_table_desc, column_names, column_positions, column_types); + EXPECT_TRUE(DescriptorTbl::create(&obj_pool, t_desc_table, desc_tbl).ok()); + return (*desc_tbl)->get_tuple_descriptor(0); + } + + // Helper function: set column access paths on a slot descriptor + void set_column_access_paths(TSlotDescriptor& tslot_desc, + const ColumnAccessPathConfig& config) { + if (config.column_name != tslot_desc.colName) { + return; // Not the target column, skip + } + + // Set all_column_access_paths + if (!config.all_column_paths.empty()) { + std::vector access_paths; + for (const auto& path_vector : config.all_column_paths) { + TColumnAccessPath access_path; + access_path.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path; + data_path.__set_path(path_vector); + access_path.__set_data_access_path(data_path); + access_paths.push_back(access_path); + } + tslot_desc.__set_all_access_paths(access_paths); + } + + // Set predicate_column_access_paths + if (!config.predicate_paths.empty()) { + std::vector access_paths; + for (const auto& path_vector : config.predicate_paths) { + TColumnAccessPath access_path; + access_path.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path; + data_path.__set_path(path_vector); + access_path.__set_data_access_path(data_path); + access_paths.push_back(access_path); + } + tslot_desc.__set_predicate_access_paths(access_paths); + } + } + + std::unique_ptr cache; + cctz::time_zone timezone_obj; + + // Helper function: create and setup ParquetReader + std::tuple, const FieldDescriptor*> create_parquet_reader( + const std::string& test_file) { + // Open the Iceberg Parquet test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + return {nullptr, nullptr}; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_PARQUET; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create ParquetReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = + ParquetReader::create_unique(&profile, scan_params, scan_range, 1024, &ctz, nullptr, + &runtime_state, cache.get()); + if (!generic_reader) { + return {nullptr, nullptr}; + } + + // Set file reader for the generic reader + auto parquet_reader = static_cast(generic_reader.get()); + parquet_reader->set_file_reader(file_reader); + + const FieldDescriptor* field_desc = nullptr; + st = parquet_reader->get_file_metadata_schema(&field_desc); + if (!st.ok() || !field_desc) { + return {nullptr, nullptr}; + } + + // Create IcebergParquetReader + auto iceberg_reader = std::make_unique( + std::move(generic_reader), &profile, &runtime_state, scan_params, scan_range, + nullptr, nullptr, cache.get()); + + return {std::move(iceberg_reader), field_desc}; + } + + // Helper function: create and setup OrcReader + std::tuple, const orc::Type*> create_orc_reader( + const std::string& test_file) { + // Open the Iceberg Orc test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + return {nullptr, nullptr}; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_ORC; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create OrcReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = + OrcReader::create_unique(&profile, &runtime_state, scan_params, scan_range, 1024, + "CST", nullptr, cache.get()); + if (!generic_reader) { + return {nullptr, nullptr}; + } + + auto orc_reader = static_cast(generic_reader.get()); + // Get FieldDescriptor from Orc file + const orc::Type* orc_type_ptr = nullptr; + st = orc_reader->get_file_type(&orc_type_ptr); + if (!st.ok() || !orc_type_ptr) { + return {nullptr, nullptr}; + } + + // Create IcebergOrcReader + auto iceberg_reader = std::make_unique( + std::move(generic_reader), &profile, &runtime_state, scan_params, scan_range, + nullptr, nullptr, cache.get()); + + return {std::move(iceberg_reader), orc_type_ptr}; + } + + // Helper function: run Parquet test with different column ID extraction methods + void run_parquet_test(const std::vector& table_column_names, + const std::vector& access_configs, + const std::set& expected_column_ids, + const std::set& expected_filter_column_ids, + bool use_top_level_method = false, bool should_skip_assertion = false) { + std::string test_file = + "./be/test/exec/test_data/nested_user_profiles_iceberg_parquet/data/" + "00000-9-a7e0135f-d581-40e4-8d56-a929aded99e4-0-00001.parquet"; + + auto [iceberg_reader, field_desc] = create_parquet_reader(test_file); + if (!iceberg_reader || !field_desc) { + GTEST_SKIP() << "Test file not found or failed to create reader: " << test_file; + return; + } + + // Create tuple descriptor based on full schema + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + + // Define all columns according to the schema + std::vector all_table_column_names = {"id", "name", + "profile", "tags", + "friends", "recent_activity", + "attributes", "complex_attributes"}; + std::vector all_table_column_positions = {0, 1, 2, 3, 4, 5, 6, 7}; + std::vector all_table_column_types = { + TPrimitiveType::BIGINT, // id + TPrimitiveType::STRING, // name + TPrimitiveType::STRUCT, // profile + TPrimitiveType::ARRAY, // tags + TPrimitiveType::ARRAY, // friends + TPrimitiveType::ARRAY, // recent_activity + TPrimitiveType::MAP, // attributes + TPrimitiveType::MAP // complex_attributes + }; + + std::vector table_column_positions; + std::vector table_column_types; + for (const auto& col_name : table_column_names) { + auto it = std::find(all_table_column_names.begin(), all_table_column_names.end(), + col_name); + if (it != all_table_column_names.end()) { + int idx = std::distance(all_table_column_names.begin(), it); + table_column_positions.push_back(idx); + table_column_types.push_back(all_table_column_types[idx]); + } + } + + const TupleDescriptor* tuple_descriptor = create_tuple_descriptor( + &desc_tbl, obj_pool, t_desc_table, t_table_desc, table_column_names, + table_column_positions, table_column_types, access_configs); + + // Execute test based on method choice + ColumnIdResult actual_result; + if (use_top_level_method) { + // actual_result = IcebergParquetReader::_create_column_ids_by_top_level_col_index( + // field_desc, tuple_descriptor); + } else { + actual_result = IcebergParquetReader::_create_column_ids(field_desc, tuple_descriptor); + } + + if (!should_skip_assertion) { + EXPECT_EQ(actual_result.column_ids, expected_column_ids); + EXPECT_EQ(actual_result.filter_column_ids, expected_filter_column_ids); + } + } + + // Helper function: run Orc test with different column ID extraction methods + void run_orc_test(const std::vector& table_column_names, + const std::vector& access_configs, + const std::set& expected_column_ids, + const std::set& expected_filter_column_ids, + bool use_top_level_method = false, bool should_skip_assertion = false) { + std::string test_file = + "./be/test/exec/test_data/nested_user_profiles_iceberg_orc/data/" + "00000-8-5a144c37-16a4-47c6-96db-0007175b5c90-0-00001.orc"; + + auto [iceberg_reader, orc_type] = create_orc_reader(test_file); + if (!iceberg_reader || !orc_type) { + GTEST_SKIP() << "Test file not found or failed to create reader: " << test_file; + return; + } + + // Create tuple descriptor based on full schema + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + + // Define all columns according to the schema + std::vector all_table_column_names = {"id", "name", + "profile", "tags", + "friends", "recent_activity", + "attributes", "complex_attributes"}; + std::vector all_table_column_positions = {0, 1, 2, 3, 4, 5, 6, 7}; + std::vector all_table_column_types = { + TPrimitiveType::BIGINT, // id + TPrimitiveType::STRING, // name + TPrimitiveType::STRUCT, // profile + TPrimitiveType::ARRAY, // tags + TPrimitiveType::ARRAY, // friends + TPrimitiveType::ARRAY, // recent_activity + TPrimitiveType::MAP, // attributes + TPrimitiveType::MAP // complex_attributes + }; + + std::vector table_column_positions; + std::vector table_column_types; + for (const auto& col_name : table_column_names) { + auto it = std::find(all_table_column_names.begin(), all_table_column_names.end(), + col_name); + if (it != all_table_column_names.end()) { + int idx = std::distance(all_table_column_names.begin(), it); + table_column_positions.push_back(idx); + table_column_types.push_back(all_table_column_types[idx]); + } + } + + const TupleDescriptor* tuple_descriptor = create_tuple_descriptor( + &desc_tbl, obj_pool, t_desc_table, t_table_desc, table_column_names, + table_column_positions, table_column_types, access_configs); + + // Execute test based on method choice + ColumnIdResult actual_result; + if (use_top_level_method) { + // actual_result = IcebergOrcReader::_create_column_ids_by_top_level_col_index( + // orc_type, tuple_descriptor); + } else { + actual_result = IcebergOrcReader::_create_column_ids(orc_type, tuple_descriptor); + } + + if (!should_skip_assertion) { + EXPECT_EQ(actual_result.column_ids, expected_column_ids); + EXPECT_EQ(actual_result.filter_column_ids, expected_filter_column_ids); + } + } +}; + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_1) { + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"3", "9", "14", "15"}, + {"3", "9", "14", "16"}, + {"3", "10", "17"}, + {"3", "11", "*", "23"}}; + access_config.predicate_paths = {{"3", "9", "14", "15"}, {"3", "10", "17"}}; + + std::vector table_column_names = {"name", "profile"}; + // column_ids should contain all necessary column IDs (set automatically deduplicates) + std::set expected_column_ids = {2, 3, 4, 7, 8, 9, 10, 11, 15, 16, 18}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); +} + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_2) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 0: struct (table/root) + // 1: id (int64) + // 2: name (string) + // 3: profile (struct) + // 4: address (struct) + // 5: street (string) + // 6: city (string) + // 7: coordinates (struct) + // 8: lat (double) + // 9: lng (double) + // 10: contact (struct) + // 11: email (string) + // 12: phone (struct) + // 13: country_code (string) + // 14: number (string) + // 15: hobbies (list/array) + // 16: element (struct) + // 17: name (string) + // 18: level (int32) + + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"3"}}; + access_config.predicate_paths = {{"3", "9", "14", "15"}, {"3", "10", "17"}}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); +} + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_3) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 0: struct (table/root) + // 1: id (int64) + // 2: name (string) + // 3: profile (struct) + // 4: address (struct) + // 5: street (string) + // 6: city (string) + // 7: coordinates (struct) + // 8: lat (double) + // 9: lng (double) + // 10: contact (struct) + // 11: email (string) + // 12: phone (struct) + // 13: country_code (string) + // 14: number (string) + // 15: hobbies (list/array) + // 16: element (struct) + // 17: name (string) + // 18: level (int32) + + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {{"3", "10"}, {"3", "9"}}; + access_config.predicate_paths = {{"3", "9", "14"}, {"3", "10", "17"}}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + std::set expected_filter_column_ids = {3, 4, 7, 8, 9, 10, 11}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); +} + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_4) { + ColumnAccessPathConfig access_config; + access_config.column_name = "profile"; + + access_config.all_column_paths = {}; + access_config.predicate_paths = {}; + + std::vector table_column_names = {"name", "profile"}; + std::set expected_column_ids = {2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18}; + std::set expected_filter_column_ids = {}; + + run_parquet_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, {access_config}, expected_column_ids, + expected_filter_column_ids); +} + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_5) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 19: tags (array) + // 20: element (string) + // 21: friends (array) + // 22: element (struct) + // 23: user_id (bigint) + // 24: nickname (string) + // 25: friendship_level (int) + // 26: recent_activity (array) + // 27: element (struct) + // 28: action (string) + // 29: details (array) + // 30: element (struct) + // 31: key (string) + // 32: value (string) + + std::vector access_configs; + + { + ColumnAccessPathConfig access_config; + access_config.column_name = "friends"; + + access_config.all_column_paths = {{"5", "*", "27"}, {"5", "*", "28"}}; + access_config.predicate_paths = { + {"5", "*", "27"}, + }; + access_configs.push_back(access_config); + } + + { + ColumnAccessPathConfig access_config; + access_config.column_name = "recent_activity"; + + access_config.all_column_paths = {{"6", "*", "30"}, {"6", "*", "31", "*", "34"}}; + access_config.predicate_paths = { + {"6", "*", "30"}, + }; + access_configs.push_back(access_config); + } + + std::vector table_column_names = {"name", "friends", "recent_activity"}; + std::set expected_column_ids = {2, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32}; + std::set expected_filter_column_ids = {21, 22, 24, 26, 27, 28}; + + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); +} + +TEST_F(IcebergReaderCreateColumnIdsTest, test_create_column_ids_6) { + // ORC column IDs are assigned in a tree-like incremental manner: the root node is 0, and child nodes increase sequentially. + // Currently, Parquet uses a similar design. + // 33: attributes (map) + // 34: key (string) + // 35: value (string) + // 36: complex_attributes (map) + // 37: key (string) + // 38: value (struct) + // 39: metadata (struct) + // 40: version (string) + // 41: created_time (timestamp) + // 42: last_updated (timestamp) + // 43: quality_score (double) + // 44: historical_scores (array) + // 45: element (struct) + // 46: period (string) + // 47: score (double) + // 48: components (array) + // 49: element (struct) + // 50: component_name (string) + // 51: weight (float) + // 52: sub_scores (map) + // 53: key (string) + // 54: value (double) + // 55: trends (struct) + // 56: direction (string) + // 57: magnitude (double) + // 58: confidence_interval (struct) + // 59: lower (double) + // 60: upper (double) + // 61: hierarchical_data (map) + // 62: key (string) + // 63: value (struct) + // 64: category (string) + // 65: sub_items (array) + // 66: element (struct) + // 67: item_id (bigint) + // 68: properties (map) + // 69: key (string) + // 70: value (string) + // 71: metrics (struct) + // 72: value (double) + // 73: unit (string) + // 74: summary (struct) + // 75: total_count (int) + // 76: average_value (double) + // 77: validation_rules (struct) + // 78: required (boolean) + // 79: constraints (array) + // 80: element (struct) + // 81: rule_type (string) + // 82: parameters (map) + // 83: key (string) + // 84: value (string) + // 85: error_message (string) + // 86: complex_constraint (struct) + // 87: logic_operator (string) + // 88: operands (array) + // 89: element (struct) + // 90: field_path (string) + // 91: operator (string) + // 92: comparison_value (string) + std::vector access_configs; + + { + ColumnAccessPathConfig access_config; + access_config.column_name = "complex_attributes"; + + access_config.all_column_paths = {{"8", "*", "39", "43"}, + {"8", "*", "40", "*", "50", "*", "55"}, + {"8", "*", "41", "VALUES"}, + {"8", "VALUES", "42", "79", "*", "83", "KEYS"}}; + access_config.predicate_paths = {{"8", "*", "39", "43"}}; + access_configs.push_back(access_config); + } + + { + std::vector table_column_names = {"name", "complex_attributes"}; + // parquet values should access keys + std::set expected_column_ids = {2, 36, 37, 38, 39, 40, 44, 45, 48, 49, 52, 53, + 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 79, 80, 82, 83}; + std::set expected_filter_column_ids = {36, 37, 38, 39, 40}; + + run_parquet_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + } + + { + std::vector table_column_names = {"name", "complex_attributes"}; + // orc values should access keys because need to deduplicate by keys + std::set expected_column_ids = {2, 36, 37, 38, 39, 40, 44, 45, 48, 49, 52, 53, + 54, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 79, 80, 82, 83}; + std::set expected_filter_column_ids = {36, 37, 38, 39, 40}; + + run_orc_test(table_column_names, access_configs, expected_column_ids, + expected_filter_column_ids); + } +} + +} // namespace doris::vectorized \ No newline at end of file diff --git a/be/test/vec/exec/format/table/iceberg/iceberg_reader_test.cpp b/be/test/vec/exec/format/table/iceberg/iceberg_reader_test.cpp new file mode 100644 index 00000000000000..6b41eb75f0f4e8 --- /dev/null +++ b/be/test/vec/exec/format/table/iceberg/iceberg_reader_test.cpp @@ -0,0 +1,733 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "vec/exec/format/table/iceberg_reader.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "common/object_pool.h" +#include "exec/olap_common.h" +#include "io/fs/file_meta_cache.h" +#include "io/fs/file_reader_writer_fwd.h" +#include "io/fs/file_system.h" +#include "io/fs/local_file_system.h" +#include "runtime/descriptors.h" +#include "runtime/runtime_state.h" +#include "util/timezone_utils.h" +#include "vec/columns/column.h" +#include "vec/columns/column_array.h" +#include "vec/columns/column_nullable.h" +#include "vec/columns/column_struct.h" +#include "vec/core/block.h" +#include "vec/core/column_with_type_and_name.h" +#include "vec/data_types/data_type.h" +#include "vec/data_types/data_type_array.h" +#include "vec/data_types/data_type_factory.hpp" +#include "vec/data_types/data_type_nullable.h" +#include "vec/data_types/data_type_number.h" +#include "vec/data_types/data_type_string.h" +#include "vec/data_types/data_type_struct.h" +#include "vec/exec/format/parquet/vparquet_reader.h" + +namespace doris::vectorized { + +class IcebergReaderTest : public ::testing::Test { +protected: + void SetUp() override { + cache = std::make_unique(1024); + + // Setup timezone + doris::TimezoneUtils::find_cctz_time_zone(doris::TimezoneUtils::default_time_zone, + timezone_obj); + } + + void TearDown() override { cache.reset(); } + + // Helper function to create complex struct types for testing + void create_complex_struct_types(DataTypePtr& coordinates_struct_type, + DataTypePtr& address_struct_type, + DataTypePtr& phone_struct_type, + DataTypePtr& contact_struct_type, + DataTypePtr& hobby_element_struct_type, + DataTypePtr& hobbies_array_type, + DataTypePtr& profile_struct_type, DataTypePtr& name_type) { + // Create name column type (direct field) + name_type = make_nullable(std::make_shared()); + + // First create coordinates struct type + std::vector coordinates_types = { + make_nullable(std::make_shared()), // lat (field ID 10) + make_nullable(std::make_shared()) // lng (field ID 11) + }; + std::vector coordinates_names = {"lat", "lng"}; + coordinates_struct_type = make_nullable( + std::make_shared(coordinates_types, coordinates_names)); + + // Create address struct type (with street, city, coordinates) + std::vector address_types = { + make_nullable(std::make_shared()), // street (field ID 7) + make_nullable(std::make_shared()), // city (field ID 8) + coordinates_struct_type // coordinates (field ID 9) + }; + std::vector address_names = {"street", "city", "coordinates"}; + address_struct_type = + make_nullable(std::make_shared(address_types, address_names)); + + // Create phone struct type + std::vector phone_types = { + make_nullable(std::make_shared()), // country_code (field ID 14) + make_nullable(std::make_shared()) // number (field ID 15) + }; + std::vector phone_names = {"country_code", "number"}; + phone_struct_type = + make_nullable(std::make_shared(phone_types, phone_names)); + + // Create contact struct type (with email, phone) + std::vector contact_types = { + make_nullable(std::make_shared()), // email (field ID 12) + phone_struct_type // phone (field ID 13) + }; + std::vector contact_names = {"email", "phone"}; + contact_struct_type = + make_nullable(std::make_shared(contact_types, contact_names)); + + // Create hobby element struct type for array elements + std::vector hobby_element_types = { + make_nullable(std::make_shared()), // name (field ID 17) + make_nullable(std::make_shared()) // level (field ID 18) + }; + std::vector hobby_element_names = {"name", "level"}; + hobby_element_struct_type = make_nullable( + std::make_shared(hobby_element_types, hobby_element_names)); + + // Create hobbies array type + hobbies_array_type = + make_nullable(std::make_shared(hobby_element_struct_type)); + + // Create complete profile struct type (with address, contact, hobbies) + std::vector profile_types = { + address_struct_type, // address (field ID 4) + contact_struct_type, // contact (field ID 5) + hobbies_array_type // hobbies (field ID 6) + }; + std::vector profile_names = {"address", "contact", "hobbies"}; + profile_struct_type = + make_nullable(std::make_shared(profile_types, profile_names)); + } + + // Helper function to create tuple descriptor + const TupleDescriptor* create_tuple_descriptor(DescriptorTbl** desc_tbl, ObjectPool& obj_pool, + TDescriptorTable& t_desc_table, + TTableDescriptor& t_table_desc) { + std::vector table_column_names = {"name", "profile"}; + std::vector table_column_types = { + TPrimitiveType::STRING, TPrimitiveType::STRUCT // profile uses STRUCT type + }; + + // Create table descriptor with complex schema + auto create_table_desc = [](TDescriptorTable& t_desc_table, TTableDescriptor& t_table_desc, + const std::vector& table_column_names, + const std::vector& types) { + t_table_desc.__set_id(0); + t_table_desc.__set_tableType(TTableType::OLAP_TABLE); + t_table_desc.__set_numCols(0); + t_table_desc.__set_numClusteringCols(0); + t_desc_table.tableDescriptors.push_back(t_table_desc); + t_desc_table.__isset.tableDescriptors = true; + // iceberg_id must correspond to table_column_names order + std::vector iceberg_ids = {2, 3}; // name:2, profile:3 + for (int i = 0; i < table_column_names.size(); i++) { + TSlotDescriptor tslot_desc; + tslot_desc.__set_id(i); + tslot_desc.__set_parent(0); + tslot_desc.__set_col_unique_id(iceberg_ids[i]); + TTypeDesc type; + if (table_column_names[i] == "profile") { + // STRUCT/ARRAY nodes set contains_nulls; SCALAR nodes do not + TTypeNode struct_node; + struct_node.__set_type(TTypeNodeType::STRUCT); + std::vector struct_fields; + TStructField address_field; + address_field.__set_name("address"); + address_field.__set_contains_null(true); + struct_fields.push_back(address_field); + TStructField contact_field; + contact_field.__set_name("contact"); + contact_field.__set_contains_null(true); + struct_fields.push_back(contact_field); + TStructField hobbies_field; + hobbies_field.__set_name("hobbies"); + hobbies_field.__set_contains_null(true); + struct_fields.push_back(hobbies_field); + struct_node.__set_struct_fields(struct_fields); + type.types.push_back(struct_node); + TTypeNode address_node; + address_node.__set_type(TTypeNodeType::STRUCT); + std::vector address_fields; + TStructField street_field; + street_field.__set_name("street"); + street_field.__set_contains_null(true); + address_fields.push_back(street_field); + TStructField city_field; + city_field.__set_name("city"); + city_field.__set_contains_null(true); + address_fields.push_back(city_field); + TStructField coordinates_field; + coordinates_field.__set_name("coordinates"); + coordinates_field.__set_contains_null(true); + address_fields.push_back(coordinates_field); + address_node.__set_struct_fields(address_fields); + type.types.push_back(address_node); + TTypeNode street_node; + street_node.__set_type(TTypeNodeType::SCALAR); + TScalarType street_scalar; + street_scalar.__set_type(TPrimitiveType::STRING); + street_node.__set_scalar_type(street_scalar); + type.types.push_back(street_node); + TTypeNode city_node; + city_node.__set_type(TTypeNodeType::SCALAR); + TScalarType city_scalar; + city_scalar.__set_type(TPrimitiveType::STRING); + city_node.__set_scalar_type(city_scalar); + type.types.push_back(city_node); + TTypeNode coordinates_node; + coordinates_node.__set_type(TTypeNodeType::STRUCT); + std::vector coordinates_fields; + TStructField lat_field; + lat_field.__set_name("lat"); + lat_field.__set_contains_null(true); + coordinates_fields.push_back(lat_field); + TStructField lng_field; + lng_field.__set_name("lng"); + lng_field.__set_contains_null(true); + coordinates_fields.push_back(lng_field); + coordinates_node.__set_struct_fields(coordinates_fields); + type.types.push_back(coordinates_node); + TTypeNode lat_node; + lat_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lat_scalar; + lat_scalar.__set_type(TPrimitiveType::DOUBLE); + lat_node.__set_scalar_type(lat_scalar); + type.types.push_back(lat_node); + TTypeNode lng_node; + lng_node.__set_type(TTypeNodeType::SCALAR); + TScalarType lng_scalar; + lng_scalar.__set_type(TPrimitiveType::DOUBLE); + lng_node.__set_scalar_type(lng_scalar); + type.types.push_back(lng_node); + TTypeNode contact_node; + contact_node.__set_type(TTypeNodeType::STRUCT); + std::vector contact_fields; + TStructField email_field; + email_field.__set_name("email"); + email_field.__set_contains_null(true); + contact_fields.push_back(email_field); + TStructField phone_field; + phone_field.__set_name("phone"); + phone_field.__set_contains_null(true); + contact_fields.push_back(phone_field); + contact_node.__set_struct_fields(contact_fields); + type.types.push_back(contact_node); + TTypeNode email_node; + email_node.__set_type(TTypeNodeType::SCALAR); + TScalarType email_scalar; + email_scalar.__set_type(TPrimitiveType::STRING); + email_node.__set_scalar_type(email_scalar); + type.types.push_back(email_node); + TTypeNode phone_node; + phone_node.__set_type(TTypeNodeType::STRUCT); + std::vector phone_fields; + TStructField country_code_field; + country_code_field.__set_name("country_code"); + country_code_field.__set_contains_null(true); + phone_fields.push_back(country_code_field); + TStructField number_field; + number_field.__set_name("number"); + number_field.__set_contains_null(true); + phone_fields.push_back(number_field); + phone_node.__set_struct_fields(phone_fields); + type.types.push_back(phone_node); + TTypeNode country_code_node; + country_code_node.__set_type(TTypeNodeType::SCALAR); + TScalarType country_code_scalar; + country_code_scalar.__set_type(TPrimitiveType::STRING); + country_code_node.__set_scalar_type(country_code_scalar); + type.types.push_back(country_code_node); + TTypeNode number_node; + number_node.__set_type(TTypeNodeType::SCALAR); + TScalarType number_scalar; + number_scalar.__set_type(TPrimitiveType::STRING); + number_node.__set_scalar_type(number_scalar); + type.types.push_back(number_node); + TTypeNode hobbies_node; + hobbies_node.__set_type(TTypeNodeType::ARRAY); + hobbies_node.__set_contains_nulls({true}); + type.types.push_back(hobbies_node); + TTypeNode hobby_element_node; + hobby_element_node.__set_type(TTypeNodeType::STRUCT); + std::vector hobby_element_fields; + TStructField hobby_name_field; + hobby_name_field.__set_name("name"); + hobby_name_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_name_field); + TStructField hobby_level_field; + hobby_level_field.__set_name("level"); + hobby_level_field.__set_contains_null(true); + hobby_element_fields.push_back(hobby_level_field); + hobby_element_node.__set_struct_fields(hobby_element_fields); + type.types.push_back(hobby_element_node); + TTypeNode hobby_name_node; + hobby_name_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_name_scalar; + hobby_name_scalar.__set_type(TPrimitiveType::STRING); + hobby_name_node.__set_scalar_type(hobby_name_scalar); + type.types.push_back(hobby_name_node); + TTypeNode hobby_level_node; + hobby_level_node.__set_type(TTypeNodeType::SCALAR); + TScalarType hobby_level_scalar; + hobby_level_scalar.__set_type(TPrimitiveType::INT); + hobby_level_node.__set_scalar_type(hobby_level_scalar); + type.types.push_back(hobby_level_node); + tslot_desc.__set_slotType(type); + } else { + // Regular type + TTypeNode node; + node.__set_type(TTypeNodeType::SCALAR); + TScalarType scalar_type; + scalar_type.__set_type(types[i]); + node.__set_scalar_type(scalar_type); + type.types.push_back(node); + tslot_desc.__set_slotType(type); + } + tslot_desc.__set_columnPos(0); + tslot_desc.__set_byteOffset(0); + tslot_desc.__set_nullIndicatorByte(0); + tslot_desc.__set_nullIndicatorBit(-1); + tslot_desc.__set_colName(table_column_names[i]); + tslot_desc.__set_slotIdx(0); + tslot_desc.__set_isMaterialized(true); + // Set column_access_paths only for the profile field + if (table_column_names[i] == "profile") { + std::vector access_paths; + // address.coordinates.lat + TColumnAccessPath path1; + path1.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path1; + data_path1.__set_path({"3", "4", "9", "10"}); + path1.__set_data_access_path(data_path1); + access_paths.push_back(path1); + // address.coordinates.lng + TColumnAccessPath path2; + path2.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path2; + data_path2.__set_path({"3", "4", "9", "11"}); + path2.__set_data_access_path(data_path2); + access_paths.push_back(path2); + // contact.email + TColumnAccessPath path3; + path3.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path3; + data_path3.__set_path({"3", "5", "12"}); + path3.__set_data_access_path(data_path3); + access_paths.push_back(path3); + // hobbies[].element.level + TColumnAccessPath path4; + path4.__set_type(doris::TAccessPathType::DATA); + TDataAccessPath data_path4; + data_path4.__set_path({"3", "6", "*", "18"}); + path4.__set_data_access_path(data_path4); + access_paths.push_back(path4); + tslot_desc.__set_all_access_paths(access_paths); + } + t_desc_table.slotDescriptors.push_back(tslot_desc); + } + t_desc_table.__isset.slotDescriptors = true; + TTupleDescriptor t_tuple_desc; + t_tuple_desc.__set_id(0); + t_tuple_desc.__set_byteSize(16); + t_tuple_desc.__set_numNullBytes(0); + t_tuple_desc.__set_tableId(0); + t_tuple_desc.__isset.tableId = true; + t_desc_table.tupleDescriptors.push_back(t_tuple_desc); + }; + + create_table_desc(t_desc_table, t_table_desc, table_column_names, table_column_types); + EXPECT_TRUE(DescriptorTbl::create(&obj_pool, t_desc_table, desc_tbl).ok()); + return (*desc_tbl)->get_tuple_descriptor(0); + } + + // Helper function to verify test results + void verify_test_results(Block& block, size_t read_rows) { + // Verify that we read some data + EXPECT_GT(read_rows, 0) << "Should read at least one row"; + EXPECT_EQ(block.rows(), read_rows); + + // Verify column count matches expected (2 columns: name, profile) + EXPECT_EQ(block.columns(), 2); + + // Verify column names and types + auto columns_with_names = block.get_columns_with_type_and_name(); + std::vector expected_column_names = {"name", "profile"}; + for (size_t i = 0; i < expected_column_names.size(); i++) { + EXPECT_EQ(columns_with_names[i].name, expected_column_names[i]); + } + + // Verify column types + EXPECT_TRUE(columns_with_names[0].type->get_name().find("String") != + std::string::npos); // name is STRING + EXPECT_TRUE(columns_with_names[1].type->get_name().find("Struct") != + std::string::npos); // profile is STRUCT + + // Print row count for each column and nested subcolumns + std::cout << "Block rows: " << block.rows() << std::endl; + + // Helper function to recursively print column row counts and check size > 0 + std::function + print_column_rows = [&](const ColumnPtr& col, const DataTypePtr& type, + const std::string& name, int depth) { + std::string indent(depth * 2, ' '); + std::cout << indent << name << " row count: " << col->size() << std::endl; + EXPECT_GT(col->size(), 0) << name << " column/subcolumn size should be > 0"; + + // Check if it's a nullable column + if (const auto* nullable_col = typeid_cast(col.get())) { + auto nested_type = + assert_cast(type.get())->get_nested_type(); + + // Only add ".nested" suffix for non-leaf (complex) nullable columns + // Leaf columns like String, Int, etc. should not get the ".nested" suffix + bool is_complex_type = + (typeid_cast(nested_type.get()) != + nullptr) || + (typeid_cast(nested_type.get()) != nullptr) || + (typeid_cast(nested_type.get()) != nullptr); + + std::string nested_name = is_complex_type ? name + ".nested" : name; + print_column_rows(nullable_col->get_nested_column_ptr(), nested_type, + nested_name, depth + (is_complex_type ? 1 : 0)); + } + // Check if it's a struct column + else if (const auto* struct_col = typeid_cast(col.get())) { + auto struct_type = assert_cast(type.get()); + for (size_t i = 0; i < struct_col->tuple_size(); ++i) { + std::string field_name = struct_type->get_element_name(i); + auto field_type = struct_type->get_element(i); + print_column_rows(struct_col->get_column_ptr(i), field_type, + name + "." + field_name, depth + 1); + } + } + // Check if it's an array column + else if (const auto* array_col = typeid_cast(col.get())) { + auto array_type = assert_cast(type.get()); + auto element_type = array_type->get_nested_type(); + print_column_rows(array_col->get_data_ptr(), element_type, name + ".data", + depth + 1); + } + }; + + // Print row counts for all columns + for (size_t i = 0; i < block.columns(); ++i) { + const auto& column_with_name = block.get_by_position(i); + print_column_rows(column_with_name.column, column_with_name.type, column_with_name.name, + 0); + EXPECT_EQ(column_with_name.column->size(), block.rows()) + << "Column " << column_with_name.name << " size mismatch"; + } + } + + std::unique_ptr cache; + cctz::time_zone timezone_obj; +}; + +// Test reading real Iceberg Parquet file using IcebergTableReader +TEST_F(IcebergReaderTest, read_iceberg_parquet_file) { + // Read only: name, profile.address.coordinates.lat, profile.address.coordinates.lng, profile.contact.email + // Setup table descriptor for test columns with new schema: + /** + Schema: + message table { + required int64 id = 1; + required binary name (STRING) = 2; + required group profile = 3 { + optional group address = 4 { + optional binary street (STRING) = 7; + optional binary city (STRING) = 8; + optional group coordinates = 9 { + optional double lat = 10; + optional double lng = 11; + } + } + optional group contact = 5 { + optional binary email (STRING) = 12; + optional group phone = 13 { + optional binary country_code (STRING) = 14; + optional binary number (STRING) = 15; + } + } + optional group hobbies (LIST) = 6 { + repeated group list { + optional group element = 16 { + optional binary name (STRING) = 17; + optional int32 level = 18; + } + } + } + } + } + */ + + // Open the Iceberg Parquet test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + std::string test_file = + "./be/test/exec/test_data/complex_user_profiles_iceberg_parquet/data/" + "00000-0-a0022aad-d3b6-4e73-b181-f0a09aac7034-0-00001.parquet"; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + GTEST_SKIP() << "Test file not found: " << test_file; + return; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_PARQUET; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create ParquetReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = ParquetReader::create_unique(&profile, scan_params, scan_range, 1024, + &ctz, nullptr, &runtime_state, cache.get()); + ASSERT_NE(generic_reader, nullptr); + + // Set file reader for the generic reader + auto parquet_reader = static_cast(generic_reader.get()); + parquet_reader->set_file_reader(file_reader); + + // Create IcebergParquetReader + auto iceberg_reader = std::make_unique( + std::move(generic_reader), &profile, &runtime_state, scan_params, scan_range, nullptr, + nullptr, cache.get()); + + // Create complex struct types using helper function + DataTypePtr coordinates_struct_type, address_struct_type, phone_struct_type; + DataTypePtr contact_struct_type, hobby_element_struct_type, hobbies_array_type; + DataTypePtr profile_struct_type, name_type; + create_complex_struct_types(coordinates_struct_type, address_struct_type, phone_struct_type, + contact_struct_type, hobby_element_struct_type, hobbies_array_type, + profile_struct_type, name_type); + + // Create tuple descriptor using helper function + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + const TupleDescriptor* tuple_descriptor = + create_tuple_descriptor(&desc_tbl, obj_pool, t_desc_table, t_table_desc); + + VExprContextSPtrs conjuncts; // Empty conjuncts for this test + std::vector table_col_names = {"name", "profile"}; + const RowDescriptor* row_descriptor = nullptr; + const std::unordered_map* colname_to_slot_id = nullptr; + const VExprContextSPtrs* not_single_slot_filter_conjuncts = nullptr; + const std::unordered_map* slot_id_to_filter_conjuncts = nullptr; + + st = iceberg_reader->init_reader(table_col_names, conjuncts, tuple_descriptor, row_descriptor, + colname_to_slot_id, not_single_slot_filter_conjuncts, + slot_id_to_filter_conjuncts); + ASSERT_TRUE(st.ok()) << st; + + std::unordered_map> + partition_columns; + std::unordered_map missing_columns; + ASSERT_TRUE(iceberg_reader->set_fill_columns(partition_columns, missing_columns).ok()); + + // Create block for reading nested structure (not flattened) + Block block; + { + MutableColumnPtr name_column = name_type->create_column(); + block.insert(ColumnWithTypeAndName(std::move(name_column), name_type, "name")); + // Add profile column (nested struct) + MutableColumnPtr profile_column = profile_struct_type->create_column(); + block.insert( + ColumnWithTypeAndName(std::move(profile_column), profile_struct_type, "profile")); + } + + // Read data from the file + size_t read_rows = 0; + bool eof = false; + st = iceberg_reader->get_next_block(&block, &read_rows, &eof); + ASSERT_TRUE(st.ok()) << st; + + // Verify test results using helper function + verify_test_results(block, read_rows); +} + +// Test reading real Iceberg Orc file using IcebergTableReader +TEST_F(IcebergReaderTest, read_iceberg_orc_file) { + // Read only: name, profile.address.coordinates.lat, profile.address.coordinates.lng, profile.contact.email + // Setup table descriptor for test columns with new schema: + /** + Schema: + message table { + required int64 id = 1; + required binary name (STRING) = 2; + required group profile = 3 { + optional group address = 4 { + optional binary street (STRING) = 7; + optional binary city (STRING) = 8; + optional group coordinates = 9 { + optional double lat = 10; + optional double lng = 11; + } + } + optional group contact = 5 { + optional binary email (STRING) = 12; + optional group phone = 13 { + optional binary country_code (STRING) = 14; + optional binary number (STRING) = 15; + } + } + optional group hobbies (LIST) = 6 { + repeated group list { + optional group element = 16 { + optional binary name (STRING) = 17; + optional int32 level = 18; + } + } + } + } + } + */ + + // Open the Iceberg Orc test file + auto local_fs = io::global_local_filesystem(); + io::FileReaderSPtr file_reader; + std::string test_file = + "./be/test/exec/test_data/complex_user_profiles_iceberg_orc/data/" + "00000-0-e4897963-0081-4127-bebe-35dc7dc1edeb-0-00001.orc"; + auto st = local_fs->open_file(test_file, &file_reader); + if (!st.ok()) { + GTEST_SKIP() << "Test file not found: " << test_file; + return; + } + + // Setup runtime state + RuntimeState runtime_state((TQueryGlobals())); + + // Setup scan parameters + TFileScanRangeParams scan_params; + scan_params.format_type = TFileFormatType::FORMAT_ORC; + + TFileRangeDesc scan_range; + scan_range.start_offset = 0; + scan_range.size = file_reader->size(); // Read entire file + scan_range.path = test_file; + + // Create mock profile + RuntimeProfile profile("test_profile"); + + // Create OrcReader as the underlying file format reader + cctz::time_zone ctz; + TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, ctz); + + auto generic_reader = OrcReader::create_unique(&profile, &runtime_state, scan_params, + scan_range, 1024, "CST", nullptr, cache.get()); + ASSERT_NE(generic_reader, nullptr); + + // Create IcebergOrcReader + auto iceberg_reader = std::make_unique( + std::move(generic_reader), &profile, &runtime_state, scan_params, scan_range, nullptr, + nullptr, cache.get()); + + // Create complex struct types using helper function + DataTypePtr coordinates_struct_type, address_struct_type, phone_struct_type; + DataTypePtr contact_struct_type, hobby_element_struct_type, hobbies_array_type; + DataTypePtr profile_struct_type, name_type; + create_complex_struct_types(coordinates_struct_type, address_struct_type, phone_struct_type, + contact_struct_type, hobby_element_struct_type, hobbies_array_type, + profile_struct_type, name_type); + + // Create tuple descriptor using helper function + DescriptorTbl* desc_tbl; + ObjectPool obj_pool; + TDescriptorTable t_desc_table; + TTableDescriptor t_table_desc; + const TupleDescriptor* tuple_descriptor = + create_tuple_descriptor(&desc_tbl, obj_pool, t_desc_table, t_table_desc); + + VExprContextSPtrs conjuncts; // Empty conjuncts for this test + std::vector table_col_names = {"name", "profile"}; + const RowDescriptor* row_descriptor = nullptr; + const std::unordered_map* colname_to_slot_id = nullptr; + const VExprContextSPtrs* not_single_slot_filter_conjuncts = nullptr; + const std::unordered_map* slot_id_to_filter_conjuncts = nullptr; + + st = iceberg_reader->init_reader(table_col_names, conjuncts, tuple_descriptor, row_descriptor, + colname_to_slot_id, not_single_slot_filter_conjuncts, + slot_id_to_filter_conjuncts); + ASSERT_TRUE(st.ok()) << st; + + std::unordered_map> + partition_columns; + std::unordered_map missing_columns; + ASSERT_TRUE(iceberg_reader->set_fill_columns(partition_columns, missing_columns).ok()); + + // Create block for reading nested structure (not flattened) + Block block; + { + MutableColumnPtr name_column = name_type->create_column(); + block.insert(ColumnWithTypeAndName(std::move(name_column), name_type, "name")); + // Add profile column (nested struct) + MutableColumnPtr profile_column = profile_struct_type->create_column(); + block.insert( + ColumnWithTypeAndName(std::move(profile_column), profile_struct_type, "profile")); + } + + // Read data from the file + size_t read_rows = 0; + bool eof = false; + st = iceberg_reader->get_next_block(&block, &read_rows, &eof); + ASSERT_TRUE(st.ok()) << st; + + // Verify test results using helper function + verify_test_results(block, read_rows); +} + +} // namespace doris::vectorized diff --git a/contrib/apache-orc b/contrib/apache-orc index 70b673c7d29969..e32697077ca674 160000 --- a/contrib/apache-orc +++ b/contrib/apache-orc @@ -1 +1 @@ -Subproject commit 70b673c7d299690ced7c4c600fabaee9e1601198 +Subproject commit e32697077ca674d30e201cc339aeb50870522144 diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AccessPathInfo.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AccessPathInfo.java new file mode 100644 index 00000000000000..3df7baada4daa0 --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AccessPathInfo.java @@ -0,0 +1,38 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. +// This file is copied from +// https://github.com/apache/impala/blob/branch-2.9.0/fe/src/main/java/org/apache/impala/TupleDescriptor.java +// and modified by Doris + +package org.apache.doris.analysis; + +import org.apache.doris.nereids.types.DataType; +import org.apache.doris.thrift.TColumnAccessPath; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** AccessPathInfo */ +@Data +@AllArgsConstructor +public class AccessPathInfo { + private DataType prunedType; + private List allAccessPaths; + private List predicateAccessPaths; +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java index d4376f5eaf194b..a50b935807bf5a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java @@ -23,6 +23,7 @@ import org.apache.doris.catalog.Column; import org.apache.doris.catalog.OlapTable; import org.apache.doris.catalog.Type; +import org.apache.doris.thrift.TColumnAccessPath; import org.apache.doris.thrift.TSlotDescriptor; import com.google.common.base.MoreObjects; @@ -64,6 +65,10 @@ public class SlotDescriptor { private boolean needMaterialize = true; private boolean isAutoInc = false; private Expr virtualColumn = null; + private List allAccessPaths; + private List predicateAccessPaths; + private List displayAllAccessPaths; + private List displayPredicateAccessPaths; public SlotDescriptor(SlotId id, TupleDescriptor parent) { @@ -101,6 +106,38 @@ public List getSubColLables() { return this.subColPath; } + public List getAllAccessPaths() { + return allAccessPaths; + } + + public void setAllAccessPaths(List allAccessPaths) { + this.allAccessPaths = allAccessPaths; + } + + public List getPredicateAccessPaths() { + return predicateAccessPaths; + } + + public void setPredicateAccessPaths(List predicateAccessPaths) { + this.predicateAccessPaths = predicateAccessPaths; + } + + public List getDisplayAllAccessPaths() { + return displayAllAccessPaths; + } + + public void setDisplayAllAccessPaths(List displayAllAccessPaths) { + this.displayAllAccessPaths = displayAllAccessPaths; + } + + public List getDisplayPredicateAccessPaths() { + return displayPredicateAccessPaths; + } + + public void setDisplayPredicateAccessPaths(List displayPredicateAccessPaths) { + this.displayPredicateAccessPaths = displayPredicateAccessPaths; + } + public TupleDescriptor getParent() { return parent; } @@ -202,6 +239,12 @@ public TSlotDescriptor toThrift() { if (virtualColumn != null) { tSlotDescriptor.setVirtualColumnExpr(virtualColumn.treeToThrift()); } + if (allAccessPaths != null) { + tSlotDescriptor.setAllAccessPaths(allAccessPaths); + } + if (predicateAccessPaths != null) { + tSlotDescriptor.setPredicateAccessPaths(predicateAccessPaths); + } return tSlotDescriptor; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java index 0e9b66b073b955..c3e06999bba297 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java @@ -49,6 +49,7 @@ import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import java.util.Collections; @@ -183,6 +184,8 @@ public int compare(TFileRangeDesc o1, TFileRangeDesc o2) { } output.append(String.format("numNodes=%s", numNodes)).append("\n"); + printNestedColumns(output, prefix, getTupleDesc()); + // pushdown agg output.append(prefix).append(String.format("pushdown agg=%s", pushDownAggNoGroupingOp)); if (pushDownAggNoGroupingOp.equals(TPushAggOp.COUNT)) { @@ -208,6 +211,11 @@ protected void setDefaultValueExprs(TableIf tbl, TExpr tExpr = new TExpr(); tExpr.setNodes(Lists.newArrayList()); + Map nameToSlotDesc = Maps.newLinkedHashMap(); + for (SlotDescriptor slot : desc.getSlots()) { + nameToSlotDesc.put(slot.getColumn().getName(), slot); + } + for (Column column : getColumns()) { Expr expr; Expression expression; @@ -223,7 +231,12 @@ protected void setDefaultValueExprs(TableIf tbl, if (useVarcharAsNull) { expression = new NullLiteral(VarcharType.SYSTEM_DEFAULT); } else { - expression = new NullLiteral(DataType.fromCatalogType(column.getType())); + SlotDescriptor slotDescriptor = nameToSlotDesc.get(column.getName()); + // the nested type(map/array/struct) maybe pruned, + // we should use the pruned type to avoid be core + expression = new NullLiteral(DataType.fromCatalogType( + slotDescriptor == null ? column.getType() : slotDescriptor.getType() + )); } } else { expression = null; diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java index e75bb3724174a8..0b9e1cab42c4ac 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java @@ -58,6 +58,7 @@ import org.apache.doris.nereids.exceptions.NotSupportedException; import org.apache.doris.nereids.trees.plans.logical.LogicalFileScan.SelectedPartitions; import org.apache.doris.qe.GlobalVariable; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.statistics.AnalysisInfo; import org.apache.doris.statistics.BaseAnalysisTask; import org.apache.doris.statistics.ColumnStatistic; @@ -65,6 +66,7 @@ import org.apache.doris.statistics.HMSAnalysisTask; import org.apache.doris.statistics.StatsType; import org.apache.doris.statistics.util.StatisticsUtil; +import org.apache.doris.thrift.TFileFormatType; import org.apache.doris.thrift.THiveTable; import org.apache.doris.thrift.TTableDescriptor; import org.apache.doris.thrift.TTableType; @@ -1184,6 +1186,44 @@ public List getSupportedSysTables() { } } + public TFileFormatType getFileFormatType(SessionVariable sessionVariable) throws UserException { + TFileFormatType type = null; + Table table = getRemoteTable(); + String inputFormatName = table.getSd().getInputFormat(); + String hiveFormat = HiveMetaStoreClientHelper.HiveFileFormat.getFormat(inputFormatName); + if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.PARQUET.getDesc())) { + type = TFileFormatType.FORMAT_PARQUET; + } else if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.ORC.getDesc())) { + type = TFileFormatType.FORMAT_ORC; + } else if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.TEXT_FILE.getDesc())) { + String serDeLib = table.getSd().getSerdeInfo().getSerializationLib(); + if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_JSON_SERDE) + || serDeLib.equals(HiveMetaStoreClientHelper.LEGACY_HIVE_JSON_SERDE)) { + type = TFileFormatType.FORMAT_JSON; + } else if (serDeLib.equals(HiveMetaStoreClientHelper.OPENX_JSON_SERDE)) { + if (!sessionVariable.isReadHiveJsonInOneColumn()) { + type = TFileFormatType.FORMAT_JSON; + } else if (sessionVariable.isReadHiveJsonInOneColumn() && firstColumnIsString()) { + type = TFileFormatType.FORMAT_CSV_PLAIN; + } else { + throw new UserException("You set read_hive_json_in_one_column = true, but the first column of " + + "table " + getName() + + " is not a string column."); + } + } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_TEXT_SERDE)) { + type = TFileFormatType.FORMAT_TEXT; + } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_OPEN_CSV_SERDE)) { + type = TFileFormatType.FORMAT_CSV_PLAIN; + } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_MULTI_DELIMIT_SERDE)) { + type = TFileFormatType.FORMAT_TEXT; + } else { + throw new UserException("Unsupported hive table serde: " + serDeLib); + } + } + return type; + } + + private Table loadHiveTable() { HMSCachedClient client = ((HMSExternalCatalog) catalog).getClient(); return client.getTable(getRemoteDbName(), remoteName); diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java index 7812be3e8e4cc8..744423f622cce8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java @@ -408,44 +408,9 @@ public TableIf getTargetTable() { @Override public TFileFormatType getFileFormatType() throws UserException { - TFileFormatType type = null; - Table table = hmsTable.getRemoteTable(); - String inputFormatName = table.getSd().getInputFormat(); - String hiveFormat = HiveMetaStoreClientHelper.HiveFileFormat.getFormat(inputFormatName); - if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.PARQUET.getDesc())) { - type = TFileFormatType.FORMAT_PARQUET; - } else if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.ORC.getDesc())) { - type = TFileFormatType.FORMAT_ORC; - } else if (hiveFormat.equals(HiveMetaStoreClientHelper.HiveFileFormat.TEXT_FILE.getDesc())) { - String serDeLib = table.getSd().getSerdeInfo().getSerializationLib(); - if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_JSON_SERDE) - || serDeLib.equals(HiveMetaStoreClientHelper.LEGACY_HIVE_JSON_SERDE)) { - type = TFileFormatType.FORMAT_JSON; - } else if (serDeLib.equals(HiveMetaStoreClientHelper.OPENX_JSON_SERDE)) { - if (!sessionVariable.isReadHiveJsonInOneColumn()) { - type = TFileFormatType.FORMAT_JSON; - } else if (sessionVariable.isReadHiveJsonInOneColumn() - && hmsTable.firstColumnIsString()) { - type = TFileFormatType.FORMAT_CSV_PLAIN; - } else { - throw new UserException("You set read_hive_json_in_one_column = true, but the first column of " - + "table " + hmsTable.getName() - + " is not a string column."); - } - } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_TEXT_SERDE)) { - type = TFileFormatType.FORMAT_TEXT; - } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_OPEN_CSV_SERDE)) { - type = TFileFormatType.FORMAT_CSV_PLAIN; - } else if (serDeLib.equals(HiveMetaStoreClientHelper.HIVE_MULTI_DELIMIT_SERDE)) { - type = TFileFormatType.FORMAT_TEXT; - } else { - throw new UserException("Unsupported hive table serde: " + serDeLib); - } - } - return type; + return hmsTable.getFileFormatType(sessionVariable); } - @Override protected void setScanParams(TFileRangeDesc rangeDesc, Split split) { if (split instanceof HiveSplit) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java index 8fd9aba8b1ebf3..9db79665e061fc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java @@ -289,6 +289,7 @@ public enum TableFrom { // For Iceberg rewrite operations: store file scan tasks to be used by IcebergScanNode // TODO: better solution? private List icebergRewriteFileScanTasks = null; + private boolean hasNestedColumns; public StatementContext() { this(ConnectContext.get(), null, 0); @@ -1048,4 +1049,12 @@ public boolean isSkipPrunePredicate() { public void setSkipPrunePredicate(boolean skipPrunePredicate) { this.skipPrunePredicate = skipPrunePredicate; } + + public boolean hasNestedColumns() { + return hasNestedColumns; + } + + public void setHasNestedColumns(boolean hasNestedColumns) { + this.hasNestedColumns = hasNestedColumns; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java index 7b590d4efdfca3..d297d4d908cde1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java @@ -837,10 +837,11 @@ private PlanFragment computePhysicalOlapScan(PhysicalOlapScan olapScan, PlanTran OlapTable olapTable = olapScan.getTable(); // generate real output tuple TupleDescriptor tupleDescriptor = generateTupleDesc(slots, olapTable, context); + List slotDescriptors = tupleDescriptor.getSlots(); // put virtual column expr into slot desc Map slotToVirtualColumnMap = olapScan.getSlotToVirtualColumnMap(); - for (SlotDescriptor slotDescriptor : tupleDescriptor.getSlots()) { + for (SlotDescriptor slotDescriptor : slotDescriptors) { ExprId exprId = context.findExprId(slotDescriptor.getId()); if (slotToVirtualColumnMap.containsKey(exprId)) { slotDescriptor.setVirtualColumn(ExpressionTranslator.translate( @@ -910,7 +911,7 @@ private PlanFragment computePhysicalOlapScan(PhysicalOlapScan olapScan, PlanTran && !isComplexDataType(slot.getDataType()) && !StatisticConstants.isSystemTable(olapTable) && !inVisibleCol) { - context.addUnknownStatsColumn(olapScanNode, tupleDescriptor.getSlots().get(i).getId()); + context.addUnknownStatsColumn(olapScanNode, slotDescriptors.get(i).getId()); } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java index cea2b60933f4ed..522917568c9d41 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PlanTranslatorContext.java @@ -29,6 +29,7 @@ import org.apache.doris.catalog.TableIf; import org.apache.doris.common.IdGenerator; import org.apache.doris.nereids.CascadesContext; +import org.apache.doris.nereids.StatementContext; import org.apache.doris.nereids.processor.post.TopnFilterContext; import org.apache.doris.nereids.processor.post.runtimefilterv2.RuntimeFilterContextV2; import org.apache.doris.nereids.trees.expressions.CTEId; @@ -67,6 +68,7 @@ */ public class PlanTranslatorContext { private final ConnectContext connectContext; + private final StatementContext statementContext; private final List planFragments = Lists.newArrayList(); private DescriptorTable descTable; @@ -118,16 +120,20 @@ public class PlanTranslatorContext { private final Set virtualColumnIds = Sets.newHashSet(); + /** PlanTranslatorContext */ public PlanTranslatorContext(CascadesContext ctx) { this.connectContext = ctx.getConnectContext(); + this.statementContext = ctx.getStatementContext(); this.translator = new RuntimeFilterTranslator(ctx.getRuntimeFilterContext()); this.topnFilterContext = ctx.getTopnFilterContext(); this.runtimeFilterV2Context = ctx.getRuntimeFilterV2Context(); this.descTable = new DescriptorTable(); } + /** PlanTranslatorContext */ public PlanTranslatorContext(CascadesContext ctx, DescriptorTable descTable) { this.connectContext = ctx.getConnectContext(); + this.statementContext = ctx.getStatementContext(); this.translator = new RuntimeFilterTranslator(ctx.getRuntimeFilterContext()); this.topnFilterContext = ctx.getTopnFilterContext(); this.runtimeFilterV2Context = ctx.getRuntimeFilterV2Context(); @@ -140,6 +146,7 @@ public PlanTranslatorContext(CascadesContext ctx, DescriptorTable descTable) { @VisibleForTesting public PlanTranslatorContext() { this.connectContext = null; + this.statementContext = new StatementContext(); this.translator = null; this.topnFilterContext = new TopnFilterContext(); IdGenerator runtimeFilterIdGen = RuntimeFilterId.createGenerator(); @@ -179,6 +186,10 @@ public ConnectContext getConnectContext() { return connectContext; } + public StatementContext getStatementContext() { + return statementContext; + } + public Set getScanNodeWithUnknownColumnStats() { return statsUnknownColumnsMap.keySet(); } @@ -322,6 +333,13 @@ public SlotDescriptor createSlotDesc(TupleDescriptor tupleDesc, SlotReference sl } this.addExprIdSlotRefPair(slotReference.getExprId(), slotRef); slotDescriptor.setIsNullable(slotReference.nullable()); + + if (slotReference.getAllAccessPaths().isPresent()) { + slotDescriptor.setAllAccessPaths(slotReference.getAllAccessPaths().get()); + slotDescriptor.setPredicateAccessPaths(slotReference.getPredicateAccessPaths().get()); + slotDescriptor.setDisplayAllAccessPaths(slotReference.getDisplayAllAccessPaths().get()); + slotDescriptor.setDisplayPredicateAccessPaths(slotReference.getDisplayPredicateAccessPaths().get()); + } return slotDescriptor; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java index f283aaae139368..bb3b5897e5055d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java @@ -109,6 +109,7 @@ import org.apache.doris.nereids.rules.rewrite.MergeSetOperations; import org.apache.doris.nereids.rules.rewrite.MergeSetOperationsExcept; import org.apache.doris.nereids.rules.rewrite.MergeTopNs; +import org.apache.doris.nereids.rules.rewrite.NestedColumnPruning; import org.apache.doris.nereids.rules.rewrite.NormalizeSort; import org.apache.doris.nereids.rules.rewrite.OperativeColumnDerive; import org.apache.doris.nereids.rules.rewrite.OrExpansion; @@ -910,6 +911,11 @@ private static List getWholeTreeRewriteJobs( ) )); } + rewriteJobs.add( + topic("nested column prune", + custom(RuleType.NESTED_COLUMN_PRUNING, NestedColumnPruning::new) + ) + ); rewriteJobs.addAll(jobs( topic("rewrite cte sub-tree after sub path push down", custom(RuleType.CLEAR_CONTEXT_STATUS, ClearContextStatus::new), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java index 818c689859695d..827addda77115f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleSet.java @@ -124,6 +124,7 @@ import org.apache.doris.nereids.rules.rewrite.PushDownFilterThroughWindow; import org.apache.doris.nereids.rules.rewrite.PushDownJoinOtherCondition; import org.apache.doris.nereids.rules.rewrite.PushDownLimitDistinctThroughJoin; +import org.apache.doris.nereids.rules.rewrite.PushDownProject; import org.apache.doris.nereids.rules.rewrite.PushDownProjectThroughLimit; import org.apache.doris.nereids.rules.rewrite.PushDownTopNDistinctThroughJoin; import org.apache.doris.nereids.rules.rewrite.PushDownTopNThroughJoin; @@ -175,6 +176,7 @@ public class RuleSet { new PushDownFilterThroughSetOperation(), new PushDownFilterThroughGenerate(), new PushDownProjectThroughLimit(), + new PushDownProject(), new EliminateOuterJoin(), new MergeProjectable(), new MergeFilters(), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java index f38cb30f6748ba..b9e6313d65bdf5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/RuleType.java @@ -195,6 +195,13 @@ public enum RuleType { PUSH_DOWN_PREDICATE_THROUGH_AGGREGATION(RuleTypeClass.REWRITE), PUSH_DOWN_PREDICATE_THROUGH_REPEAT(RuleTypeClass.REWRITE), PUSH_DOWN_EXPRESSIONS_IN_HASH_CONDITIONS(RuleTypeClass.REWRITE), + // Pushdown nested column project + PUSH_DOWN_NESTED_COLUMN_THROUGH_AGGREGATE(RuleTypeClass.REWRITE), + PUSH_DOWN_PROJECT_THROUGH_JOIN(RuleTypeClass.REWRITE), + PUSH_DOWN_PROJECT_THROUGH_UNION(RuleTypeClass.REWRITE), + PUSH_DOWN_PROJECT_THROUGH_WINDOW(RuleTypeClass.REWRITE), + PUSH_DOWN_PROJECT_THROUGH_PARTITION_TOP_N(RuleTypeClass.REWRITE), + // PUSH_DOWN_PROJECT_THROUGH_DEFER_MATERIALIZE_TOP_N(RuleTypeClass.REWRITE), // Pushdown filter PUSH_DOWN_FILTER_THROUGH_JOIN(RuleTypeClass.REWRITE), PUSH_DOWN_FILTER_THROUGH_LEFT_SEMI_JOIN(RuleTypeClass.REWRITE), @@ -219,6 +226,7 @@ public enum RuleType { ADD_PROJECT_FOR_JOIN(RuleTypeClass.REWRITE), ADD_PROJECT_FOR_UNIQUE_FUNCTION(RuleTypeClass.REWRITE), VARIANT_SUB_PATH_PRUNING(RuleTypeClass.REWRITE), + NESTED_COLUMN_PRUNING(RuleTypeClass.REWRITE), CLEAR_CONTEXT_STATUS(RuleTypeClass.REWRITE), COLUMN_PRUNING(RuleTypeClass.REWRITE), diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java index 2dbfb0f3e42ecf..4976a3810f5095 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java @@ -424,7 +424,8 @@ private LogicalPlan getLogicalPlan(TableIf table, UnboundRelation unboundRelatio if (hmsTable.getDlaType() == DLAType.HUDI) { LogicalHudiScan hudiScan = new LogicalHudiScan(unboundRelation.getRelationId(), hmsTable, qualifierWithoutTableName, ImmutableList.of(), Optional.empty(), - unboundRelation.getTableSample(), unboundRelation.getTableSnapshot()); + unboundRelation.getTableSample(), unboundRelation.getTableSnapshot(), + Optional.empty()); hudiScan = hudiScan.withScanParams( hmsTable, Optional.ofNullable(unboundRelation.getScanParams())); return hudiScan; @@ -434,7 +435,7 @@ private LogicalPlan getLogicalPlan(TableIf table, UnboundRelation unboundRelatio ImmutableList.of(), unboundRelation.getTableSample(), unboundRelation.getTableSnapshot(), - Optional.ofNullable(unboundRelation.getScanParams())); + Optional.ofNullable(unboundRelation.getScanParams()), Optional.empty()); } case ICEBERG_EXTERNAL_TABLE: IcebergExternalTable icebergExternalTable = (IcebergExternalTable) table; @@ -464,7 +465,7 @@ private LogicalPlan getLogicalPlan(TableIf table, UnboundRelation unboundRelatio qualifierWithoutTableName, ImmutableList.of(), unboundRelation.getTableSample(), unboundRelation.getTableSnapshot(), - Optional.ofNullable(unboundRelation.getScanParams())); + Optional.ofNullable(unboundRelation.getScanParams()), Optional.empty()); case PAIMON_EXTERNAL_TABLE: case MAX_COMPUTE_EXTERNAL_TABLE: case TRINO_CONNECTOR_EXTERNAL_TABLE: @@ -474,7 +475,7 @@ private LogicalPlan getLogicalPlan(TableIf table, UnboundRelation unboundRelatio qualifierWithoutTableName, ImmutableList.of(), unboundRelation.getTableSample(), unboundRelation.getTableSnapshot(), - Optional.ofNullable(unboundRelation.getScanParams())); + Optional.ofNullable(unboundRelation.getScanParams()), Optional.empty()); case SCHEMA: LogicalSchemaScan schemaScan = new LogicalSchemaScan(unboundRelation.getRelationId(), table, qualifierWithoutTableName); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/ExpressionAnalyzer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/ExpressionAnalyzer.java index 35adb692be3e2d..b90dc3adc817b6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/ExpressionAnalyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/ExpressionAnalyzer.java @@ -93,6 +93,7 @@ import org.apache.doris.nereids.types.BigIntType; import org.apache.doris.nereids.types.BooleanType; import org.apache.doris.nereids.types.DataType; +import org.apache.doris.nereids.types.NestedColumnPrunable; import org.apache.doris.nereids.types.StringType; import org.apache.doris.nereids.types.TinyIntType; import org.apache.doris.nereids.util.ExpressionUtils; @@ -285,6 +286,9 @@ public Expression visitUnboundSlot(UnboundSlot unboundSlot, ExpressionRewriteCon } outerScope.get().getCorrelatedSlots().add((Slot) firstBound); } + if (firstBound.getDataType() instanceof NestedColumnPrunable) { + context.cascadesContext.getStatementContext().setHasNestedColumns(true); + } return firstBound; default: if (enableExactMatch) { @@ -304,6 +308,9 @@ public Expression visitUnboundSlot(UnboundSlot unboundSlot, ExpressionRewriteCon .filter(bound -> unboundSlot.getNameParts().size() == bound.getQualifier().size() + 1) .collect(Collectors.toList()); if (exactMatch.size() == 1) { + if (exactMatch.get(0).getDataType() instanceof NestedColumnPrunable) { + context.cascadesContext.getStatementContext().setHasNestedColumns(true); + } return exactMatch.get(0); } } @@ -340,6 +347,9 @@ public Expression visitUnboundStar(UnboundStar unboundStar, ExpressionRewriteCon if (!(slot instanceof SlotReference) || (((SlotReference) slot).isVisible()) || showHidden) { showSlots.add(slot); } + if (slot.getDataType() instanceof NestedColumnPrunable) { + context.cascadesContext.getStatementContext().setHasNestedColumns(true); + } } ImmutableList slots = showSlots.build(); switch (qualifier.size()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java index fd5ae6931d96bf..8af7236860c6bc 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java @@ -30,6 +30,7 @@ import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.NamedExpression; import org.apache.doris.nereids.trees.expressions.OrderExpression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.Slot; import org.apache.doris.nereids.trees.expressions.SlotNotFromChildren; import org.apache.doris.nereids.trees.expressions.SlotReference; @@ -175,7 +176,7 @@ private LogicalPlan normalizeAgg(LogicalAggregate aggregate, Optional> buildRules() { + return ImmutableList.of( + matchesType(StructElement.class).then(NormalizeStructElement::normalize) + .toRule(ExpressionRuleType.NORMALIZE_STRUCT_ELEMENT) + ); + } + + private static StructElement normalize(StructElement structElement) { + Expression field = structElement.getArgument(1); + if (field instanceof IntegerLikeLiteral) { + int fieldIndex = ((Number) ((IntegerLikeLiteral) field).getValue()).intValue(); + StructType structType = (StructType) structElement.getArgument(0).getDataType(); + List fields = structType.getFields(); + if (fieldIndex >= 0 && fieldIndex <= fields.size()) { + return structElement.withChildren( + ImmutableList.of( + structElement.child(0), + new StringLiteral(fields.get(fieldIndex - 1).getName()) + ) + ); + } + } + return structElement; + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathExpressionCollector.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathExpressionCollector.java new file mode 100644 index 00000000000000..4fe9e9e2f746fa --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathExpressionCollector.java @@ -0,0 +1,511 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.nereids.rules.rewrite.AccessPathExpressionCollector.CollectorContext; +import org.apache.doris.nereids.rules.rewrite.NestedColumnPruning.DataTypeAccessTree; +import org.apache.doris.nereids.trees.expressions.Alias; +import org.apache.doris.nereids.trees.expressions.ArrayItemReference; +import org.apache.doris.nereids.trees.expressions.ArrayItemReference.ArrayItemSlot; +import org.apache.doris.nereids.trees.expressions.Cast; +import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.SlotReference; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCount; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayExists; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFilter; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFirst; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFirstIndex; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayLast; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayLastIndex; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayMap; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayMatchAll; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayMatchAny; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayReverseSplit; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySortBy; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySplit; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ElementAt; +import org.apache.doris.nereids.trees.expressions.functions.scalar.Lambda; +import org.apache.doris.nereids.trees.expressions.functions.scalar.MapContainsEntry; +import org.apache.doris.nereids.trees.expressions.functions.scalar.MapContainsKey; +import org.apache.doris.nereids.trees.expressions.functions.scalar.MapContainsValue; +import org.apache.doris.nereids.trees.expressions.functions.scalar.MapKeys; +import org.apache.doris.nereids.trees.expressions.functions.scalar.MapValues; +import org.apache.doris.nereids.trees.expressions.functions.scalar.StructElement; +import org.apache.doris.nereids.trees.expressions.literal.Literal; +import org.apache.doris.nereids.trees.expressions.visitor.DefaultExpressionVisitor; +import org.apache.doris.nereids.types.DataType; +import org.apache.doris.nereids.types.NestedColumnPrunable; +import org.apache.doris.nereids.types.StructField; +import org.apache.doris.nereids.types.StructType; +import org.apache.doris.nereids.util.Utils; +import org.apache.doris.thrift.TAccessPathType; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Stack; + +/** + * collect the access path, for example: `select struct_element(s, 'data')` has access path: ['s', 'data'] + */ +public class AccessPathExpressionCollector extends DefaultExpressionVisitor { + private StatementContext statementContext; + private boolean bottomPredicate; + private Multimap slotToAccessPaths; + private Stack> nameToLambdaArguments = new Stack<>(); + + public AccessPathExpressionCollector( + StatementContext statementContext, Multimap slotToAccessPaths, + boolean bottomPredicate) { + this.statementContext = statementContext; + this.slotToAccessPaths = slotToAccessPaths; + this.bottomPredicate = bottomPredicate; + } + + public void collect(Expression expression) { + expression.accept(this, new CollectorContext(statementContext, bottomPredicate)); + } + + private Void continueCollectAccessPath(Expression expr, CollectorContext context) { + return expr.accept(this, context); + } + + @Override + public Void visit(Expression expr, CollectorContext context) { + for (Expression child : expr.children()) { + child.accept(this, new CollectorContext(context.statementContext, context.bottomFilter)); + } + return null; + } + + @Override + public Void visitSlotReference(SlotReference slotReference, CollectorContext context) { + DataType dataType = slotReference.getDataType(); + if (dataType instanceof NestedColumnPrunable) { + context.accessPathBuilder.addPrefix(slotReference.getName().toLowerCase()); + ImmutableList path = Utils.fastToImmutableList(context.accessPathBuilder.accessPath); + int slotId = slotReference.getExprId().asInt(); + slotToAccessPaths.put(slotId, new CollectAccessPathResult(path, context.bottomFilter, context.type)); + } + return null; + } + + @Override + public Void visitArrayItemSlot(ArrayItemSlot arrayItemSlot, CollectorContext context) { + if (nameToLambdaArguments.isEmpty()) { + return null; + } + context.accessPathBuilder.addPrefix("*"); + Expression argument = nameToLambdaArguments.peek().get(arrayItemSlot.getName()); + if (argument == null) { + return null; + } + return continueCollectAccessPath(argument, context); + } + + @Override + public Void visitAlias(Alias alias, CollectorContext context) { + return alias.child(0).accept(this, context); + } + + @Override + public Void visitCast(Cast cast, CollectorContext context) { + if (!context.accessPathBuilder.isEmpty() + && cast.getDataType() instanceof NestedColumnPrunable + && cast.child().getDataType() instanceof NestedColumnPrunable) { + + DataTypeAccessTree castTree = DataTypeAccessTree.of(cast.getDataType(), TAccessPathType.DATA); + DataTypeAccessTree originTree = DataTypeAccessTree.of(cast.child().getDataType(), TAccessPathType.DATA); + + List replacePath = new ArrayList<>(context.accessPathBuilder.getPathList()); + if (originTree.replacePathByAnotherTree(castTree, replacePath, 0)) { + CollectorContext castContext = new CollectorContext(context.statementContext, context.bottomFilter); + castContext.accessPathBuilder.accessPath.addAll(replacePath); + return continueCollectAccessPath(cast.child(), castContext); + } + } + return cast.child(0).accept(this, + new CollectorContext(context.statementContext, context.bottomFilter) + ); + } + + // array element at + @Override + public Void visitElementAt(ElementAt elementAt, CollectorContext context) { + List arguments = elementAt.getArguments(); + Expression first = arguments.get(0); + if (first.getDataType().isArrayType() || first.getDataType().isMapType()) { + context.accessPathBuilder.addPrefix("*"); + continueCollectAccessPath(first, context); + + for (int i = 1; i < arguments.size(); i++) { + visit(arguments.get(i), context); + } + return null; + } else { + return visit(elementAt, context); + } + } + + // struct element_at + @Override + public Void visitStructElement(StructElement structElement, CollectorContext context) { + List arguments = structElement.getArguments(); + Expression struct = arguments.get(0); + Expression fieldName = arguments.get(1); + DataType fieldType = fieldName.getDataType(); + + if (fieldName.isLiteral() && (fieldType.isIntegerLikeType() || fieldType.isStringLikeType())) { + if (fieldType.isIntegerLikeType()) { + int fieldIndex = ((Number) ((Literal) fieldName).getValue()).intValue(); + List fields = ((StructType) struct.getDataType()).getFields(); + if (fieldIndex >= 1 && fieldIndex <= fields.size()) { + String realFieldName = fields.get(fieldIndex - 1).getName(); + context.accessPathBuilder.addPrefix(realFieldName); + return continueCollectAccessPath(struct, context); + } + } + context.accessPathBuilder.addPrefix(((Literal) fieldName).getStringValue().toLowerCase()); + return continueCollectAccessPath(struct, context); + } + + for (Expression argument : arguments) { + visit(argument, context); + } + return null; + } + + @Override + public Void visitMapKeys(MapKeys mapKeys, CollectorContext context) { + context = new CollectorContext(context.statementContext, context.bottomFilter); + context.accessPathBuilder.addPrefix("KEYS"); + return continueCollectAccessPath(mapKeys.getArgument(0), context); + } + + @Override + public Void visitMapValues(MapValues mapValues, CollectorContext context) { + LinkedList suffixPath = context.accessPathBuilder.accessPath; + if (!suffixPath.isEmpty() && suffixPath.get(0).equals("*")) { + CollectorContext removeStarContext + = new CollectorContext(context.statementContext, context.bottomFilter); + removeStarContext.accessPathBuilder.accessPath.addAll(suffixPath.subList(1, suffixPath.size())); + removeStarContext.accessPathBuilder.addPrefix("VALUES"); + return continueCollectAccessPath(mapValues.getArgument(0), removeStarContext); + } + context.accessPathBuilder.addPrefix("VALUES"); + return continueCollectAccessPath(mapValues.getArgument(0), context); + } + + @Override + public Void visitMapContainsKey(MapContainsKey mapContainsKey, CollectorContext context) { + context.accessPathBuilder.addPrefix("KEYS"); + return continueCollectAccessPath(mapContainsKey.getArgument(0), context); + } + + @Override + public Void visitMapContainsValue(MapContainsValue mapContainsValue, CollectorContext context) { + context.accessPathBuilder.addPrefix("VALUES"); + return continueCollectAccessPath(mapContainsValue.getArgument(0), context); + } + + @Override + public Void visitMapContainsEntry(MapContainsEntry mapContainsEntry, CollectorContext context) { + context.accessPathBuilder.addPrefix("*"); + return continueCollectAccessPath(mapContainsEntry.getArgument(0), context); + } + + @Override + public Void visitArrayMap(ArrayMap arrayMap, CollectorContext context) { + // ARRAY_MAP(lambda, [ , ... ] ) + + Expression argument = arrayMap.getArgument(0); + if ((argument instanceof Lambda)) { + return collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayMap, context); + } + + @Override + public Void visitArrayCount(ArrayCount arrayCount, CollectorContext context) { + // ARRAY_COUNT(, [, ... ]) + + Expression argument = arrayCount.getArgument(0); + if ((argument instanceof Lambda)) { + return collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayCount, context); + } + + @Override + public Void visitArrayExists(ArrayExists arrayExists, CollectorContext context) { + // ARRAY_EXISTS([ , ] [, , ...] ) + + Expression argument = arrayExists.getArgument(0); + if ((argument instanceof Lambda)) { + return collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayExists, context); + } + + @Override + public Void visitArrayFilter(ArrayFilter arrayFilter, CollectorContext context) { + // ARRAY_FILTER(, ) + + Expression argument = arrayFilter.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayFilter, context); + } + + @Override + public Void visitArrayFirst(ArrayFirst arrayFirst, CollectorContext context) { + // ARRAY_FIRST(, ) + + Expression argument = arrayFirst.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayFirst, context); + } + + @Override + public Void visitArrayFirstIndex(ArrayFirstIndex arrayFirstIndex, CollectorContext context) { + // ARRAY_FIRST_INDEX(, [, ...]) + + Expression argument = arrayFirstIndex.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayFirstIndex, context); + } + + @Override + public Void visitArrayLast(ArrayLast arrayLast, CollectorContext context) { + // ARRAY_LAST(, ) + + Expression argument = arrayLast.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayLast, context); + } + + @Override + public Void visitArrayLastIndex(ArrayLastIndex arrayLastIndex, CollectorContext context) { + // ARRAY_LAST_INDEX(, [, ...]) + + Expression argument = arrayLastIndex.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayLastIndex, context); + } + + @Override + public Void visitArrayMatchAny(ArrayMatchAny arrayMatchAny, CollectorContext context) { + // array_match_any(lambda, [, ...]) + + Expression argument = arrayMatchAny.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayMatchAny, context); + } + + @Override + public Void visitArrayMatchAll(ArrayMatchAll arrayMatchAll, CollectorContext context) { + // array_match_all(lambda, [, ...]) + + Expression argument = arrayMatchAll.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayMatchAll, context); + } + + @Override + public Void visitArrayReverseSplit(ArrayReverseSplit arrayReverseSplit, CollectorContext context) { + // ARRAY_REVERSE_SPLIT(, [, ...]) + + Expression argument = arrayReverseSplit.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arrayReverseSplit, context); + } + + @Override + public Void visitArraySplit(ArraySplit arraySplit, CollectorContext context) { + // ARRAY_SPLIT(, arr [, ...]) + + Expression argument = arraySplit.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arraySplit, context); + } + + @Override + public Void visitArraySortBy(ArraySortBy arraySortBy, CollectorContext context) { + // ARRAY_SORTBY(, [, ...]) + + Expression argument = arraySortBy.getArgument(0); + if ((argument instanceof Lambda)) { + collectArrayPathInLambda((Lambda) argument, context); + } + return visit(arraySortBy, context); + } + + // @Override + // public Void visitIsNull(IsNull isNull, CollectorContext context) { + // if (context.accessPathBuilder.isEmpty()) { + // context.setType(TAccessPathType.META); + // return continueCollectAccessPath(isNull.child(), context); + // } + // return visit(isNull, context); + // } + + private Void collectArrayPathInLambda(Lambda lambda, CollectorContext context) { + List arguments = lambda.getArguments(); + Map nameToArray = Maps.newLinkedHashMap(); + for (Expression argument : arguments) { + if (argument instanceof ArrayItemReference) { + nameToArray.put(((ArrayItemReference) argument).getName(), argument.child(0)); + } + } + + List path = context.accessPathBuilder.getPathList(); + if (!path.isEmpty() && path.get(0).equals("*")) { + context.accessPathBuilder.removePrefix(); + } + + nameToLambdaArguments.push(nameToArray); + try { + continueCollectAccessPath(arguments.get(0), context); + } finally { + nameToLambdaArguments.pop(); + } + return null; + } + + /** CollectorContext */ + public static class CollectorContext { + private StatementContext statementContext; + private AccessPathBuilder accessPathBuilder; + private boolean bottomFilter; + private TAccessPathType type; + + public CollectorContext(StatementContext statementContext, boolean bottomFilter) { + this.statementContext = statementContext; + this.accessPathBuilder = new AccessPathBuilder(); + this.bottomFilter = bottomFilter; + this.type = TAccessPathType.DATA; + } + + public TAccessPathType getType() { + return type; + } + + public void setType(TAccessPathType type) { + this.type = type; + } + } + + private static class AccessPathBuilder { + private LinkedList accessPath; + + public AccessPathBuilder() { + accessPath = new LinkedList<>(); + } + + public AccessPathBuilder addPrefix(String prefix) { + accessPath.addFirst(prefix); + return this; + } + + public AccessPathBuilder removePrefix() { + accessPath.removeFirst(); + return this; + } + + public List getPathList() { + return accessPath; + } + + public boolean isEmpty() { + return accessPath.isEmpty(); + } + + @Override + public String toString() { + return String.join(".", accessPath); + } + } + + /** AccessPathIsPredicate */ + public static class CollectAccessPathResult { + private final List path; + private final boolean isPredicate; + private final TAccessPathType type; + + public CollectAccessPathResult(List path, boolean isPredicate, TAccessPathType type) { + this.path = path; + this.isPredicate = isPredicate; + this.type = type; + } + + public TAccessPathType getType() { + return type; + } + + public List getPath() { + return path; + } + + public boolean isPredicate() { + return isPredicate; + } + + @Override + public String toString() { + return String.join(".", path) + ", " + isPredicate; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) { + return false; + } + CollectAccessPathResult that = (CollectAccessPathResult) o; + return isPredicate == that.isPredicate && Objects.equals(path, that.path); + } + + @Override + public int hashCode() { + return path.hashCode(); + } + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathPlanCollector.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathPlanCollector.java new file mode 100644 index 00000000000000..514f7bb1e8cfc1 --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AccessPathPlanCollector.java @@ -0,0 +1,176 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.nereids.rules.rewrite.AccessPathExpressionCollector.CollectAccessPathResult; +import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.Slot; +import org.apache.doris.nereids.trees.plans.Plan; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer; +import org.apache.doris.nereids.trees.plans.logical.LogicalFileScan; +import org.apache.doris.nereids.trees.plans.logical.LogicalFilter; +import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan; +import org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation; +import org.apache.doris.nereids.trees.plans.logical.LogicalUnion; +import org.apache.doris.nereids.trees.plans.visitor.DefaultPlanVisitor; +import org.apache.doris.nereids.types.NestedColumnPrunable; + +import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.Multimap; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** AccessPathPlanCollector */ +public class AccessPathPlanCollector extends DefaultPlanVisitor { + private Multimap allSlotToAccessPaths = LinkedHashMultimap.create(); + private Map> scanSlotToAccessPaths = new LinkedHashMap<>(); + + public Map> collect(Plan root, StatementContext context) { + root.accept(this, context); + return scanSlotToAccessPaths; + } + + @Override + public Void visitLogicalFilter(LogicalFilter filter, StatementContext context) { + boolean bottomFilter = filter.child().arity() == 0; + collectByExpressions(filter, context, bottomFilter); + return filter.child().accept(this, context); + } + + @Override + public Void visitLogicalCTEAnchor( + LogicalCTEAnchor cteAnchor, StatementContext context) { + // first, collect access paths in the outer slots, and propagate outer slot's access path to inner slots + cteAnchor.right().accept(this, context); + + // second, push down access path in the inner slots + cteAnchor.left().accept(this, context); + return null; + } + + @Override + public Void visitLogicalCTEConsumer(LogicalCTEConsumer cteConsumer, StatementContext context) { + // propagate outer slot's access path to inner slots + for (Entry slots : cteConsumer.getConsumerToProducerOutputMap().entrySet()) { + Slot outerSlot = slots.getKey(); + + if (outerSlot.getDataType() instanceof NestedColumnPrunable) { + int outerSlotId = outerSlot.getExprId().asInt(); + int innerSlotId = slots.getValue().getExprId().asInt(); + allSlotToAccessPaths.putAll(innerSlotId, allSlotToAccessPaths.get(outerSlotId)); + } + } + return null; + } + + @Override + public Void visitLogicalCTEProducer(LogicalCTEProducer cteProducer, StatementContext context) { + return cteProducer.child().accept(this, context); + } + + @Override + public Void visitLogicalUnion(LogicalUnion union, StatementContext context) { + // now we will not prune complex type through union, because we can not prune the complex type's literal, + // for example, we can not prune the literal now: array(map(1, named_struct('a', 100, 'b', 100))), + // so we can not prune this sql: + // select struct_element(map_values(s[0]), 'a') + // from ( + // select s from tbl + // union all + // select array(map(1, named_struct('a', 100, 'b', 100))) + // ) tbl; + // + // so we will not propagate access paths through the union + for (Plan child : union.children()) { + child.accept(this, context); + } + return null; + } + + @Override + public Void visitLogicalOlapScan(LogicalOlapScan olapScan, StatementContext context) { + for (Slot slot : olapScan.getOutput()) { + if (!(slot.getDataType() instanceof NestedColumnPrunable)) { + continue; + } + Collection accessPaths = allSlotToAccessPaths.get(slot.getExprId().asInt()); + if (!accessPaths.isEmpty()) { + scanSlotToAccessPaths.put(slot, new ArrayList<>(accessPaths)); + } + } + return null; + } + + @Override + public Void visitLogicalFileScan(LogicalFileScan fileScan, StatementContext context) { + for (Slot slot : fileScan.getOutput()) { + if (!(slot.getDataType() instanceof NestedColumnPrunable)) { + continue; + } + Collection accessPaths = allSlotToAccessPaths.get(slot.getExprId().asInt()); + if (!accessPaths.isEmpty()) { + scanSlotToAccessPaths.put(slot, new ArrayList<>(accessPaths)); + } + } + return null; + } + + @Override + public Void visitLogicalTVFRelation(LogicalTVFRelation tvfRelation, StatementContext context) { + for (Slot slot : tvfRelation.getOutput()) { + if (!(slot.getDataType() instanceof NestedColumnPrunable)) { + continue; + } + Collection accessPaths = allSlotToAccessPaths.get(slot.getExprId().asInt()); + if (!accessPaths.isEmpty()) { + scanSlotToAccessPaths.put(slot, new ArrayList<>(accessPaths)); + } + } + return null; + } + + @Override + public Void visit(Plan plan, StatementContext context) { + collectByExpressions(plan, context); + + for (Plan child : plan.children()) { + child.accept(this, context); + } + return null; + } + + private void collectByExpressions(Plan plan, StatementContext context) { + collectByExpressions(plan, context, false); + } + + private void collectByExpressions(Plan plan, StatementContext context, boolean bottomPredicate) { + AccessPathExpressionCollector exprCollector + = new AccessPathExpressionCollector(context, allSlotToAccessPaths, bottomPredicate); + for (Expression expression : plan.getExpressions()) { + exprCollector.collect(expression); + } + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/NestedColumnPruning.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/NestedColumnPruning.java new file mode 100644 index 00000000000000..b03f183b115a7c --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/NestedColumnPruning.java @@ -0,0 +1,486 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.analysis.AccessPathInfo; +import org.apache.doris.common.Pair; +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.nereids.exceptions.AnalysisException; +import org.apache.doris.nereids.jobs.JobContext; +import org.apache.doris.nereids.rules.rewrite.AccessPathExpressionCollector.CollectAccessPathResult; +import org.apache.doris.nereids.trees.expressions.Slot; +import org.apache.doris.nereids.trees.expressions.SlotReference; +import org.apache.doris.nereids.trees.plans.Plan; +import org.apache.doris.nereids.trees.plans.visitor.CustomRewriter; +import org.apache.doris.nereids.types.ArrayType; +import org.apache.doris.nereids.types.DataType; +import org.apache.doris.nereids.types.MapType; +import org.apache.doris.nereids.types.NullType; +import org.apache.doris.nereids.types.StructField; +import org.apache.doris.nereids.types.StructType; +import org.apache.doris.qe.SessionVariable; +import org.apache.doris.thrift.TAccessPathType; +import org.apache.doris.thrift.TColumnAccessPath; +import org.apache.doris.thrift.TDataAccessPath; +import org.apache.doris.thrift.TMetaAccessPath; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; +import com.google.common.collect.TreeMultimap; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Optional; + +/** + *
  • 1. prune the data type of struct/map + * + *

    for example, column s is a struct<id: int, value: double>, + * and `select struct(s, 'id') from tbl` will return the data type: `struct<id: int>` + *

    + *
  • + * + *
  • 2. collect the access paths + *

    for example, select struct(s, 'id'), struct(s, 'data') from tbl` will collect the access path: + * [s.id, s.data] + *

    + *
  • + */ +public class NestedColumnPruning implements CustomRewriter { + public static final Logger LOG = LogManager.getLogger(NestedColumnPruning.class); + + @Override + public Plan rewriteRoot(Plan plan, JobContext jobContext) { + try { + StatementContext statementContext = jobContext.getCascadesContext().getStatementContext(); + SessionVariable sessionVariable = statementContext.getConnectContext().getSessionVariable(); + if (!sessionVariable.enablePruneNestedColumns || !statementContext.hasNestedColumns()) { + return plan; + } + + AccessPathPlanCollector collector = new AccessPathPlanCollector(); + Map> slotToAccessPaths = collector.collect(plan, statementContext); + Map slotToResult = pruneDataType(slotToAccessPaths); + + if (!slotToResult.isEmpty()) { + Map slotIdToPruneType = Maps.newLinkedHashMap(); + for (Entry kv : slotToResult.entrySet()) { + Integer slotId = kv.getKey(); + AccessPathInfo accessPathInfo = kv.getValue(); + slotIdToPruneType.put(slotId, accessPathInfo); + } + return new SlotTypeReplacer(slotIdToPruneType, plan).replace(); + } + return plan; + } catch (Throwable t) { + LOG.warn("NestedColumnPruning failed.", t); + return plan; + } + } + + private static Map pruneDataType( + Map> slotToAccessPaths) { + Map result = new LinkedHashMap<>(); + Map slotIdToAllAccessTree = new LinkedHashMap<>(); + Map slotIdToPredicateAccessTree = new LinkedHashMap<>(); + + Comparator>> pathComparator = Comparator.comparing( + l -> StringUtils.join(l.second, ".")); + + Multimap>> allAccessPaths = TreeMultimap.create( + Comparator.naturalOrder(), pathComparator); + Multimap>> predicateAccessPaths = TreeMultimap.create( + Comparator.naturalOrder(), pathComparator); + + // first: build access data type tree + for (Entry> kv : slotToAccessPaths.entrySet()) { + Slot slot = kv.getKey(); + List collectAccessPathResults = kv.getValue(); + for (CollectAccessPathResult collectAccessPathResult : collectAccessPathResults) { + List path = collectAccessPathResult.getPath(); + TAccessPathType pathType = collectAccessPathResult.getType(); + DataTypeAccessTree allAccessTree = slotIdToAllAccessTree.computeIfAbsent( + slot, i -> DataTypeAccessTree.ofRoot(slot, pathType) + ); + allAccessTree.setAccessByPath(path, 0, pathType); + allAccessPaths.put(slot.getExprId().asInt(), Pair.of(pathType, path)); + + if (collectAccessPathResult.isPredicate()) { + DataTypeAccessTree predicateAccessTree = slotIdToPredicateAccessTree.computeIfAbsent( + slot, i -> DataTypeAccessTree.ofRoot(slot, pathType) + ); + predicateAccessTree.setAccessByPath(path, 0, pathType); + predicateAccessPaths.put( + slot.getExprId().asInt(), Pair.of(pathType, path) + ); + } + } + } + + // second: build non-predicate access paths + for (Entry kv : slotIdToAllAccessTree.entrySet()) { + Slot slot = kv.getKey(); + DataTypeAccessTree accessTree = kv.getValue(); + DataType prunedDataType = accessTree.pruneDataType().orElse(slot.getDataType()); + + List allPaths = new ArrayList<>(); + boolean accessWholeColumn = false; + TAccessPathType accessWholeColumnType = TAccessPathType.META; + for (Pair> pathInfo : allAccessPaths.get(slot.getExprId().asInt())) { + if (pathInfo.first == TAccessPathType.DATA) { + TDataAccessPath dataAccessPath = new TDataAccessPath(); + dataAccessPath.setPath(new ArrayList<>(pathInfo.second)); + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.DATA); + accessPath.setDataAccessPath(dataAccessPath); + allPaths.add(accessPath); + } else { + TMetaAccessPath dataAccessPath = new TMetaAccessPath(); + dataAccessPath.setPath(new ArrayList<>(pathInfo.second)); + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.META); + accessPath.setMetaAccessPath(dataAccessPath); + allPaths.add(accessPath); + } + // only retain access the whole root + if (pathInfo.second.size() == 1) { + accessWholeColumn = true; + if (pathInfo.first == TAccessPathType.DATA) { + accessWholeColumnType = TAccessPathType.DATA; + } + } else { + accessWholeColumnType = TAccessPathType.DATA; + } + } + if (accessWholeColumn) { + TColumnAccessPath accessPath = new TColumnAccessPath(accessWholeColumnType); + SlotReference slotReference = (SlotReference) kv.getKey(); + String wholeColumnName = slotReference.getOriginalColumn().get().getName(); + if (accessWholeColumnType == TAccessPathType.DATA) { + accessPath.setDataAccessPath(new TDataAccessPath(ImmutableList.of(wholeColumnName))); + } else { + accessPath.setMetaAccessPath(new TMetaAccessPath(ImmutableList.of(wholeColumnName))); + } + allPaths = ImmutableList.of(accessPath); + } + result.put(slot.getExprId().asInt(), new AccessPathInfo(prunedDataType, allPaths, new ArrayList<>())); + } + + // third: build predicate access path + for (Entry kv : slotIdToPredicateAccessTree.entrySet()) { + Slot slot = kv.getKey(); + + List predicatePaths = new ArrayList<>(); + boolean accessWholeColumn = false; + TAccessPathType accessWholeColumnType = TAccessPathType.META; + for (Pair> pathInfo : predicateAccessPaths.get(slot.getExprId().asInt())) { + if (pathInfo == null) { + throw new AnalysisException("This is a bug, please report this"); + } + + if (pathInfo.first == TAccessPathType.DATA) { + TDataAccessPath dataAccessPath = new TDataAccessPath(); + dataAccessPath.setPath(new ArrayList<>(pathInfo.second)); + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.DATA); + accessPath.setDataAccessPath(dataAccessPath); + predicatePaths.add(accessPath); + } else { + TMetaAccessPath dataAccessPath = new TMetaAccessPath(); + dataAccessPath.setPath(new ArrayList<>(pathInfo.second)); + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.META); + accessPath.setMetaAccessPath(dataAccessPath); + predicatePaths.add(accessPath); + } + // only retain access the whole root + if (pathInfo.second.size() == 1) { + accessWholeColumn = true; + if (pathInfo.first == TAccessPathType.DATA) { + accessWholeColumnType = TAccessPathType.DATA; + } + } else { + accessWholeColumnType = TAccessPathType.DATA; + } + } + + if (accessWholeColumn) { + TColumnAccessPath accessPath = new TColumnAccessPath(accessWholeColumnType); + SlotReference slotReference = (SlotReference) kv.getKey(); + String wholeColumnName = slotReference.getOriginalColumn().get().getName(); + if (accessWholeColumnType == TAccessPathType.DATA) { + accessPath.setDataAccessPath(new TDataAccessPath(ImmutableList.of(wholeColumnName))); + } else { + accessPath.setMetaAccessPath(new TMetaAccessPath(ImmutableList.of(wholeColumnName))); + } + predicatePaths = ImmutableList.of(accessPath); + } + + AccessPathInfo accessPathInfo = result.get(slot.getExprId().asInt()); + accessPathInfo.getPredicateAccessPaths().addAll(predicatePaths); + } + + return result; + } + + /** DataTypeAccessTree */ + public static class DataTypeAccessTree { + private DataType type; + private boolean isRoot; + private boolean accessPartialChild; + private boolean accessAll; + private TAccessPathType pathType; + private Map children = new LinkedHashMap<>(); + + public DataTypeAccessTree(DataType type, TAccessPathType pathType) { + this(false, type, pathType); + } + + public DataTypeAccessTree(boolean isRoot, DataType type, TAccessPathType pathType) { + this.isRoot = isRoot; + this.type = type; + this.pathType = pathType; + } + + /** pruneCastType */ + public DataType pruneCastType(DataTypeAccessTree origin, DataTypeAccessTree cast) { + if (type instanceof StructType) { + Map nameMapping = new LinkedHashMap<>(); + List castNames = new ArrayList<>(cast.children.keySet()); + int i = 0; + for (String s : origin.children.keySet()) { + nameMapping.put(s, castNames.get(i++)); + } + List mappingFields = new ArrayList<>(); + StructType originCastStructType = (StructType) cast.type; + for (Entry kv : children.entrySet()) { + String originName = kv.getKey(); + String mappingName = nameMapping.getOrDefault(originName, originName); + DataTypeAccessTree originPrunedTree = kv.getValue(); + DataType mappingType = originPrunedTree.pruneCastType( + origin.children.get(originName), + cast.children.get(mappingName) + ); + StructField originCastField = originCastStructType.getField(mappingName); + mappingFields.add( + new StructField(mappingName, mappingType, + originCastField.isNullable(), originCastField.getComment()) + ); + } + return new StructType(mappingFields); + } else if (type instanceof ArrayType) { + return ArrayType.of( + children.values().iterator().next().pruneCastType( + origin.children.values().iterator().next(), + cast.children.values().iterator().next() + ), + ((ArrayType) cast.type).containsNull() + ); + } else if (type instanceof MapType) { + return MapType.of( + children.get("KEYS").pruneCastType(origin.children.get("KEYS"), cast.children.get("KEYS")), + children.get("VALUES").pruneCastType(origin.children.get("VALUES"), cast.children.get("VALUES")) + ); + } else { + return cast.type; + } + } + + /** replacePathByAnotherTree */ + public boolean replacePathByAnotherTree(DataTypeAccessTree cast, List path, int index) { + if (index >= path.size()) { + return true; + } + if (cast.type instanceof StructType) { + List fields = ((StructType) cast.type).getFields(); + for (int i = 0; i < fields.size(); i++) { + String castFieldName = path.get(index); + if (fields.get(i).getName().equalsIgnoreCase(castFieldName)) { + String originFieldName = ((StructType) type).getFields().get(i).getName(); + path.set(index, originFieldName); + return children.get(originFieldName).replacePathByAnotherTree( + cast.children.get(castFieldName), path, index + 1 + ); + } + } + } else if (cast.type instanceof ArrayType) { + return children.values().iterator().next().replacePathByAnotherTree( + cast.children.values().iterator().next(), path, index + 1); + } else if (cast.type instanceof MapType) { + String fieldName = path.get(index); + return children.get("VALUES").replacePathByAnotherTree( + cast.children.get(fieldName), path, index + 1 + ); + } + return false; + } + + /** setAccessByPath */ + public void setAccessByPath(List path, int accessIndex, TAccessPathType pathType) { + if (accessIndex >= path.size()) { + accessAll = true; + return; + } else { + accessPartialChild = true; + } + + if (pathType == TAccessPathType.DATA) { + this.pathType = TAccessPathType.DATA; + } + + if (this.type.isStructType()) { + String fieldName = path.get(accessIndex).toLowerCase(); + DataTypeAccessTree child = children.get(fieldName); + if (child != null) { + child.setAccessByPath(path, accessIndex + 1, pathType); + } else { + // can not find the field + accessAll = true; + } + return; + } else if (this.type.isArrayType()) { + DataTypeAccessTree child = children.get("*"); + if (path.get(accessIndex).equals("*")) { + // enter this array and skip next * + child.setAccessByPath(path, accessIndex + 1, pathType); + } + return; + } else if (this.type.isMapType()) { + String fieldName = path.get(accessIndex); + if (fieldName.equals("*")) { + // access value by the key, so we should access key and access value, then prune the value's type. + // e.g. map_column['id'] should access the keys, and access the values + DataTypeAccessTree keysChild = children.get("KEYS"); + DataTypeAccessTree valuesChild = children.get("VALUES"); + keysChild.accessAll = true; + valuesChild.setAccessByPath(path, accessIndex + 1, pathType); + return; + } else if (fieldName.equals("KEYS")) { + // only access the keys and not need enter keys, because it must be primitive type. + // e.g. map_keys(map_column) + DataTypeAccessTree keysChild = children.get("KEYS"); + keysChild.accessAll = true; + return; + } else if (fieldName.equals("VALUES")) { + // only access the values without keys, and maybe prune the value's data type. + // e.g. map_values(map_columns)[0] will access the array of values first, + // and then access the array, so the access path is ['VALUES', '*'] + DataTypeAccessTree valuesChild = children.get("VALUES"); + valuesChild.setAccessByPath(path, accessIndex + 1, pathType); + return; + } + } else if (isRoot) { + children.get(path.get(accessIndex).toLowerCase()).setAccessByPath(path, accessIndex + 1, pathType); + return; + } + throw new AnalysisException("unsupported data type: " + this.type); + } + + public static DataTypeAccessTree ofRoot(Slot slot, TAccessPathType pathType) { + DataTypeAccessTree child = of(slot.getDataType(), pathType); + DataTypeAccessTree root = new DataTypeAccessTree(true, NullType.INSTANCE, pathType); + root.children.put(slot.getName().toLowerCase(), child); + return root; + } + + /** of */ + public static DataTypeAccessTree of(DataType type, TAccessPathType pathType) { + DataTypeAccessTree root = new DataTypeAccessTree(type, pathType); + if (type instanceof StructType) { + StructType structType = (StructType) type; + for (Entry kv : structType.getNameToFields().entrySet()) { + root.children.put(kv.getKey().toLowerCase(), of(kv.getValue().getDataType(), pathType)); + } + } else if (type instanceof ArrayType) { + root.children.put("*", of(((ArrayType) type).getItemType(), pathType)); + } else if (type instanceof MapType) { + root.children.put("KEYS", of(((MapType) type).getKeyType(), pathType)); + root.children.put("VALUES", of(((MapType) type).getValueType(), pathType)); + } + return root; + } + + /** pruneDataType */ + public Optional pruneDataType() { + if (isRoot) { + return children.values().iterator().next().pruneDataType(); + } else if (accessAll) { + return Optional.of(type); + } else if (!accessPartialChild) { + return Optional.empty(); + } + + List> accessedChildren = new ArrayList<>(); + + if (type instanceof StructType) { + for (Entry kv : children.entrySet()) { + DataTypeAccessTree childTypeTree = kv.getValue(); + Optional childDataType = childTypeTree.pruneDataType(); + if (childDataType.isPresent()) { + accessedChildren.add(Pair.of(kv.getKey(), childDataType.get())); + } + } + } else if (type instanceof ArrayType) { + Optional childDataType = children.get("*").pruneDataType(); + if (childDataType.isPresent()) { + accessedChildren.add(Pair.of("*", childDataType.get())); + } + } else if (type instanceof MapType) { + DataType prunedValueType = children.get("VALUES") + .pruneDataType() + .orElse(((MapType) type).getValueType()); + // can not prune keys but can prune values + accessedChildren.add(Pair.of("KEYS", ((MapType) type).getKeyType())); + accessedChildren.add(Pair.of("VALUES", prunedValueType)); + } + if (accessedChildren.isEmpty()) { + return Optional.of(type); + } + + return Optional.of(pruneDataType(type, accessedChildren)); + } + + private DataType pruneDataType(DataType dataType, List> newChildrenTypes) { + if (dataType instanceof StructType) { + // prune struct fields + StructType structType = (StructType) dataType; + Map nameToFields = structType.getNameToFields(); + List newFields = new ArrayList<>(); + for (Pair kv : newChildrenTypes) { + String fieldName = kv.first; + StructField originField = nameToFields.get(fieldName); + DataType prunedType = kv.second; + newFields.add(new StructField( + originField.getName(), prunedType, originField.isNullable(), originField.getComment() + )); + } + return new StructType(newFields); + } else if (dataType instanceof ArrayType) { + return ArrayType.of(newChildrenTypes.get(0).second, ((ArrayType) dataType).containsNull()); + } else if (dataType instanceof MapType) { + return MapType.of(newChildrenTypes.get(0).second, newChildrenTypes.get(1).second); + } else { + throw new AnalysisException("unsupported data type: " + dataType); + } + } + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownProject.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownProject.java new file mode 100644 index 00000000000000..8b1fbaac8aec9e --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownProject.java @@ -0,0 +1,412 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.common.Pair; +import org.apache.doris.nereids.StatementContext; +import org.apache.doris.nereids.pattern.MatchingContext; +import org.apache.doris.nereids.rules.Rule; +import org.apache.doris.nereids.rules.RuleType; +import org.apache.doris.nereids.trees.expressions.Alias; +import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.NamedExpression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; +import org.apache.doris.nereids.trees.expressions.Slot; +import org.apache.doris.nereids.trees.expressions.SlotReference; +import org.apache.doris.nereids.trees.plans.Plan; +import org.apache.doris.nereids.trees.plans.algebra.SetOperation.Qualifier; +import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; +import org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation; +import org.apache.doris.nereids.trees.plans.logical.LogicalPlan; +import org.apache.doris.nereids.trees.plans.logical.LogicalProject; +import org.apache.doris.nereids.trees.plans.logical.LogicalUnion; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Multimap; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.function.Function; + +/** push down project if the expression instance of PreferPushDownProject */ +public class PushDownProject implements RewriteRuleFactory, NormalizeToSlot { + @Override + public List buildRules() { + return ImmutableList.of( + RuleType.PUSH_DOWN_PROJECT_THROUGH_JOIN.build( + logicalJoin().thenApply(this::pushDownJoinExpressions) + ), + RuleType.PUSH_DOWN_PROJECT_THROUGH_JOIN.build( + logicalProject(logicalJoin()).thenApply(this::defaultPushDownProject) + ), + RuleType.PUSH_DOWN_PROJECT_THROUGH_WINDOW.build( + logicalProject(logicalWindow()).thenApply(this::defaultPushDownProject) + ), + RuleType.PUSH_DOWN_PROJECT_THROUGH_PARTITION_TOP_N.build( + logicalProject(logicalPartitionTopN()).thenApply(this::defaultPushDownProject) + ), + // RuleType.PUSH_DOWN_PROJECT_THROUGH_DEFER_MATERIALIZE_TOP_N.build( + // logicalProject(logicalDeferMaterializeTopN()).thenApply(this::defaultPushDownProject) + // ), + RuleType.PUSH_DOWN_PROJECT_THROUGH_UNION.build( + logicalProject( + logicalUnion().when(u -> u.getQualifier() == Qualifier.ALL) + ).thenApply(this::pushThroughUnion) + ) + ); + } + + private Plan pushDownJoinExpressions(MatchingContext> ctx) { + LogicalJoin join = ctx.root; + Optional, Map>>> rewriteHashJoinConjunctsResult + = pushDownProjectInExpressions(join, join.getHashJoinConjuncts(), ctx.statementContext); + Optional, Map>>> rewriteOtherJoinConjunctsResult + = pushDownProjectInExpressions(join, join.getOtherJoinConjuncts(), ctx.statementContext); + if (!rewriteHashJoinConjunctsResult.isPresent() && !rewriteOtherJoinConjunctsResult.isPresent()) { + return join; + } + + List newHashJoinConjuncts = rewriteHashJoinConjunctsResult.isPresent() + ? rewriteHashJoinConjunctsResult.get().first : join.getHashJoinConjuncts(); + List newOtherJoinConjuncts = rewriteOtherJoinConjunctsResult.isPresent() + ? rewriteOtherJoinConjunctsResult.get().first : join.getOtherJoinConjuncts(); + + List> pushedOutput = new ArrayList<>(); + pushedOutput.add(new ArrayList<>(join.left().getOutput())); + pushedOutput.add(new ArrayList<>(join.right().getOutput())); + + if (rewriteHashJoinConjunctsResult.isPresent()) { + Map> childIndexToConjuncts = rewriteHashJoinConjunctsResult.get().second; + List leftConjuncts = childIndexToConjuncts.get(0); + if (leftConjuncts != null) { + pushedOutput.get(0).addAll(leftConjuncts); + } + List rightConjuncts = childIndexToConjuncts.get(1); + if (rightConjuncts != null) { + pushedOutput.get(1).addAll(rightConjuncts); + } + } + if (rewriteOtherJoinConjunctsResult.isPresent()) { + Map> childIndexToConjuncts = rewriteOtherJoinConjunctsResult.get().second; + List leftOtherConjuncts = childIndexToConjuncts.get(0); + if (leftOtherConjuncts != null) { + pushedOutput.get(0).addAll(leftOtherConjuncts); + } + List rightOtherConjuncts = childIndexToConjuncts.get(1); + if (rightOtherConjuncts != null) { + pushedOutput.get(1).addAll(rightOtherConjuncts); + } + } + + Plan newLeft = join.left(); + Plan newRight = join.right(); + if (pushedOutput.get(0).size() != newLeft.getOutput().size()) { + newLeft = new LogicalProject<>(pushedOutput.get(0), newLeft); + } + if (pushedOutput.get(1).size() != newRight.getOutput().size()) { + newRight = new LogicalProject<>(pushedOutput.get(1), newRight); + } + + return join.withJoinConjuncts( + newHashJoinConjuncts, newOtherJoinConjuncts, + join.getMarkJoinConjuncts(), join.getJoinReorderContext() + ).withChildren(newLeft, newRight); + } + + // return: + // key: rewrite the PreferPushDownProject to slot + // value: the pushed down project outputs which contains the Alias(PreferPushDownProject) + private Optional, Map>>> pushDownProjectInExpressions( + Plan plan, Collection expressions, StatementContext context) { + + boolean changed = false; + Map> childIndexToPushedAlias = new LinkedHashMap<>(); + List newExpressions = new ArrayList<>(); + for (Expression expression : expressions) { + Expression newExpression = expression.rewriteDownShortCircuit(e -> { + if (e instanceof PreferPushDownProject) { + List children = plan.children(); + for (int i = 0; i < children.size(); i++) { + Plan child = children.get(i); + if (child.getOutputSet().containsAll(e.getInputSlots())) { + Alias alias = new Alias(context.getNextExprId(), e); + Slot slot = alias.toSlot(); + List namedExpressions + = childIndexToPushedAlias.computeIfAbsent(i, k -> new ArrayList<>()); + namedExpressions.add(alias); + return slot; + } + } + } + return e; + }); + newExpressions.add(newExpression); + changed |= newExpression != expression; + } + if (changed) { + return Optional.of(Pair.of(newExpressions, childIndexToPushedAlias)); + } + return Optional.empty(); + } + + private Plan defaultPushDownProject(MatchingContext> ctx) { + if (!ctx.connectContext.getSessionVariable().enablePruneNestedColumns) { + return ctx.root; + } + + LogicalProject project = ctx.root; + C child = project.child(); + PushdownProjectHelper pushdownProjectHelper + = new PushdownProjectHelper(ctx.statementContext, child); + + Pair> pushProjects + = pushdownProjectHelper.pushDownExpressions(project.getProjects()); + + if (pushProjects.first) { + List newJoinChildren = pushdownProjectHelper.buildNewChildren(); + return new LogicalProject<>( + pushProjects.second, + child.withChildren(newJoinChildren) + ); + } + return project; + } + + private Plan pushThroughUnion(MatchingContext> ctx) { + if (!ctx.connectContext.getSessionVariable().enablePruneNestedColumns) { + return ctx.root; + } + LogicalProject project = ctx.root; + LogicalUnion union = project.child(); + PushdownProjectHelper pushdownProjectHelper + = new PushdownProjectHelper(ctx.statementContext, project); + + Pair> pushProjects + = pushdownProjectHelper.pushDownExpressions(project.getProjects()); + if (pushProjects.first) { + List unionOutputs = union.getOutputs(); + Map slotToColumnIndex = new LinkedHashMap<>(); + for (int i = 0; i < unionOutputs.size(); i++) { + NamedExpression output = unionOutputs.get(i); + slotToColumnIndex.put(output.toSlot(), i); + } + + Collection pushDownProjections + = pushdownProjectHelper.childToPushDownProjects.values(); + List newChildren = new ArrayList<>(); + List> newChildrenOutputs = new ArrayList<>(); + for (Plan child : union.children()) { + List pushedOutput = replaceSlot( + ctx.statementContext, + pushDownProjections, + slot -> { + Integer sourceColumnIndex = slotToColumnIndex.get(slot); + if (sourceColumnIndex != null) { + return child.getOutput().get(sourceColumnIndex).toSlot(); + } + return slot; + } + ); + + LogicalProject newChild = new LogicalProject<>( + ImmutableList.builder() + .addAll(child.getOutput()) + .addAll(pushedOutput) + .build(), + child + ); + + newChildrenOutputs.add((List) newChild.getOutput()); + newChildren.add(newChild); + } + + for (List originConstantExprs : union.getConstantExprsList()) { + List pushedOutput = replaceSlot( + ctx.statementContext, + pushDownProjections, + slot -> { + Integer sourceColumnIndex = slotToColumnIndex.get(slot); + if (sourceColumnIndex != null) { + return originConstantExprs.get(sourceColumnIndex).toSlot(); + } + return slot; + } + ); + + LogicalOneRowRelation originOneRowRelation = new LogicalOneRowRelation( + ctx.statementContext.getNextRelationId(), + originConstantExprs + ); + + LogicalProject newChild = new LogicalProject<>( + ImmutableList.builder() + .addAll(originOneRowRelation.getOutput()) + .addAll(pushedOutput) + .build(), + originOneRowRelation + ); + + newChildrenOutputs.add((List) newChild.getOutput()); + newChildren.add(newChild); + } + + List newUnionOutputs = new ArrayList<>(union.getOutputs()); + for (NamedExpression projection : pushDownProjections) { + newUnionOutputs.add(projection.toSlot()); + } + + return new LogicalProject<>( + pushProjects.second, + new LogicalUnion( + union.getQualifier(), + newUnionOutputs, + newChildrenOutputs, + ImmutableList.of(), + union.hasPushedFilter(), + newChildren + ) + ); + } + return project; + } + + private List replaceSlot( + StatementContext statementContext, + Collection pushDownProjections, + Function slotReplace) { + List pushedOutput = new ArrayList<>(); + for (NamedExpression projection : pushDownProjections) { + NamedExpression newOutput = (NamedExpression) projection.rewriteUp(e -> { + if (e instanceof Slot) { + Slot newSlot = slotReplace.apply((Slot) e); + if (newSlot != null) { + return newSlot; + } + } + return e; + }); + if (newOutput instanceof Alias) { + pushedOutput.add(new Alias(statementContext.getNextExprId(), newOutput.child(0))); + } else { + pushedOutput.add(new Alias(statementContext.getNextExprId(), newOutput)); + } + } + return pushedOutput; + } + + private static class PushdownProjectHelper { + private final Plan plan; + private final StatementContext statementContext; + private final Map> exprToChildAndSlot; + private final Multimap childToPushDownProjects; + + public PushdownProjectHelper(StatementContext statementContext, Plan plan) { + this.statementContext = statementContext; + this.plan = plan; + this.exprToChildAndSlot = new LinkedHashMap<>(); + this.childToPushDownProjects = ArrayListMultimap.create(); + } + + public , E extends Expression> Pair pushDownExpressions(C expressions) { + ImmutableCollection.Builder builder; + if (expressions instanceof List) { + builder = ImmutableList.builderWithExpectedSize(expressions.size()); + } else { + builder = ImmutableSet.builderWithExpectedSize(expressions.size()); + } + + boolean extracted = false; + for (E expression : expressions) { + Optional result = pushDownExpression(expression); + if (!result.isPresent()) { + builder.add(expression); + } else { + extracted = true; + builder.add(result.get()); + } + } + + if (extracted) { + return Pair.of(true, (C) builder.build()); + } else { + return Pair.of(false, expressions); + } + } + + public Optional pushDownExpression(E expression) { + if (!(expression instanceof PreferPushDownProject + || (expression instanceof Alias && expression.child(0) instanceof PreferPushDownProject))) { + return Optional.empty(); + } + Pair existPushdown = exprToChildAndSlot.get(expression); + if (existPushdown != null) { + return Optional.of((E) existPushdown.first); + } + + Alias pushDownAlias = null; + if (expression instanceof Alias) { + pushDownAlias = (Alias) expression; + } else { + pushDownAlias = new Alias(statementContext.getNextExprId(), expression); + } + + Set inputSlots = expression.getInputSlots(); + for (Plan child : plan.children()) { + if (child.getOutputSet().containsAll(inputSlots)) { + Slot remaimSlot = pushDownAlias.toSlot(); + exprToChildAndSlot.put(expression, Pair.of(remaimSlot, child)); + childToPushDownProjects.put(child, pushDownAlias); + return Optional.of((E) remaimSlot); + } + } + return Optional.empty(); + } + + public List buildNewChildren() { + if (childToPushDownProjects.isEmpty()) { + return plan.children(); + } + ImmutableList.Builder newChildren = ImmutableList.builderWithExpectedSize(plan.arity()); + for (Plan child : plan.children()) { + Collection newProject = childToPushDownProjects.get(child); + if (newProject.isEmpty()) { + newChildren.add(child); + } else { + newChildren.add( + new LogicalProject<>( + ImmutableList.builder() + .addAll(child.getOutput()) + .addAll(newProject) + .build(), + child + ) + ); + } + } + return newChildren.build(); + } + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/SlotTypeReplacer.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/SlotTypeReplacer.java new file mode 100644 index 00000000000000..9f6a02391eb8a8 --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/SlotTypeReplacer.java @@ -0,0 +1,728 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.analysis.AccessPathInfo; +import org.apache.doris.catalog.Column; +import org.apache.doris.common.Pair; +import org.apache.doris.datasource.iceberg.IcebergExternalTable; +import org.apache.doris.nereids.properties.OrderKey; +import org.apache.doris.nereids.rules.rewrite.NestedColumnPruning.DataTypeAccessTree; +import org.apache.doris.nereids.trees.expressions.ArrayItemReference; +import org.apache.doris.nereids.trees.expressions.Cast; +import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.NamedExpression; +import org.apache.doris.nereids.trees.expressions.OrderExpression; +import org.apache.doris.nereids.trees.expressions.Slot; +import org.apache.doris.nereids.trees.expressions.SlotReference; +import org.apache.doris.nereids.trees.expressions.functions.Function; +import org.apache.doris.nereids.trees.expressions.functions.scalar.Lambda; +import org.apache.doris.nereids.trees.expressions.functions.table.TableValuedFunction; +import org.apache.doris.nereids.trees.plans.Plan; +import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer; +import org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeOlapScan; +import org.apache.doris.nereids.trees.plans.logical.LogicalDeferMaterializeTopN; +import org.apache.doris.nereids.trees.plans.logical.LogicalEmptyRelation; +import org.apache.doris.nereids.trees.plans.logical.LogicalExcept; +import org.apache.doris.nereids.trees.plans.logical.LogicalFileScan; +import org.apache.doris.nereids.trees.plans.logical.LogicalFilter; +import org.apache.doris.nereids.trees.plans.logical.LogicalGenerate; +import org.apache.doris.nereids.trees.plans.logical.LogicalIntersect; +import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; +import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan; +import org.apache.doris.nereids.trees.plans.logical.LogicalOneRowRelation; +import org.apache.doris.nereids.trees.plans.logical.LogicalPartitionTopN; +import org.apache.doris.nereids.trees.plans.logical.LogicalProject; +import org.apache.doris.nereids.trees.plans.logical.LogicalRepeat; +import org.apache.doris.nereids.trees.plans.logical.LogicalResultSink; +import org.apache.doris.nereids.trees.plans.logical.LogicalSort; +import org.apache.doris.nereids.trees.plans.logical.LogicalTVFRelation; +import org.apache.doris.nereids.trees.plans.logical.LogicalTopN; +import org.apache.doris.nereids.trees.plans.logical.LogicalUnion; +import org.apache.doris.nereids.trees.plans.logical.LogicalWindow; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumn; +import org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter; +import org.apache.doris.nereids.types.ArrayType; +import org.apache.doris.nereids.types.DataType; +import org.apache.doris.nereids.types.MapType; +import org.apache.doris.nereids.types.NestedColumnPrunable; +import org.apache.doris.nereids.types.StructType; +import org.apache.doris.nereids.util.MoreFieldsThread; +import org.apache.doris.thrift.TAccessPathType; +import org.apache.doris.thrift.TColumnAccessPath; +import org.apache.doris.thrift.TDataAccessPath; +import org.apache.doris.thrift.TMetaAccessPath; + +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.ImmutableMultimap.Builder; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; +import com.google.common.collect.Sets; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.IdentityHashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.Set; + +/** SlotTypeReplacer */ +public class SlotTypeReplacer extends DefaultPlanRewriter { + private Plan plan; + private Map replacedDataTypes; + private IdentityHashMap shouldPrunePlans = new IdentityHashMap(); + + public SlotTypeReplacer(Map bottomReplacedDataTypes, Plan plan) { + this.replacedDataTypes = Maps.newLinkedHashMap(bottomReplacedDataTypes); + this.plan = plan; + } + + /** replace */ + public Plan replace() { + Set shouldReplaceSlots = Sets.newLinkedHashSet(); + plan.foreachUp(p -> { + if (p instanceof LogicalTVFRelation) { + TableValuedFunction function = ((LogicalTVFRelation) p).getFunction(); + tryRecordReplaceSlots((Plan) p, function, shouldReplaceSlots); + } else { + tryRecordReplaceSlots((Plan) p, p, shouldReplaceSlots); + } + }); + replacedDataTypes.keySet().retainAll(shouldReplaceSlots); + + if (replacedDataTypes.isEmpty()) { + return plan; + } + return plan.accept(this, null); + } + + @Override + public Plan visitLogicalCTEProducer(LogicalCTEProducer cteProducer, Void context) { + return super.visitLogicalCTEProducer(cteProducer, context); + } + + @Override + public Plan visitLogicalWindow(LogicalWindow window, Void context) { + window = visitChildren(this, window, context); + Pair> replaced = replaceExpressions( + window.getExpressions(), false, false); + if (replaced.first) { + return window.withExpressionsAndChild((List) replaced.second, window.child()); + } + return window; + } + + @Override + public Plan visitLogicalCTEConsumer(LogicalCTEConsumer cteConsumer, Void context) { + Map consumerToProducerOutputMap = cteConsumer.getConsumerToProducerOutputMap(); + Multimap producerToConsumerOutputMap = cteConsumer.getProducerToConsumerOutputMap(); + + Map replacedConsumerToProducerOutputMap = new LinkedHashMap<>(); + Builder replacedProducerToConsumerOutputMap = ImmutableMultimap.builder(); + + boolean changed = false; + for (Entry kv : consumerToProducerOutputMap.entrySet()) { + Slot consumerSlot = kv.getKey(); + Slot producerSlot = kv.getValue(); + AccessPathInfo accessPathInfo = replacedDataTypes.get(producerSlot.getExprId().asInt()); + if (accessPathInfo != null) { + DataType prunedType = accessPathInfo.getPrunedType(); + if (!prunedType.equals(producerSlot.getDataType())) { + replacedDataTypes.put(consumerSlot.getExprId().asInt(), accessPathInfo); + changed = true; + producerSlot = producerSlot.withNullableAndDataType(producerSlot.nullable(), prunedType); + consumerSlot = consumerSlot.withNullableAndDataType(consumerSlot.nullable(), prunedType); + } + } + replacedConsumerToProducerOutputMap.put(consumerSlot, producerSlot); + } + + for (Entry> kv : producerToConsumerOutputMap.asMap().entrySet()) { + Slot producerSlot = kv.getKey(); + Collection consumerSlots = kv.getValue(); + AccessPathInfo accessPathInfo = replacedDataTypes.get(producerSlot.getExprId().asInt()); + if (accessPathInfo != null && !accessPathInfo.getPrunedType().equals(producerSlot.getDataType())) { + DataType replacedDataType = accessPathInfo.getPrunedType(); + changed = true; + producerSlot = producerSlot.withNullableAndDataType(producerSlot.nullable(), replacedDataType); + for (Slot consumerSlot : consumerSlots) { + consumerSlot = consumerSlot.withNullableAndDataType(consumerSlot.nullable(), replacedDataType); + replacedProducerToConsumerOutputMap.put(producerSlot, consumerSlot); + } + } else { + replacedProducerToConsumerOutputMap.putAll(producerSlot, consumerSlots); + } + } + + if (changed) { + return new LogicalCTEConsumer( + cteConsumer.getRelationId(), cteConsumer.getCteId(), cteConsumer.getName(), + replacedConsumerToProducerOutputMap, replacedProducerToConsumerOutputMap.build() + ); + } + return cteConsumer; + } + + @Override + public Plan visitLogicalJoin(LogicalJoin join, Void context) { + join = visitChildren(this, join, context); + Pair> replacedHashJoinConjuncts + = replaceExpressions(join.getHashJoinConjuncts(), false, false); + Pair> replacedOtherJoinConjuncts + = replaceExpressions(join.getOtherJoinConjuncts(), false, false); + + if (replacedHashJoinConjuncts.first || replacedOtherJoinConjuncts.first) { + return join.withJoinConjuncts( + replacedHashJoinConjuncts.second, + replacedOtherJoinConjuncts.second, + join.getJoinReorderContext()); + } + return join; + } + + @Override + public Plan visitLogicalProject(LogicalProject project, Void context) { + project = visitChildren(this, project, context); + + Pair> projects = replaceExpressions(project.getProjects(), true, false); + if (projects.first) { + return project.withProjects(projects.second); + } + return project; + } + + @Override + public Plan visitLogicalPartitionTopN(LogicalPartitionTopN partitionTopN, Void context) { + partitionTopN = visitChildren(this, partitionTopN, context); + + Pair> replacedPartitionKeys = replaceExpressions( + partitionTopN.getPartitionKeys(), false, false); + Pair> replacedOrderExpressions + = replaceOrderExpressions(partitionTopN.getOrderKeys()); + if (replacedPartitionKeys.first || replacedOrderExpressions.first) { + return partitionTopN.withPartitionKeysAndOrderKeys( + replacedPartitionKeys.second, replacedOrderExpressions.second); + } + return partitionTopN; + } + + @Override + public Plan visitLogicalDeferMaterializeTopN(LogicalDeferMaterializeTopN topN, Void context) { + topN = visitChildren(this, topN, context); + + LogicalTopN logicalTopN = (LogicalTopN) topN.getLogicalTopN().accept(this, context); + if (logicalTopN != topN.getLogicalTopN()) { + SlotReference replacedColumnIdSlot = replaceExpressions( + ImmutableList.of(topN.getColumnIdSlot()), false, false).second.get(0); + return new LogicalDeferMaterializeTopN( + logicalTopN, topN.getDeferMaterializeSlotIds(), replacedColumnIdSlot); + } + + return topN; + } + + @Override + public Plan visitLogicalExcept(LogicalExcept except, Void context) { + except = visitChildren(this, except, context); + + Pair>> replacedRegularChildrenOutputs = replaceMultiExpressions( + except.getRegularChildrenOutputs()); + + Pair> replacedOutputs + = replaceExpressions(except.getOutputs(), true, false); + + if (replacedRegularChildrenOutputs.first || replacedOutputs.first) { + return new LogicalExcept(except.getQualifier(), except.getOutputs(), + except.getRegularChildrenOutputs(), except.children()); + } + + return except; + } + + @Override + public Plan visitLogicalIntersect(LogicalIntersect intersect, Void context) { + intersect = visitChildren(this, intersect, context); + + Pair>> replacedRegularChildrenOutputs = replaceMultiExpressions( + intersect.getRegularChildrenOutputs()); + + Pair> replacedOutputs + = replaceExpressions(intersect.getOutputs(), true, false); + + if (replacedRegularChildrenOutputs.first || replacedOutputs.first) { + return new LogicalIntersect(intersect.getQualifier(), intersect.getOutputs(), + intersect.getRegularChildrenOutputs(), intersect.children()); + } + return intersect; + } + + @Override + public Plan visitLogicalUnion(LogicalUnion union, Void context) { + union = visitChildren(this, union, context); + + Pair>> replacedRegularChildrenOutputs = replaceMultiExpressions( + union.getRegularChildrenOutputs()); + + Pair> replacedOutputs + = replaceExpressions(union.getOutputs(), true, false); + + if (replacedRegularChildrenOutputs.first || replacedOutputs.first) { + return new LogicalUnion( + union.getQualifier(), + replacedOutputs.second, + replacedRegularChildrenOutputs.second, + union.getConstantExprsList(), + union.hasPushedFilter(), + union.children() + ); + } + + return union; + } + + @Override + public Plan visitLogicalRepeat(LogicalRepeat repeat, Void context) { + repeat = visitChildren(this, repeat, context); + + Pair>> replacedGroupingSets + = replaceMultiExpressions(repeat.getGroupingSets()); + Pair> replacedOutputs + = replaceExpressions(repeat.getOutputExpressions(), true, false); + + if (replacedGroupingSets.first || replacedOutputs.first) { + return repeat.withGroupSetsAndOutput(replacedGroupingSets.second, replacedOutputs.second); + } + return repeat; + } + + @Override + public Plan visitLogicalGenerate(LogicalGenerate generate, Void context) { + generate = visitChildren(this, generate, context); + + Pair> replacedGenerators + = replaceExpressions(generate.getGenerators(), false, false); + Pair> replacedGeneratorOutput + = replaceExpressions(generate.getGeneratorOutput(), false, false); + if (replacedGenerators.first || replacedGeneratorOutput.first) { + return new LogicalGenerate<>(replacedGenerators.second, replacedGeneratorOutput.second, + generate.getExpandColumnAlias(), generate.child()); + } + return generate; + } + + @Override + public Plan visitLogicalAggregate(LogicalAggregate aggregate, Void context) { + aggregate = visitChildren(this, aggregate, context); + + Pair> replacedGroupBy = replaceExpressions( + aggregate.getGroupByExpressions(), false, false); + Pair> replacedOutput = replaceExpressions( + aggregate.getOutputExpressions(), true, false); + + if (replacedGroupBy.first || replacedOutput.first) { + return aggregate.withGroupByAndOutput(replacedGroupBy.second, replacedOutput.second); + } + return aggregate; + } + + @Override + public Plan visitLogicalSort(LogicalSort sort, Void context) { + sort = visitChildren(this, sort, context); + + Pair> replaced = replaceOrderKeys(sort.getOrderKeys()); + if (replaced.first) { + return sort.withOrderKeys(replaced.second); + } + return sort; + } + + @Override + public Plan visitLogicalTopN(LogicalTopN topN, Void context) { + topN = visitChildren(this, topN, context); + + Pair> replaced = replaceOrderKeys(topN.getOrderKeys()); + if (replaced.first) { + return topN.withOrderKeys(replaced.second); + } + return topN; + } + + @Override + public Plan visitLogicalDeferMaterializeOlapScan( + LogicalDeferMaterializeOlapScan deferMaterializeOlapScan, Void context) { + + LogicalOlapScan logicalOlapScan + = (LogicalOlapScan) deferMaterializeOlapScan.getLogicalOlapScan().accept(this, context); + + if (logicalOlapScan != deferMaterializeOlapScan.getLogicalOlapScan()) { + SlotReference replacedColumnIdSlot = replaceExpressions( + ImmutableList.of(deferMaterializeOlapScan.getColumnIdSlot()), false, false).second.get(0); + return new LogicalDeferMaterializeOlapScan( + logicalOlapScan, deferMaterializeOlapScan.getDeferMaterializeSlotIds(), replacedColumnIdSlot + ); + } + return deferMaterializeOlapScan; + } + + @Override + public Plan visitLogicalFilter(LogicalFilter filter, Void context) { + filter = visitChildren(this, filter, context); + + Pair> replaced = replaceExpressions(filter.getConjuncts(), false, false); + if (replaced.first) { + return filter.withConjuncts(replaced.second); + } + return filter; + } + + @Override + public Plan visitLogicalFileScan(LogicalFileScan fileScan, Void context) { + if (!shouldPrunePlans.containsKey(fileScan)) { + return fileScan; + } + + Pair> replaced = replaceExpressions(fileScan.getOutput(), false, true); + if (replaced.first) { + List replaceSlots = new ArrayList<>(replaced.second); + if (fileScan.getTable() instanceof IcebergExternalTable) { + for (int i = 0; i < replaceSlots.size(); i++) { + Slot slot = replaceSlots.get(i); + if (!(slot instanceof SlotReference)) { + continue; + } + SlotReference slotReference = (SlotReference) slot; + Optional> allAccessPaths = slotReference.getAllAccessPaths(); + if (!allAccessPaths.isPresent() || !slotReference.getOriginalColumn().isPresent()) { + continue; + } + List allAccessPathsWithId + = replaceIcebergAccessPathToId(allAccessPaths.get(), slotReference); + List predicateAccessPathsWithId = replaceIcebergAccessPathToId( + slotReference.getPredicateAccessPaths().get(), slotReference); + replaceSlots.set(i, ((SlotReference) slot).withAccessPaths( + allAccessPathsWithId, + predicateAccessPathsWithId, + allAccessPaths.get(), + slotReference.getPredicateAccessPaths().get() + )); + } + } + return fileScan.withCachedOutput(replaceSlots); + } + return fileScan; + } + + @Override + public Plan visitLogicalTVFRelation(LogicalTVFRelation tvfRelation, Void context) { + if (!shouldPrunePlans.containsKey(tvfRelation)) { + return tvfRelation; + } + Pair> replaced + = replaceExpressions(tvfRelation.getOutput(), false, true); + if (replaced.first) { + return tvfRelation.withCachedOutputs(replaced.second); + } + return tvfRelation; + } + + @Override + public Plan visitLogicalOlapScan(LogicalOlapScan olapScan, Void context) { + if (!shouldPrunePlans.containsKey(olapScan)) { + return olapScan; + } + Pair> replaced = replaceExpressions(olapScan.getOutput(), false, true); + if (replaced.first) { + return olapScan.withPrunedTypeSlots(replaced.second); + } + return olapScan; + } + + @Override + public Plan visitLogicalEmptyRelation(LogicalEmptyRelation emptyRelation, Void context) { + Pair> replacedProjects + = replaceExpressions(emptyRelation.getProjects(), true, false); + + if (replacedProjects.first) { + return emptyRelation.withProjects(replacedProjects.second); + } + return emptyRelation; + } + + @Override + public Plan visitLogicalOneRowRelation(LogicalOneRowRelation oneRowRelation, Void context) { + Pair> replacedProjects + = replaceExpressions(oneRowRelation.getProjects(), true, false); + + if (replacedProjects.first) { + return oneRowRelation.withProjects(replacedProjects.second); + } + return oneRowRelation; + } + + @Override + public Plan visitLogicalResultSink(LogicalResultSink logicalResultSink, Void context) { + logicalResultSink = visitChildren(this, logicalResultSink, context); + + Pair> replacedOutput = replaceExpressions(logicalResultSink.getOutputExprs(), + false, false); + if (replacedOutput.first) { + return logicalResultSink.withOutputExprs(replacedOutput.second); + } + return logicalResultSink; + } + + private Pair> replaceOrderExpressions(List orderExpressions) { + ImmutableList.Builder newOrderKeys + = ImmutableList.builderWithExpectedSize(orderExpressions.size()); + boolean changed = false; + for (OrderExpression orderExpression : orderExpressions) { + Expression newOrderKeyExpr = replaceSlot(orderExpression.getOrderKey().getExpr(), false); + if (newOrderKeyExpr != orderExpression.getOrderKey().getExpr()) { + newOrderKeys.add(new OrderExpression(orderExpression.getOrderKey().withExpression(newOrderKeyExpr))); + changed = true; + } else { + newOrderKeys.add(orderExpression); + } + } + return Pair.of(changed, newOrderKeys.build()); + } + + private Pair> replaceOrderKeys(List orderKeys) { + ImmutableList.Builder newOrderKeys = ImmutableList.builderWithExpectedSize(orderKeys.size()); + boolean changed = false; + for (OrderKey orderKey : orderKeys) { + Expression newOrderKeyExpr = replaceSlot(orderKey.getExpr(), false); + if (newOrderKeyExpr != orderKey.getExpr()) { + newOrderKeys.add(orderKey.withExpression(newOrderKeyExpr)); + changed = true; + } else { + newOrderKeys.add(orderKey); + } + } + return Pair.of(changed, newOrderKeys.build()); + } + + private , E extends Expression> + Pair> replaceMultiExpressions(List expressionsList) { + ImmutableList.Builder result = ImmutableList.builderWithExpectedSize(expressionsList.size()); + boolean changed = false; + for (C expressions : expressionsList) { + Pair replaced = replaceExpressions(expressions, false, false); + changed |= replaced.first; + result.add(replaced.second); + } + return Pair.of(changed, result.build()); + } + + private , E extends Expression> Pair replaceExpressions( + C expressions, boolean propagateType, boolean fillAccessPaths) { + ImmutableCollection.Builder newExprs; + if (expressions instanceof List) { + newExprs = ImmutableList.builder(); + } else { + newExprs = ImmutableSet.builder(); + } + + boolean changed = false; + for (Expression oldExpr : expressions) { + Expression newExpr = replaceSlot(oldExpr, fillAccessPaths); + if (newExpr != oldExpr) { + newExprs.add((E) newExpr); + changed = true; + + if (propagateType && oldExpr instanceof NamedExpression + && !oldExpr.getDataType().equals(newExpr.getDataType())) { + replacedDataTypes.put( + ((NamedExpression) oldExpr).getExprId().asInt(), + // not need access path in the upper slots + new AccessPathInfo(newExpr.getDataType(), null, null) + ); + } + } else { + newExprs.add((E) oldExpr); + } + } + return Pair.of(changed, (C) newExprs.build()); + } + + private Expression replaceSlot(Expression e, boolean fillAccessPath) { + return MoreFieldsThread.keepFunctionSignature(false, + () -> doRewriteExpression(e, fillAccessPath) + ); + } + + private Expression doRewriteExpression(Expression e, boolean fillAccessPath) { + if (e instanceof Lambda) { + return rewriteLambda((Lambda) e, fillAccessPath); + } else if (e instanceof Cast) { + return rewriteCast((Cast) e, fillAccessPath); + } else if (e instanceof SlotReference) { + AccessPathInfo accessPathInfo = replacedDataTypes.get(((SlotReference) e).getExprId().asInt()); + if (accessPathInfo != null) { + SlotReference newSlot = (SlotReference) ((SlotReference) e).withNullableAndDataType( + e.nullable(), accessPathInfo.getPrunedType()); + if (fillAccessPath) { + newSlot = newSlot.withAccessPaths( + accessPathInfo.getAllAccessPaths(), accessPathInfo.getPredicateAccessPaths() + ); + } + return newSlot; + } + } + + ImmutableList.Builder newChildren = ImmutableList.builderWithExpectedSize(e.arity()); + boolean changed = false; + for (Expression child : e.children()) { + Expression newChild = doRewriteExpression(child, fillAccessPath); + changed |= child != newChild; + newChildren.add(newChild); + } + return changed ? e.withChildren(newChildren.build()) : e; + } + + private Expression rewriteLambda(Lambda e, boolean fillAccessPath) { + // we should rewrite ArrayItemReference first, then we can replace the ArrayItemSlot int the lambda + Expression[] newChildren = new Expression[e.arity()]; + for (int i = 0; i < e.arity(); i++) { + Expression child = e.child(i); + if (child instanceof ArrayItemReference) { + Expression newRef = child.withChildren(doRewriteExpression(child.child(0), fillAccessPath)); + replacedDataTypes.put(((ArrayItemReference) child).getExprId().asInt(), + new AccessPathInfo(newRef.getDataType(), null, null)); + newChildren[i] = newRef; + } else { + newChildren[i] = child; + } + } + + for (int i = 0; i < newChildren.length; i++) { + Expression child = newChildren[i]; + if (!(child instanceof ArrayItemReference)) { + newChildren[i] = doRewriteExpression(child, fillAccessPath); + } + } + + return e.withChildren(newChildren); + } + + private Expression rewriteCast(Cast cast, boolean fillAccessPath) { + Expression newChild = doRewriteExpression(cast.child(0), fillAccessPath); + if (newChild == cast.child(0)) { + return cast; + } + + DataType newType = cast.getDataType(); + if (cast.getDataType() instanceof NestedColumnPrunable + && newChild.getDataType() instanceof NestedColumnPrunable) { + DataTypeAccessTree originTree = DataTypeAccessTree.of(cast.child().getDataType(), TAccessPathType.DATA); + DataTypeAccessTree prunedTree = DataTypeAccessTree.of(newChild.getDataType(), TAccessPathType.DATA); + DataTypeAccessTree castTree = DataTypeAccessTree.of(cast.getDataType(), TAccessPathType.DATA); + newType = prunedTree.pruneCastType(originTree, castTree); + } + + return new Cast(newChild, newType); + } + + private List replaceIcebergAccessPathToId( + List originAccessPaths, SlotReference slotReference) { + Column column = slotReference.getOriginalColumn().get(); + List replacedAccessPaths = new ArrayList<>(); + for (TColumnAccessPath accessPath : originAccessPaths) { + List icebergColumnAccessPath = new ArrayList<>(); + if (accessPath.type == TAccessPathType.DATA) { + icebergColumnAccessPath.addAll(accessPath.data_access_path.path); + replaceIcebergAccessPathToId( + icebergColumnAccessPath, 0, slotReference.getDataType(), column + ); + TColumnAccessPath newAccessPath = new TColumnAccessPath(TAccessPathType.DATA); + newAccessPath.data_access_path = new TDataAccessPath(icebergColumnAccessPath); + replacedAccessPaths.add(newAccessPath); + } else { + icebergColumnAccessPath.addAll(accessPath.meta_access_path.path); + replaceIcebergAccessPathToId( + icebergColumnAccessPath, 0, slotReference.getDataType(), column + ); + TColumnAccessPath newAccessPath = new TColumnAccessPath(TAccessPathType.META); + newAccessPath.meta_access_path = new TMetaAccessPath(icebergColumnAccessPath); + replacedAccessPaths.add(newAccessPath); + } + } + return replacedAccessPaths; + } + + private void replaceIcebergAccessPathToId(List originPath, int index, DataType type, Column column) { + if (index >= originPath.size()) { + return; + } + if (index == 0) { + originPath.set(index, String.valueOf(column.getUniqueId())); + replaceIcebergAccessPathToId(originPath, index + 1, type, column); + } else { + String fieldName = originPath.get(index); + if (type instanceof ArrayType) { + // skip replace * + replaceIcebergAccessPathToId( + originPath, index + 1, ((ArrayType) type).getItemType(), column.getChildren().get(0) + ); + } else if (type instanceof MapType) { + if (fieldName.equals("*") || fieldName.equals("VALUES")) { + replaceIcebergAccessPathToId( + originPath, index + 1, ((MapType) type).getValueType(), column.getChildren().get(1) + ); + } + } else if (type instanceof StructType) { + for (Column child : column.getChildren()) { + if (child.getName().equals(fieldName)) { + originPath.set(index, String.valueOf(child.getUniqueId())); + DataType childType = ((StructType) type).getNameToFields().get(fieldName).getDataType(); + replaceIcebergAccessPathToId(originPath, index + 1, childType, child); + break; + } + } + } else { + originPath.set(index, String.valueOf(column.getUniqueId())); + } + } + } + + private void tryRecordReplaceSlots(Plan plan, Object checkObj, Set shouldReplaceSlots) { + if (checkObj instanceof SupportPruneNestedColumn + && ((SupportPruneNestedColumn) checkObj).supportPruneNestedColumn()) { + List output = plan.getOutput(); + boolean shouldPrune = false; + for (Slot slot : output) { + int slotId = slot.getExprId().asInt(); + if (replacedDataTypes.containsKey(slotId)) { + shouldReplaceSlots.add(slotId); + shouldPrune = true; + } + } + if (shouldPrune) { + shouldPrunePlans.put(plan, null); + } + } + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/VariantSubPathPruning.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/VariantSubPathPruning.java index 1ed8d151270a23..abb65a283ed36f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/VariantSubPathPruning.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/VariantSubPathPruning.java @@ -22,7 +22,6 @@ import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.jobs.JobContext; import org.apache.doris.nereids.properties.OrderKey; -import org.apache.doris.nereids.rules.rewrite.ColumnPruning.PruneContext; import org.apache.doris.nereids.trees.expressions.Alias; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.NamedExpression; @@ -87,7 +86,7 @@ * generating the slots for the required sub path on scan, union, and cte consumer. * Then, it replaces the element_at with the corresponding slot. */ -public class VariantSubPathPruning extends DefaultPlanRewriter implements CustomRewriter { +public class VariantSubPathPruning implements CustomRewriter { public static final Logger LOG = LogManager.getLogger(VariantSubPathPruning.class); @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/TreeNode.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/TreeNode.java index a5e3ee9c5e11f3..2e59b283f939d3 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/TreeNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/TreeNode.java @@ -236,7 +236,7 @@ default void foreachBreath(Predicate> func) { default void foreachUp(Consumer> func) { for (NODE_TYPE child : children()) { - child.foreach(func); + child.foreachUp(func); } func.accept(this); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/PreferPushDownProject.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/PreferPushDownProject.java new file mode 100644 index 00000000000000..4c9c3bebe5aa00 --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/PreferPushDownProject.java @@ -0,0 +1,41 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.trees.expressions; + +import org.apache.doris.nereids.trees.expressions.functions.ExpressionTrait; + +/** + * some expressions prefer push down project under the plan, + * + * e.g. the element_at function prefer push down to a project in under the plan: + * Project(element_at(left.column, 'id') as a) + * | + * Join + * / | + * left right + * + * we will push down project through the Join, so we can prune the column which has complex type: + * + * Join + * / \ + * Project(element_at(left.column, 'id') as a, ...) right + * | + * left + */ +public interface PreferPushDownProject extends ExpressionTrait { +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java index ce2d3dbb3e5dca..1c77dc669acb72 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java @@ -24,6 +24,7 @@ import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.util.Utils; +import org.apache.doris.thrift.TColumnAccessPath; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -56,6 +57,10 @@ public class SlotReference extends Slot { // that need return original table and name for view not its original table if u query a view private final TableIf oneLevelTable; private final Column oneLevelColumn; + private final Optional> allAccessPaths; + private final Optional> predicateAccessPaths; + private final Optional> displayAllAccessPaths; + private final Optional> displayPredicateAccessPaths; public SlotReference(String name, DataType dataType) { this(StatementScopeIdGenerator.newExprId(), name, dataType, true, ImmutableList.of(), @@ -92,6 +97,15 @@ public SlotReference(ExprId exprId, String name, DataType dataType, boolean null subPath, Optional.empty()); } + public SlotReference(ExprId exprId, Supplier name, DataType dataType, boolean nullable, + List qualifier, @Nullable TableIf originalTable, @Nullable Column originalColumn, + @Nullable TableIf oneLevelTable, Column oneLevelColumn, + List subPath, Optional> indexInSql) { + this(exprId, name, dataType, nullable, qualifier, originalTable, originalColumn, oneLevelTable, + oneLevelColumn, subPath, indexInSql, Optional.empty(), Optional.empty(), + Optional.empty(), Optional.empty()); + } + /** * Constructor for SlotReference. * @@ -106,7 +120,10 @@ public SlotReference(ExprId exprId, String name, DataType dataType, boolean null public SlotReference(ExprId exprId, Supplier name, DataType dataType, boolean nullable, List qualifier, @Nullable TableIf originalTable, @Nullable Column originalColumn, @Nullable TableIf oneLevelTable, Column oneLevelColumn, - List subPath, Optional> indexInSql) { + List subPath, Optional> indexInSql, + Optional> allAccessPaths, Optional> predicateAccessPaths, + Optional> displayAllAccessPaths, + Optional> displayPredicateAccessPaths) { super(indexInSql); this.exprId = exprId; this.name = name; @@ -119,6 +136,10 @@ public SlotReference(ExprId exprId, Supplier name, DataType dataType, bo this.oneLevelTable = oneLevelTable; this.oneLevelColumn = oneLevelColumn; this.subPath = Objects.requireNonNull(subPath, "subPath can not be null"); + this.allAccessPaths = allAccessPaths; + this.predicateAccessPaths = predicateAccessPaths; + this.displayAllAccessPaths = displayAllAccessPaths; + this.displayPredicateAccessPaths = displayPredicateAccessPaths; } public static SlotReference of(String name, DataType type) { @@ -342,4 +363,37 @@ public String getQualifiedNameWithBackquote() throws UnboundException { public boolean hasAutoInc() { return originalColumn != null ? originalColumn.isAutoInc() : false; } + + public SlotReference withAccessPaths( + List allAccessPaths, List predicateAccessPaths) { + return new SlotReference(exprId, name, dataType, nullable, qualifier, + originalTable, originalColumn, oneLevelTable, oneLevelColumn, + subPath, indexInSqlString, Optional.of(allAccessPaths), Optional.of(predicateAccessPaths), + Optional.of(allAccessPaths), Optional.of(predicateAccessPaths)); + } + + public SlotReference withAccessPaths( + List allAccessPaths, List predicateAccessPaths, + List displayAllAccessPaths, List displayPredicateAccessPaths) { + return new SlotReference(exprId, name, dataType, nullable, qualifier, + originalTable, originalColumn, oneLevelTable, oneLevelColumn, + subPath, indexInSqlString, Optional.of(allAccessPaths), Optional.of(predicateAccessPaths), + Optional.of(displayAllAccessPaths), Optional.of(displayPredicateAccessPaths)); + } + + public Optional> getAllAccessPaths() { + return allAccessPaths; + } + + public Optional> getPredicateAccessPaths() { + return predicateAccessPaths; + } + + public Optional> getDisplayAllAccessPaths() { + return displayAllAccessPaths; + } + + public Optional> getDisplayPredicateAccessPaths() { + return displayPredicateAccessPaths; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayFirst.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayFirst.java index 8c0babc39cab12..5410de371a793c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayFirst.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayFirst.java @@ -20,6 +20,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.BigIntLiteral; +import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import java.util.List; @@ -51,4 +52,9 @@ public ElementAt withChildren(List children) { public List getImplSignature() { return SIGNATURES; } + + @Override + public R accept(ExpressionVisitor visitor, C context) { + return visitor.visitArrayFirst(this, context); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayLast.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayLast.java index e1ed4f4d27bf38..b9f5650156f083 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayLast.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayLast.java @@ -20,6 +20,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.literal.BigIntLiteral; +import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import java.util.List; @@ -51,4 +52,9 @@ public List getImplSignature() { public ElementAt withChildren(List children) { return new ArrayLast(getFunctionParams(children)); } + + @Override + public R accept(ExpressionVisitor visitor, C context) { + return visitor.visitArrayLast(this, context); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayMap.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayMap.java index 5d74f5e1457003..1a1a246cea6d8e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayMap.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayMap.java @@ -20,6 +20,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.ArrayItemReference; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ImplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -37,7 +38,7 @@ * ScalarFunction 'array_map'. */ public class ArrayMap extends ScalarFunction - implements ImplicitlyCastableSignature, PropagateNullable { + implements ImplicitlyCastableSignature, PropagateNullable, PreferPushDownProject { public static final List SIGNATURES = ImmutableList.of( FunctionSignature.ret(new FollowToAnyDataType(0)).args(LambdaType.INSTANCE) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ElementAt.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ElementAt.java index b24d46c98a40fc..cd2cb9743642b8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ElementAt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ElementAt.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.AlwaysNullable; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.RewriteWhenAnalyze; @@ -42,7 +43,8 @@ * ScalarFunction 'element_at'. This class is generated by GenerateFunction. */ public class ElementAt extends ScalarFunction - implements BinaryExpression, ExplicitlyCastableSignature, AlwaysNullable, RewriteWhenAnalyze { + implements BinaryExpression, ExplicitlyCastableSignature, AlwaysNullable, + RewriteWhenAnalyze, PreferPushDownProject { public static final List SIGNATURES = ImmutableList.of( FunctionSignature.ret(new FollowToAnyDataType(0)) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HighOrderFunction.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HighOrderFunction.java index a929f2dd5d5e27..e7a054fc864fa8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HighOrderFunction.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/HighOrderFunction.java @@ -18,6 +18,7 @@ package org.apache.doris.nereids.trees.expressions.functions.scalar; import org.apache.doris.catalog.FunctionSignature; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.types.LambdaType; import org.apache.doris.nereids.types.coercion.AnyDataType; @@ -29,7 +30,7 @@ /** * Interface of HighOrderFunction, provide default FunctionSignature of LambdaType argument */ -public interface HighOrderFunction extends ExplicitlyCastableSignature { +public interface HighOrderFunction extends ExplicitlyCastableSignature, PreferPushDownProject { @Override default List getSignatures() { return new ImmutableList.Builder() diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsEntry.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsEntry.java index b8ecc8667c7412..517bfaa7748f56 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsEntry.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsEntry.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.shape.TernaryExpression; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -36,7 +37,7 @@ * ScalarFunction 'map_contains_entry'. */ public class MapContainsEntry extends ScalarFunction - implements TernaryExpression, ExplicitlyCastableSignature { + implements TernaryExpression, ExplicitlyCastableSignature, PreferPushDownProject { /** * Basic signature, forcing search key/value type to convert to the same type as map's key/value type. diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsKey.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsKey.java index 4fc4c32f233256..845e84f71b3460 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsKey.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsKey.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -36,7 +37,7 @@ * ScalarFunction 'map_contains_key'. This class is generated by GenerateFunction. */ public class MapContainsKey extends ScalarFunction - implements BinaryExpression, ExplicitlyCastableSignature { + implements BinaryExpression, ExplicitlyCastableSignature, PreferPushDownProject { public static final List FOLLOW_DATATYPE_SIGNATURE = ImmutableList.of( FunctionSignature.ret(BooleanType.INSTANCE) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsValue.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsValue.java index a60f6653cdee51..fd42c42fb65d9d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsValue.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapContainsValue.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; @@ -36,7 +37,7 @@ * ScalarFunction 'map_contains_value'. This class is generated by GenerateFunction. */ public class MapContainsValue extends ScalarFunction - implements BinaryExpression, ExplicitlyCastableSignature { + implements BinaryExpression, ExplicitlyCastableSignature, PreferPushDownProject { public static final List FOLLOW_DATATYPE_SIGNATURE = ImmutableList.of( FunctionSignature.ret(BooleanType.INSTANCE) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapEntries.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapEntries.java index 4be48638e5ea07..22a14c31df35ab 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapEntries.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapEntries.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.CustomSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; import org.apache.doris.nereids.trees.expressions.functions.SearchSignature; @@ -41,7 +42,7 @@ * fields 'key' and 'value'. */ public class MapEntries extends ScalarFunction - implements UnaryExpression, CustomSignature, PropagateNullable { + implements UnaryExpression, CustomSignature, PropagateNullable, PreferPushDownProject { /** * constructor with 1 argument. diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapKeys.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapKeys.java index 957dae2844a8ed..a3123d29cb07b6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapKeys.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapKeys.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression; @@ -37,7 +38,7 @@ * ScalarFunction 'map_keys'. */ public class MapKeys extends ScalarFunction - implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable { + implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable, PreferPushDownProject { public static final List SIGNATURES = ImmutableList.of( FunctionSignature.ret(ArrayType.of(new FollowToAnyDataType(0))).args(MapType.of( diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapValues.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapValues.java index e7ca7f48dd3af3..1622b27715613b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapValues.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/MapValues.java @@ -19,6 +19,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable; import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression; @@ -37,7 +38,7 @@ * ScalarFunction 'map_values'. */ public class MapValues extends ScalarFunction - implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable { + implements UnaryExpression, ExplicitlyCastableSignature, PropagateNullable, PreferPushDownProject { public static final List SIGNATURES = ImmutableList.of( FunctionSignature.ret(ArrayType.of(new FollowToAnyDataType(0))).args(MapType.of( diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/StructElement.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/StructElement.java index 85bb424de19eb0..ed29818b688ddb 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/StructElement.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/StructElement.java @@ -20,6 +20,7 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.PreferPushDownProject; import org.apache.doris.nereids.trees.expressions.functions.AlwaysNullable; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullLiteral; @@ -29,6 +30,7 @@ import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.types.NullType; +import org.apache.doris.nereids.types.StructField; import org.apache.doris.nereids.types.StructType; import com.google.common.base.Preconditions; @@ -40,7 +42,7 @@ * ScalarFunction 'struct_element'. */ public class StructElement extends ScalarFunction - implements ExplicitlyCastableSignature, AlwaysNullable, PropagateNullLiteral { + implements ExplicitlyCastableSignature, AlwaysNullable, PropagateNullLiteral, PreferPushDownProject { /** * constructor with 0 or more arguments. @@ -98,10 +100,11 @@ public List getSignatures() { } } else if (child(1) instanceof StringLikeLiteral) { String name = ((StringLikeLiteral) child(1)).getStringValue(); - if (!structArgType.getNameToFields().containsKey(name.toLowerCase())) { + StructField field = structArgType.getField(name); + if (field == null) { throw new AnalysisException("the specified field name " + name + " was not found: " + this.toSql()); } else { - retType = structArgType.getNameToFields().get(name).getDataType(); + retType = field.getDataType(); } } else { throw new AnalysisException("struct_element only allows" diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/File.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/File.java index aed17d7b5a8f17..660dfad48744d7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/File.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/File.java @@ -21,6 +21,8 @@ import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Properties; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumn; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumnFormats; import org.apache.doris.nereids.types.coercion.AnyDataType; import org.apache.doris.tablefunction.FileTableValuedFunction; import org.apache.doris.tablefunction.TableValuedFunctionIf; @@ -30,7 +32,7 @@ /** * File Tvf */ -public class File extends TableValuedFunction { +public class File extends TableValuedFunction implements SupportPruneNestedColumn { public File(Properties properties) { super("file", properties); } @@ -55,4 +57,8 @@ public R accept(ExpressionVisitor visitor, C context) { return visitor.visitFile(this, context); } + @Override + public boolean supportPruneNestedColumn() { + return SupportPruneNestedColumnFormats.supportFormat(getTVFProperties()); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Hdfs.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Hdfs.java index 5f8651ed61c826..8389892f6cfaca 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Hdfs.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Hdfs.java @@ -21,6 +21,8 @@ import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Properties; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumn; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumnFormats; import org.apache.doris.nereids.types.coercion.AnyDataType; import org.apache.doris.tablefunction.HdfsTableValuedFunction; import org.apache.doris.tablefunction.TableValuedFunctionIf; @@ -29,7 +31,7 @@ import java.util.Map; /** hdfs */ -public class Hdfs extends TableValuedFunction { +public class Hdfs extends TableValuedFunction implements SupportPruneNestedColumn { public Hdfs(Properties properties) { super("hdfs", properties); } @@ -53,4 +55,9 @@ protected TableValuedFunctionIf toCatalogFunction() { public R accept(ExpressionVisitor visitor, C context) { return visitor.visitHdfs(this, context); } + + @Override + public boolean supportPruneNestedColumn() { + return SupportPruneNestedColumnFormats.supportFormat(getTVFProperties()); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Local.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Local.java index 4330980ee86d24..094324e895b2e7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Local.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/Local.java @@ -21,6 +21,8 @@ import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Properties; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumn; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumnFormats; import org.apache.doris.nereids.types.coercion.AnyDataType; import org.apache.doris.tablefunction.LocalTableValuedFunction; import org.apache.doris.tablefunction.TableValuedFunctionIf; @@ -30,7 +32,7 @@ /** * local */ -public class Local extends TableValuedFunction { +public class Local extends TableValuedFunction implements SupportPruneNestedColumn { public Local(Properties properties) { super("local", properties); } @@ -54,4 +56,9 @@ protected TableValuedFunctionIf toCatalogFunction() { public R accept(ExpressionVisitor visitor, C context) { return visitor.visitLocal(this, context); } + + @Override + public boolean supportPruneNestedColumn() { + return SupportPruneNestedColumnFormats.supportFormat(getTVFProperties()); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/S3.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/S3.java index d2623d8fd3c6bf..3c4c924d7f41e6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/S3.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/table/S3.java @@ -21,6 +21,8 @@ import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.expressions.Properties; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumn; +import org.apache.doris.nereids.trees.plans.logical.SupportPruneNestedColumnFormats; import org.apache.doris.nereids.types.coercion.AnyDataType; import org.apache.doris.tablefunction.S3TableValuedFunction; import org.apache.doris.tablefunction.TableValuedFunctionIf; @@ -28,7 +30,7 @@ import java.util.Map; /** s3 */ -public class S3 extends TableValuedFunction { +public class S3 extends TableValuedFunction implements SupportPruneNestedColumn { public S3(Properties properties) { super("s3", properties); } @@ -52,4 +54,9 @@ protected TableValuedFunctionIf toCatalogFunction() { public R accept(ExpressionVisitor visitor, C context) { return visitor.visitS3(this, context); } + + @Override + public boolean supportPruneNestedColumn() { + return SupportPruneNestedColumnFormats.supportFormat(getTVFProperties()); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java index 9e2a9708f3742c..d907d0b6599a83 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java @@ -54,10 +54,12 @@ import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayExcept; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayExists; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFilter; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFirst; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFirstIndex; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayFlatten; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayIntersect; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayJoin; +import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayLast; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayLastIndex; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayMap; import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayMatchAll; @@ -643,6 +645,10 @@ default R visitArrayFilter(ArrayFilter arrayFilter, C context) { return visitScalarFunction(arrayFilter, context); } + default R visitArrayFirst(ArrayFirst arrayFirst, C context) { + return visitElementAt(arrayFirst, context); + } + default R visitArrayFirstIndex(ArrayFirstIndex arrayFirstIndex, C context) { return visitScalarFunction(arrayFirstIndex, context); } @@ -655,6 +661,10 @@ default R visitArrayJoin(ArrayJoin arrayJoin, C context) { return visitScalarFunction(arrayJoin, context); } + default R visitArrayLast(ArrayLast arrayLast, C context) { + return visitElementAt(arrayLast, context); + } + default R visitArrayLastIndex(ArrayLastIndex arrayLastIndex, C context) { return visitScalarFunction(arrayLastIndex, context); } @@ -759,8 +769,8 @@ default R visitArrayFlatten(ArrayFlatten arrayFlatten, C context) { return visitScalarFunction(arrayFlatten, context); } - default R visitArrayMap(ArrayMap arraySort, C context) { - return visitScalarFunction(arraySort, context); + default R visitArrayMap(ArrayMap arrayMap, C context) { + return visitScalarFunction(arrayMap, context); } default R visitArrayMatchAll(ArrayMatchAll arrayMatchAll, C context) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java index 6ae9e5dd32ae91..5d4c1167a82bc2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalFileScan.java @@ -21,6 +21,8 @@ import org.apache.doris.analysis.TableSnapshot; import org.apache.doris.catalog.PartitionItem; import org.apache.doris.datasource.ExternalTable; +import org.apache.doris.datasource.hive.HMSExternalTable; +import org.apache.doris.datasource.iceberg.IcebergExternalTable; import org.apache.doris.datasource.mvcc.MvccUtil; import org.apache.doris.nereids.memo.GroupExpression; import org.apache.doris.nereids.properties.LogicalProperties; @@ -32,6 +34,9 @@ import org.apache.doris.nereids.trees.plans.RelationId; import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor; import org.apache.doris.nereids.util.Utils; +import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; +import org.apache.doris.thrift.TFileFormatType; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -46,21 +51,26 @@ /** * Logical file scan for external catalog. */ -public class LogicalFileScan extends LogicalCatalogRelation { +public class LogicalFileScan extends LogicalCatalogRelation implements SupportPruneNestedColumn { protected final SelectedPartitions selectedPartitions; protected final Optional tableSample; protected final Optional tableSnapshot; protected final Optional scanParams; + protected final Optional> cachedOutputs; + /** + * Constructor for LogicalFileScan. + */ public LogicalFileScan(RelationId id, ExternalTable table, List qualifier, Collection operativeSlots, Optional tableSample, Optional tableSnapshot, - Optional scanParams) { + Optional scanParams, Optional> cachedOutputs) { this(id, table, qualifier, table.initSelectedPartitions(MvccUtil.getSnapshotFromContext(table)), operativeSlots, ImmutableList.of(), tableSample, tableSnapshot, - scanParams, Optional.empty(), Optional.empty()); + scanParams, Optional.empty(), Optional.empty(), "", + cachedOutputs); } /** @@ -71,22 +81,24 @@ protected LogicalFileScan(RelationId id, ExternalTable table, List quali List virtualColumns, Optional tableSample, Optional tableSnapshot, Optional scanParams, Optional groupExpression, Optional logicalProperties, - String tableAlias) { + String tableAlias, Optional> cachedSlots) { super(id, PlanType.LOGICAL_FILE_SCAN, table, qualifier, operativeSlots, virtualColumns, groupExpression, logicalProperties, tableAlias); this.selectedPartitions = selectedPartitions; this.tableSample = tableSample; this.tableSnapshot = tableSnapshot; this.scanParams = scanParams; + this.cachedOutputs = cachedSlots; } protected LogicalFileScan(RelationId id, ExternalTable table, List qualifier, SelectedPartitions selectedPartitions, Collection operativeSlots, List virtualColumns, Optional tableSample, Optional tableSnapshot, Optional scanParams, - Optional groupExpression, Optional logicalProperties) { + Optional groupExpression, Optional logicalProperties, + Optional> cachedOutputs) { this(id, table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, groupExpression, logicalProperties, ""); + scanParams, groupExpression, logicalProperties, "", cachedOutputs); } public SelectedPartitions getSelectedPartitions() { @@ -126,7 +138,8 @@ public String toString() { public LogicalFileScan withGroupExpression(Optional groupExpression) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, groupExpression, Optional.of(getLogicalProperties()), tableAlias); + scanParams, groupExpression, Optional.of(getLogicalProperties()), tableAlias, + cachedOutputs); } @Override @@ -134,26 +147,28 @@ public Plan withGroupExprLogicalPropChildren(Optional groupExpr Optional logicalProperties, List children) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, groupExpression, logicalProperties, tableAlias); + scanParams, groupExpression, logicalProperties, tableAlias, cachedOutputs); } public LogicalFileScan withSelectedPartitions(SelectedPartitions selectedPartitions) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, Optional.empty(), Optional.of(getLogicalProperties()), tableAlias); + scanParams, Optional.empty(), Optional.of(getLogicalProperties()), tableAlias, + cachedOutputs); } @Override public LogicalFileScan withRelationId(RelationId relationId) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, Optional.empty(), Optional.empty(), tableAlias); + scanParams, Optional.empty(), Optional.empty(), tableAlias, cachedOutputs); } public LogicalFileScan withTableAlias(String tableAlias) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, Optional.empty(), Optional.of(getLogicalProperties()), tableAlias); + scanParams, Optional.empty(), Optional.of(getLogicalProperties()), tableAlias, + cachedOutputs); } @Override @@ -166,6 +181,43 @@ public boolean equals(Object o) { return super.equals(o) && Objects.equals(selectedPartitions, ((LogicalFileScan) o).selectedPartitions); } + @Override + public List computeOutput() { + if (cachedOutputs.isPresent()) { + return cachedOutputs.get(); + } + return super.computeOutput(); + } + + @Override + public List computeAsteriskOutput() { + return super.computeAsteriskOutput(); + } + + @Override + public boolean supportPruneNestedColumn() { + ExternalTable table = getTable(); + if (table instanceof IcebergExternalTable) { + return true; + } else if (table instanceof HMSExternalTable) { + try { + ConnectContext connectContext = ConnectContext.get(); + SessionVariable sessionVariable = connectContext.getSessionVariable(); + TFileFormatType fileFormatType = ((HMSExternalTable) table).getFileFormatType(sessionVariable); + switch (fileFormatType) { + case FORMAT_PARQUET: + case FORMAT_ORC: + return true; + default: + return false; + } + } catch (Throwable t) { + // ignore and not prune + } + } + return false; + } + /** * SelectedPartitions contains the selected partitions and the total partition number. * Mainly for hive table partition pruning. @@ -223,7 +275,13 @@ public int hashCode() { public LogicalFileScan withOperativeSlots(Collection operativeSlots) { return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, - scanParams, groupExpression, Optional.of(getLogicalProperties())); + scanParams, groupExpression, Optional.of(getLogicalProperties()), tableAlias, cachedOutputs); + } + + public LogicalFileScan withCachedOutput(List cachedOutputs) { + return new LogicalFileScan(relationId, (ExternalTable) table, qualifier, + selectedPartitions, operativeSlots, virtualColumns, tableSample, tableSnapshot, + scanParams, groupExpression, Optional.empty(), tableAlias, Optional.of(cachedOutputs)); } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java index 9a123a04d2bf4f..d14da7f896ed56 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalHudiScan.java @@ -77,9 +77,10 @@ protected LogicalHudiScan(RelationId id, ExternalTable table, List quali Collection operativeSlots, List virtualColumns, Optional groupExpression, - Optional logicalProperties) { + Optional logicalProperties, + Optional> cachedOutputs) { super(id, table, qualifier, selectedPartitions, operativeSlots, virtualColumns, - tableSample, tableSnapshot, scanParams, groupExpression, logicalProperties); + tableSample, tableSnapshot, scanParams, groupExpression, logicalProperties, "", cachedOutputs); Objects.requireNonNull(scanParams, "scanParams should not null"); Objects.requireNonNull(incrementalRelation, "incrementalRelation should not null"); this.incrementalRelation = incrementalRelation; @@ -87,10 +88,11 @@ protected LogicalHudiScan(RelationId id, ExternalTable table, List quali public LogicalHudiScan(RelationId id, ExternalTable table, List qualifier, Collection operativeSlots, Optional scanParams, - Optional tableSample, Optional tableSnapshot) { + Optional tableSample, Optional tableSnapshot, + Optional> cachedOutputs) { this(id, table, qualifier, ((HMSExternalTable) table).initHudiSelectedPartitions(tableSnapshot), tableSample, tableSnapshot, scanParams, Optional.empty(), operativeSlots, ImmutableList.of(), - Optional.empty(), Optional.empty()); + Optional.empty(), Optional.empty(), cachedOutputs); } public Optional getScanParams() { @@ -140,7 +142,7 @@ public String toString() { public LogicalHudiScan withGroupExpression(Optional groupExpression) { return new LogicalHudiScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, tableSample, tableSnapshot, scanParams, incrementalRelation, - operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties())); + operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties()), cachedOutputs); } @Override @@ -148,20 +150,20 @@ public Plan withGroupExprLogicalPropChildren(Optional groupExpr Optional logicalProperties, List children) { return new LogicalHudiScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, tableSample, tableSnapshot, scanParams, incrementalRelation, - operativeSlots, virtualColumns, groupExpression, logicalProperties); + operativeSlots, virtualColumns, groupExpression, logicalProperties, cachedOutputs); } public LogicalHudiScan withSelectedPartitions(SelectedPartitions selectedPartitions) { return new LogicalHudiScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, tableSample, tableSnapshot, scanParams, incrementalRelation, - operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties())); + operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties()), cachedOutputs); } @Override public LogicalHudiScan withRelationId(RelationId relationId) { return new LogicalHudiScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, tableSample, tableSnapshot, scanParams, incrementalRelation, - operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties())); + operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties()), cachedOutputs); } @Override @@ -173,7 +175,7 @@ public R accept(PlanVisitor visitor, C context) { public LogicalFileScan withOperativeSlots(Collection operativeSlots) { return new LogicalHudiScan(relationId, (ExternalTable) table, qualifier, selectedPartitions, tableSample, tableSnapshot, scanParams, incrementalRelation, - operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties())); + operativeSlots, virtualColumns, groupExpression, Optional.of(getLogicalProperties()), cachedOutputs); } /** @@ -226,6 +228,6 @@ public LogicalHudiScan withScanParams(HMSExternalTable table, Optional constructReplaceMap(MTMV mtmv) { } return replaceMap; } + + /** withPrunedTypeSlots */ + public LogicalOlapScan withPrunedTypeSlots(List outputSlots) { + Map, Slot> replaceSlotMap = new HashMap<>(); + for (Slot outputSlot : outputSlots) { + Pair key = Pair.of(selectedIndexId, outputSlot.getName()); + replaceSlotMap.put(key, outputSlot); + } + + return new LogicalOlapScan(relationId, (Table) table, qualifier, + groupExpression, Optional.empty(), + selectedPartitionIds, partitionPruned, selectedTabletIds, + selectedIndexId, indexSelected, preAggStatus, manuallySpecifiedPartitions, + hints, replaceSlotMap, tableSample, directMvScan, colToSubPathsMap, + manuallySpecifiedTabletIds, operativeSlots, virtualColumns, scoreOrderKeys, scoreLimit, + annOrderKeys, annLimit, tableAlias); + } + + @Override + public boolean supportPruneNestedColumn() { + return true; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java index a434f81b2313ba..c6d0241f393d1e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalTVFRelation.java @@ -47,20 +47,31 @@ public class LogicalTVFRelation extends LogicalRelation implements TVFRelation, private final TableValuedFunction function; private final ImmutableList qualifier; private final ImmutableList operativeSlots; + private final Optional> cachedOutputs; public LogicalTVFRelation(RelationId id, TableValuedFunction function, ImmutableList operativeSlots) { super(id, PlanType.LOGICAL_TVF_RELATION); this.operativeSlots = operativeSlots; this.function = function; - qualifier = ImmutableList.of(TableValuedFunctionIf.TVF_TABLE_PREFIX + function.getName()); + this.qualifier = ImmutableList.of(TableValuedFunctionIf.TVF_TABLE_PREFIX + function.getName()); + this.cachedOutputs = Optional.empty(); } public LogicalTVFRelation(RelationId id, TableValuedFunction function, ImmutableList operativeSlots, Optional groupExpression, Optional logicalProperties) { + this(id, function, operativeSlots, Optional.empty(), groupExpression, logicalProperties); + } + + public LogicalTVFRelation(RelationId id, TableValuedFunction function, + ImmutableList operativeSlots, + Optional> cachedOutputs, + Optional groupExpression, + Optional logicalProperties) { super(id, PlanType.LOGICAL_TVF_RELATION, groupExpression, logicalProperties); this.operativeSlots = operativeSlots; this.function = function; - qualifier = ImmutableList.of(TableValuedFunctionIf.TVF_TABLE_PREFIX + function.getName()); + this.cachedOutputs = Objects.requireNonNull(cachedOutputs, "cachedOutputs can not be null"); + this.qualifier = ImmutableList.of(TableValuedFunctionIf.TVF_TABLE_PREFIX + function.getName()); } @Override @@ -120,6 +131,9 @@ public String toString() { @Override public List computeOutput() { + if (cachedOutputs.isPresent()) { + return cachedOutputs.get(); + } IdGenerator exprIdGenerator = StatementScopeIdGenerator.getExprIdGenerator(); return function.getTable().getBaseSchema() .stream() @@ -138,4 +152,9 @@ public R accept(PlanVisitor visitor, C context) { public TableValuedFunction getFunction() { return function; } + + public LogicalTVFRelation withCachedOutputs(List replaceSlots) { + return new LogicalTVFRelation(relationId, function, Utils.fastToImmutableList(operativeSlots), + Optional.of(replaceSlots), Optional.empty(), Optional.empty()); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumn.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumn.java new file mode 100644 index 00000000000000..44f1b733dd109d --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumn.java @@ -0,0 +1,24 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.trees.plans.logical; + +/** SupportPruneNestedColumn */ +public interface SupportPruneNestedColumn { + // return false will not prune the nested column + boolean supportPruneNestedColumn(); +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumnFormats.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumnFormats.java new file mode 100644 index 00000000000000..a9ee8f64b4969f --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/SupportPruneNestedColumnFormats.java @@ -0,0 +1,42 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.trees.plans.logical; + +import org.apache.doris.nereids.trees.expressions.Properties; + +import com.google.common.collect.ImmutableSet; + +import java.util.Map.Entry; +import java.util.Set; + +/** SupportPruneNestedColumnFormats */ +public class SupportPruneNestedColumnFormats { + private static final Set SUPPORTED_FORMATS = ImmutableSet.of( + "parquet", "orc" + ); + + /** supportFormat */ + public static boolean supportFormat(Properties properties) { + for (Entry kv : properties.getMap().entrySet()) { + if (kv.getKey().equalsIgnoreCase("format")) { + return SUPPORTED_FORMATS.contains(kv.getValue().toLowerCase()); + } + } + return false; + } +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/ArrayType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/ArrayType.java index 9a34ab740d3192..6d4ec539ff306e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/ArrayType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/ArrayType.java @@ -25,7 +25,7 @@ /** * Array type in Nereids. */ -public class ArrayType extends DataType implements ComplexDataType { +public class ArrayType extends DataType implements ComplexDataType, NestedColumnPrunable { public static final ArrayType SYSTEM_DEFAULT = new ArrayType(NullType.INSTANCE, true); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/MapType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/MapType.java index fb8346987f7263..176c1db1d0d6b1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/MapType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/MapType.java @@ -27,7 +27,7 @@ * Struct type in Nereids. */ @Developing -public class MapType extends DataType implements ComplexDataType { +public class MapType extends DataType implements ComplexDataType, NestedColumnPrunable { public static final MapType SYSTEM_DEFAULT = new MapType(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/NestedColumnPrunable.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/NestedColumnPrunable.java new file mode 100644 index 00000000000000..2d5e464f042a7a --- /dev/null +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/NestedColumnPrunable.java @@ -0,0 +1,22 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.types; + +/** NestedColumnPrunable */ +public interface NestedColumnPrunable { +} diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructField.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructField.java index 88317682c4cbb7..63e94bc369bb0c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructField.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructField.java @@ -19,7 +19,6 @@ import org.apache.doris.nereids.util.Utils; -import java.util.Locale; import java.util.Objects; /** @@ -41,7 +40,7 @@ public class StructField { * @param nullable Indicates if values of this field can be `null` values */ public StructField(String name, DataType dataType, boolean nullable, String comment) { - this.name = Objects.requireNonNull(name, "name should not be null").toLowerCase(Locale.ROOT); + this.name = Objects.requireNonNull(name, "name should not be null").toLowerCase(); this.dataType = Objects.requireNonNull(dataType, "dataType should not be null"); this.nullable = nullable; this.comment = Objects.requireNonNull(comment, "comment should not be null"); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructType.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructType.java index ffbff7c61e14d5..8296ac282810e7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructType.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/StructType.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -35,7 +36,7 @@ * Struct type in Nereids. */ @Developing -public class StructType extends DataType implements ComplexDataType { +public class StructType extends DataType implements ComplexDataType, NestedColumnPrunable { public static final StructType SYSTEM_DEFAULT = new StructType(); @@ -55,7 +56,8 @@ private StructType() { public StructType(List fields) { this.fields = ImmutableList.copyOf(Objects.requireNonNull(fields, "fields should not be null")); // field name should be lowercase and check the same or not - this.nameToFields = new HashMap<>(); + // ATTN: should use LinkedHashMap to keep order + this.nameToFields = new LinkedHashMap<>(); for (StructField field : this.fields) { String fieldName = field.getName().toLowerCase(); StructField existingField = this.nameToFields.put(fieldName, field); @@ -73,6 +75,10 @@ public Map getNameToFields() { return nameToFields; } + public StructField getField(String name) { + return nameToFields.get(name.toLowerCase()); + } + @Override public DataType conversion() { return new StructType(fields.stream().map(StructField::conversion).collect(Collectors.toList())); diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializationNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializationNode.java index 4f83a3c2ec4456..524b1c468e8313 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializationNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/MaterializationNode.java @@ -126,6 +126,8 @@ public String getNodeExplainString(String detailPrefix, TExplainLevel detailLeve output.append(detailPrefix).append("table_idxs: ").append(idxs).append("\n"); output.append(detailPrefix).append("row_ids: ").append(rowIds).append("\n"); output.append(detailPrefix).append("isTopMaterializeNode: ").append(isTopMaterializeNode).append("\n"); + printNestedColumns(output, detailPrefix, outputTupleDesc); + return output.toString(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java index 1a2ca392972ae4..0c57e4c481d754 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java @@ -1050,6 +1050,9 @@ public String getNodeExplainString(String prefix, TExplainLevel detailLevel) { if (isPointQuery()) { output.append(prefix).append("SHORT-CIRCUIT\n"); } + + printNestedColumns(output, prefix, getTupleDesc()); + return output.toString(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java index 51fefc2a205705..22b2cb8da7a3d0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java @@ -31,8 +31,11 @@ import org.apache.doris.common.Pair; import org.apache.doris.common.TreeNode; import org.apache.doris.common.UserException; +import org.apache.doris.datasource.iceberg.source.IcebergScanNode; import org.apache.doris.planner.normalize.Normalizer; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.thrift.TAccessPathType; +import org.apache.doris.thrift.TColumnAccessPath; import org.apache.doris.thrift.TExplainLevel; import org.apache.doris.thrift.TExpr; import org.apache.doris.thrift.TNormalizedPlanNode; @@ -46,6 +49,7 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.Collection; @@ -428,7 +432,7 @@ protected final String getExplainString(String rootPrefix, String prefix, TExpla return expBuilder.toString(); } - private String getplanNodeExplainString(String prefix, TExplainLevel detailLevel) { + private String getPlanNodeExplainString(String prefix, TExplainLevel detailLevel) { StringBuilder expBuilder = new StringBuilder(); expBuilder.append(getNodeExplainString(prefix, detailLevel)); if (limit != -1) { @@ -443,7 +447,7 @@ private String getplanNodeExplainString(String prefix, TExplainLevel detailLevel } public void getExplainStringMap(TExplainLevel detailLevel, Map planNodeMap) { - planNodeMap.put(id.asInt(), getplanNodeExplainString("", detailLevel)); + planNodeMap.put(id.asInt(), getPlanNodeExplainString("", detailLevel)); for (int i = 0; i < children.size(); ++i) { children.get(i).getExplainStringMap(detailLevel, planNodeMap); } @@ -822,4 +826,109 @@ public boolean hasSerialScanChildren() { } return children.stream().anyMatch(PlanNode::hasSerialScanChildren); } + + protected void printNestedColumns(StringBuilder output, String prefix, TupleDescriptor tupleDesc) { + boolean printNestedColumnsHeader = true; + for (SlotDescriptor slot : tupleDesc.getSlots()) { + String prunedType = null; + if (slot.getColumn() != null && !slot.getType().equals(slot.getColumn().getType())) { + prunedType = slot.getType().toString(); + } + String displayAllAccessPathsString = null; + if (slot.getDisplayAllAccessPaths() != null + && slot.getDisplayAllAccessPaths() != null + && !slot.getDisplayAllAccessPaths().isEmpty()) { + if (this instanceof IcebergScanNode) { + displayAllAccessPathsString = mergeIcebergAccessPathsWithId( + slot.getAllAccessPaths(), + slot.getDisplayAllAccessPaths() + ); + } else { + displayAllAccessPathsString = slot.getDisplayAllAccessPaths() + .stream() + .map(a -> { + if (a.type == TAccessPathType.DATA) { + return StringUtils.join(a.data_access_path.path, "."); + } else { + return StringUtils.join(a.meta_access_path.path, "."); + } + }) + .collect(Collectors.joining(", ")); + } + } + String displayPredicateAccessPathsString = null; + if (slot.getDisplayPredicateAccessPaths() != null + && slot.getDisplayPredicateAccessPaths() != null + && !slot.getDisplayPredicateAccessPaths().isEmpty()) { + if (this instanceof IcebergScanNode) { + displayPredicateAccessPathsString = mergeIcebergAccessPathsWithId( + slot.getPredicateAccessPaths(), + slot.getDisplayPredicateAccessPaths() + ); + } else { + displayPredicateAccessPathsString = slot.getPredicateAccessPaths() + .stream() + .map(a -> { + if (a.type == TAccessPathType.DATA) { + return StringUtils.join(a.data_access_path.path, "."); + } else { + return StringUtils.join(a.meta_access_path.path, "."); + } + }) + .collect(Collectors.joining(", ")); + } + } + + + if (prunedType == null + && displayAllAccessPathsString == null + && displayPredicateAccessPathsString == null) { + continue; + } + + if (printNestedColumnsHeader) { + output.append(prefix).append("nested columns:\n"); + printNestedColumnsHeader = false; + } + output.append(prefix).append(" ").append(slot.getColumn().getName()).append(":\n"); + output.append(prefix).append(" origin type: ").append(slot.getColumn().getType()).append("\n"); + if (prunedType != null) { + output.append(prefix).append(" pruned type: ").append(prunedType).append("\n"); + } + if (displayAllAccessPathsString != null) { + output.append(prefix).append(" all access paths: [") + .append(displayAllAccessPathsString).append("]\n"); + } + if (displayPredicateAccessPathsString != null) { + output.append(prefix).append(" predicate access paths: [") + .append(displayPredicateAccessPathsString).append("]\n"); + } + } + } + + private String mergeIcebergAccessPathsWithId( + List accessPaths, List displayAccessPaths) { + List mergeDisplayAccessPaths = Lists.newArrayList(); + for (int i = 0; i < displayAccessPaths.size(); i++) { + TColumnAccessPath displayAccessPath = displayAccessPaths.get(i); + TColumnAccessPath idAccessPath = accessPaths.get(i); + List nameAccessPathStrings = displayAccessPath.type == TAccessPathType.DATA + ? displayAccessPath.data_access_path.path : displayAccessPath.meta_access_path.path; + List idAccessPathStrings = idAccessPath.type == TAccessPathType.DATA + ? idAccessPath.data_access_path.path : idAccessPath.meta_access_path.path; + + List mergedPath = new ArrayList<>(); + for (int j = 0; j < idAccessPathStrings.size(); j++) { + String name = nameAccessPathStrings.get(j); + String id = idAccessPathStrings.get(j); + if (name.equals(id)) { + mergedPath.add(name); + } else { + mergedPath.add(name + "(" + id + ")"); + } + } + mergeDisplayAccessPaths.add(StringUtils.join(mergedPath, ".")); + } + return StringUtils.join(mergeDisplayAccessPaths, ", "); + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 6582abb79e53c1..dc18cc4d2b22ef 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -409,6 +409,8 @@ public class SessionVariable implements Serializable, Writable { public static final String ENABLE_RUNTIME_FILTER_PARTITION_PRUNE = "enable_runtime_filter_partition_prune"; + public static final String ENABLE_PRUNE_NESTED_COLUMN = "enable_prune_nested_column"; + static final String SESSION_CONTEXT = "session_context"; public static final String DEFAULT_ORDER_BY_LIMIT = "default_order_by_limit"; @@ -1562,6 +1564,13 @@ public enum IgnoreSplitType { varType = VariableAnnotation.EXPERIMENTAL) public int topNLazyMaterializationThreshold = 1024; + @VariableMgr.VarAttr(name = ENABLE_PRUNE_NESTED_COLUMN, needForward = true, + fuzzy = false, + varType = VariableAnnotation.EXPERIMENTAL, + description = {"是否裁剪map/struct类型", "Whether to prune the type of map/struct"} + ) + public boolean enablePruneNestedColumns = true; + public boolean enableTopnLazyMaterialization() { return ConnectContext.get() != null && ConnectContext.get().getSessionVariable().topNLazyMaterializationThreshold > 0; diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PruneNestedColumnTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PruneNestedColumnTest.java new file mode 100644 index 00000000000000..9c6674deb3df0e --- /dev/null +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PruneNestedColumnTest.java @@ -0,0 +1,652 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.doris.nereids.rules.rewrite; + +import org.apache.doris.analysis.SlotDescriptor; +import org.apache.doris.catalog.Type; +import org.apache.doris.common.Pair; +import org.apache.doris.common.Triple; +import org.apache.doris.nereids.NereidsPlanner; +import org.apache.doris.nereids.rules.RuleType; +import org.apache.doris.nereids.trees.expressions.Alias; +import org.apache.doris.nereids.trees.expressions.ArrayItemReference; +import org.apache.doris.nereids.trees.expressions.Expression; +import org.apache.doris.nereids.trees.expressions.NamedExpression; +import org.apache.doris.nereids.trees.expressions.Slot; +import org.apache.doris.nereids.trees.expressions.SlotReference; +import org.apache.doris.nereids.trees.expressions.functions.scalar.StructElement; +import org.apache.doris.nereids.trees.expressions.literal.NullLiteral; +import org.apache.doris.nereids.trees.plans.physical.PhysicalCTEConsumer; +import org.apache.doris.nereids.trees.plans.physical.PhysicalPlan; +import org.apache.doris.nereids.trees.plans.physical.PhysicalUnion; +import org.apache.doris.nereids.types.DataType; +import org.apache.doris.nereids.util.MemoPatternMatchSupported; +import org.apache.doris.nereids.util.PlanChecker; +import org.apache.doris.planner.OlapScanNode; +import org.apache.doris.planner.PlanFragment; +import org.apache.doris.thrift.TAccessPathType; +import org.apache.doris.thrift.TColumnAccessPath; +import org.apache.doris.thrift.TDataAccessPath; +import org.apache.doris.thrift.TMetaAccessPath; +import org.apache.doris.utframe.TestWithFeService; + +import com.google.common.collect.ImmutableList; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeSet; +import java.util.function.Consumer; + +public class PruneNestedColumnTest extends TestWithFeService implements MemoPatternMatchSupported { + @BeforeAll + public void createTable() throws Exception { + createDatabase("test"); + useDatabase("test"); + + createTable("create table tbl(\n" + + " id int,\n" + + " s struct<\n" + + " city: string,\n" + + " data: array\n" + + " >>\n" + + ">)\n" + + "properties ('replication_num'='1')"); + + createTable("create table tbl2(\n" + + " id2 int,\n" + + " s2 struct<\n" + + " city2: string,\n" + + " data2: array\n" + + " >>\n" + + ">)\n" + + "properties ('replication_num'='1')"); + + connectContext.getSessionVariable().setDisableNereidsRules(RuleType.PRUNE_EMPTY_PARTITION.name()); + connectContext.getSessionVariable().enableNereidsTimeout = false; + } + + @Test + public void testCaseInsensitive() throws Exception { + assertColumn("select struct_element(MAP_VALUES(struct_element(S, 'DATA')[1])[1], 'B') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "b")), + ImmutableList.of() + ); + } + + @Test + public void testMap() throws Exception { + assertColumn("select MAP_KEYS(struct_element(s, 'data')[0])[1] from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "KEYS")), + ImmutableList.of() + ); + + assertColumn("select MAP_VALUES(struct_element(s, 'data')[0])[1] from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES")), + ImmutableList.of() + ); + } + + @Test + public void testStruct() throws Throwable { + assertColumn("select struct_element(s, 1) from tbl", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + + assertColumn("select struct_element(map_values(struct_element(s, 'data')[0])[0], 1) from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a")), + ImmutableList.of() + ); + } + + @Test + public void testPruneCast() throws Exception { + assertColumn("select struct_element(cast(s as struct>>>), 'k') from tbl", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + + assertColumn("select struct_element(map_values(struct_element(cast(s as struct>>>), 'l')[0])[0], 'x') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a")), + ImmutableList.of() + ); + + assertColumns("select struct_element(s, 'city') from (select * from tbl union all select * from tbl2)t", + ImmutableList.of( + Triple.of( + "struct", + ImmutableList.of(path("s2", "city2")), + ImmutableList.of() + ), + Triple.of( + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ) + ) + ); + + assertColumns("select struct_element(s, 'city'), struct_element(map_values(struct_element(s, 'data')[0])[0], 'b') from (select * from tbl union all select * from tbl2)t", + ImmutableList.of( + Triple.of( + "struct>>>", + ImmutableList.of(path("s2", "city2"), path("s2", "data2", "*", "VALUES", "b2")), + ImmutableList.of() + ), + Triple.of( + "struct>>>", + ImmutableList.of(path("s", "city"), path("s", "data", "*", "VALUES", "b")), + ImmutableList.of() + ) + ) + ); + } + + @Test + public void testPruneArrayLambda() throws Exception { + // map_values(struct_element(s, 'data').*)[0].a + assertColumn("select struct_element(array_map(x -> map_values(x)[0], struct_element(s, 'data'))[0], 'a') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a")), + ImmutableList.of() + ); + + assertColumn("select array_map((x, y) -> struct_element(map_values(x)[0], 'a') + struct_element(map_values(y)[0], 'b'), struct_element(s, 'data'), struct_element(s, 'data')) from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a"), path("s", "data", "*", "VALUES", "b")), + ImmutableList.of() + ); + } + + @Test + public void testProject() throws Exception { + assertColumn("select 100 from tbl", null, null, null); + assertColumn("select * from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select tbl.* from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select test.tbl.* from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select internal.test.tbl.* from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select s from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select struct_element(s, 'city'), s from tbl", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of() + ); + assertColumn("select struct_element(s, 'city') from tbl", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + assertColumn("select struct_element(s, 'data') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data")), + ImmutableList.of() + ); + assertColumn("select struct_element(s, 'data')[1] from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*")), + ImmutableList.of() + ); + assertColumn("select map_keys(struct_element(s, 'data')[1]) from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "KEYS")), + ImmutableList.of() + ); + assertColumn("select map_values(struct_element(s, 'data')[1]) from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES")), + ImmutableList.of() + ); + assertColumn("select struct_element(map_values(struct_element(s, 'data')[1])[1], 'a') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a")), + ImmutableList.of() + ); + assertColumn("select struct_element(s, 'data')[1][1] from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*")), + ImmutableList.of() + ); + assertColumn("select struct_element(struct_element(s, 'data')[1][1], 'a') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*", "a")), + ImmutableList.of() + ); + assertColumn("select struct_element(struct_element(s, 'data')[1][1], 'b') from tbl", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*", "b")), + ImmutableList.of() + ); + } + + @Test + public void testFilter() throws Throwable { + assertColumn("select 100 from tbl where s is not null", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of(path("s")) + ); + + assertColumn("select 100 from tbl where if(id = 1, null, s) is not null or struct_element(s, 'city') = 'beijing'", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of(path("s")) + ); + + assertColumn("select 100 from tbl where struct_element(s, 'city') is not null", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of(path("s", "city")) + ); + + assertColumn("select 100 from tbl where struct_element(s, 'data') is not null", + "struct>>>", + ImmutableList.of(path("s", "data")), + ImmutableList.of(path("s", "data")) + ); + assertColumn("select 100 from tbl where struct_element(s, 'data')[1] is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*")), + ImmutableList.of(path("s", "data", "*")) + ); + assertColumn("select 100 from tbl where map_keys(struct_element(s, 'data')[1]) is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "KEYS")), + ImmutableList.of(path("s", "data", "*", "KEYS")) + ); + assertColumn("select 100 from tbl where map_values(struct_element(s, 'data')[1]) is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES")), + ImmutableList.of(path("s", "data", "*", "VALUES")) + ); + assertColumn("select 100 from tbl where struct_element(map_values(struct_element(s, 'data')[1])[1], 'a') is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "VALUES", "a")), + ImmutableList.of(path("s", "data", "*", "VALUES", "a")) + ); + assertColumn("select 100 from tbl where struct_element(s, 'data')[1][1] is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*")), + ImmutableList.of(path("s", "data", "*", "*")) + ); + assertColumn("select 100 from tbl where struct_element(struct_element(s, 'data')[1][1], 'a') is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*", "a")), + ImmutableList.of(path("s", "data", "*", "*", "a")) + ); + assertColumn("select 100 from tbl where struct_element(struct_element(s, 'data')[1][1], 'b') is not null", + "struct>>>", + ImmutableList.of(path("s", "data", "*", "*", "b")), + ImmutableList.of(path("s", "data", "*", "*", "b")) + ); + } + + @Test + public void testProjectFilter() throws Throwable { + assertColumn("select s from tbl where struct_element(s, 'city') is not null", + "struct>>>", + ImmutableList.of(path("s")), + ImmutableList.of(path("s", "city")) + ); + + assertColumn("select struct_element(s, 'data') from tbl where struct_element(s, 'city') is not null", + "struct>>>", + ImmutableList.of(path("s", "data"), path("s", "city")), + ImmutableList.of(path("s", "city")) + ); + + assertColumn("select struct_element(s, 'data') from tbl where struct_element(s, 'city') is not null and struct_element(s, 'data') is not null", + "struct>>>", + ImmutableList.of(path("s", "data"), path("s", "city")), + ImmutableList.of(path("s", "data"), path("s", "city")) + ); + } + + @Test + public void testCte() throws Throwable { + assertColumn("with t as (select id, s from tbl) select struct_element(t1.s, 'city') from t t1 join t t2 on t1.id = t2.id", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + + assertColumn("with t as (select id, struct_element(s, 'city') as c from tbl) select t1.c from t t1 join t t2 on t1.id = t2.id", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + } + + @Test + public void testUnion() throws Throwable { + assertColumn("select struct_element(s, 'city') from (select s from tbl union all select null)a", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + + assertColumn("select * from (select struct_element(s, 'city') from tbl union all select null)a", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + } + + @Test + public void testCteAndUnion() throws Throwable { + assertColumn("with t as (select id, s from tbl) select struct_element(s, 'city') from (select * from t union all select 1, null) tmp", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + + assertColumn("with t as (select id, s from tbl) select * from (select struct_element(s, 'city') from t union all select null) tmp", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + } + + @Test + public void testPushDownThroughJoin() { + PlanChecker.from(connectContext) + .analyze("select struct_element(s, 'city') from (select * from tbl)a join (select 100 id, 'f1' name)b on a.id=b.id") + .rewrite() + .matches( + logicalResultSink( + logicalProject( + logicalJoin( + logicalProject( + logicalFilter( + logicalOlapScan() + ) + ).when(p -> { + Assertions.assertEquals(2, p.getProjects().size()); + Assertions.assertTrue(p.getProjects().stream() + .anyMatch(o -> o instanceof Alias && o.child(0) instanceof StructElement)); + return true; + }), + logicalOneRowRelation() + ) + ).when(p -> { + Assertions.assertTrue(p.getProjects().size() == 1 && p.getProjects().get(0) instanceof SlotReference); + return true; + }) + ) + ); + } + + @Test + public void testAggregate() throws Exception { + assertColumn("select count(struct_element(s, 'city')) from tbl", + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ); + } + + @Test + public void testJoin() throws Exception { + assertColumns("select 100 from tbl t1 join tbl t2 on struct_element(t1.s, 'city')=struct_element(t2.s, 'city')", + ImmutableList.of( + Triple.of( + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ), + Triple.of( + "struct", + ImmutableList.of(path("s", "city")), + ImmutableList.of() + ) + ) + ); + } + + @Test + public void testPushDownThroughWindow() { + PlanChecker.from(connectContext) + .analyze("select struct_element(s, 'city'), r from (select s, rank() over(partition by id) r from tbl t)a") + .rewrite() + .matches( + logicalResultSink( + logicalProject( + logicalWindow( + logicalProject( + logicalOlapScan() + ).when(p -> { + Assertions.assertEquals(2, p.getProjects().size()); + Assertions.assertTrue(p.getProjects().stream() + .anyMatch(o -> o instanceof Alias && o.child(0) instanceof StructElement)); + return true; + }) + ) + ).when(p -> { + Assertions.assertTrue(p.getProjects().size() == 2 && p.getProjects().get(0) instanceof SlotReference); + return true; + }) + ) + ); + } + + @Test + public void testPushDownThroughPartitionTopN() { + PlanChecker.from(connectContext) + .analyze("select struct_element(s, 'city'), r from (select s, rank() over(partition by id) r from tbl t limit 10)a") + .rewrite() + .matches( + logicalResultSink( + logicalLimit( + logicalLimit( + logicalProject( + logicalWindow( + logicalPartitionTopN( + logicalProject( + logicalOlapScan() + ).when(p -> { + Assertions.assertEquals(2, p.getProjects().size()); + Assertions.assertTrue(p.getProjects().stream() + .anyMatch(o -> o instanceof Alias && o.child(0) instanceof StructElement)); + return true; + }) + ) + ) + ).when(p -> { + Assertions.assertTrue(p.getProjects().size() == 2 && p.getProjects().get(0) instanceof SlotReference); + return true; + }) + ) + ) + ) + ); + } + + @Test + public void testPushDownThroughUnion() { + PlanChecker.from(connectContext) + .analyze("select struct_element(s, 'city') from (select id, s from tbl union all select 1, null) tmp") + .rewrite() + .matches( + logicalResultSink( + logicalUnion( + logicalProject( + logicalOlapScan() + ).when(p -> { + Assertions.assertEquals(1, p.getProjects().size()); + Assertions.assertInstanceOf(StructElement.class, p.getProjects().get(0).child(0)); + return true; + }) + ).when(u -> { + Assertions.assertEquals(1, u.getConstantExprsList().size()); + Assertions.assertInstanceOf(NullLiteral.class, u.getConstantExprsList().get(0).get(0).child(0)); + return true; + }) + ) + ); + } + + private void assertColumn(String sql, String expectType, + List expectAllAccessPaths, + List expectPredicateAccessPaths) throws Exception { + assertColumns(sql, expectType == null ? null : ImmutableList.of(Triple.of(expectType, expectAllAccessPaths, expectPredicateAccessPaths))); + } + + private void assertColumns(String sql, + List, List>> expectResults) throws Exception { + Pair> result = collectComplexSlots(sql); + PhysicalPlan physicalPlan = result.first; + List slotDescriptors = result.second; + if (expectResults == null) { + Assertions.assertEquals(0, slotDescriptors.size()); + return; + } + + Assertions.assertEquals(expectResults.size(), slotDescriptors.size()); + int slotIndex = 0; + for (Triple, List> expectResult : expectResults) { + String expectType = expectResult.left; + List expectAllAccessPaths = expectResult.middle; + List expectPredicateAccessPaths = expectResult.right; + SlotDescriptor slotDescriptor = slotDescriptors.get(slotIndex++); + Assertions.assertEquals(expectType, slotDescriptor.getType().toString()); + + TreeSet expectAllAccessPathSet = new TreeSet<>(expectAllAccessPaths); + TreeSet actualAllAccessPaths + = new TreeSet<>(slotDescriptor.getAllAccessPaths()); + Assertions.assertEquals(expectAllAccessPathSet, actualAllAccessPaths); + + TreeSet expectPredicateAccessPathSet = new TreeSet<>(expectPredicateAccessPaths); + TreeSet actualPredicateAccessPaths + = new TreeSet<>(slotDescriptor.getPredicateAccessPaths()); + Assertions.assertEquals(expectPredicateAccessPathSet, actualPredicateAccessPaths); + + Map slotIdToDataTypes = new LinkedHashMap<>(); + Consumer assertHasSameType = e -> { + if (e instanceof NamedExpression) { + DataType dataType = slotIdToDataTypes.get(((NamedExpression) e).getExprId().asInt()); + if (dataType != null) { + Assertions.assertEquals(dataType, e.getDataType()); + } else { + slotIdToDataTypes.put(((NamedExpression) e).getExprId().asInt(), e.getDataType()); + } + } + }; + + // assert same slot id has same type + physicalPlan.foreachUp(plan -> { + List expressions = ((PhysicalPlan) plan).getExpressions(); + for (Expression expression : expressions) { + expression.foreach(e -> { + assertHasSameType.accept((Expression) e); + if (e instanceof Alias && e.child(0) instanceof Slot) { + assertHasSameType.accept((Alias) e); + } else if (e instanceof ArrayItemReference) { + assertHasSameType.accept((ArrayItemReference) e); + } + }); + } + + if (plan instanceof PhysicalCTEConsumer) { + for (Entry> kv : ((PhysicalCTEConsumer) plan).getProducerToConsumerSlotMap() + .asMap().entrySet()) { + Slot producerSlot = kv.getKey(); + for (Slot consumerSlot : kv.getValue()) { + Assertions.assertEquals(producerSlot.getDataType(), consumerSlot.getDataType()); + } + } + } else if (plan instanceof PhysicalUnion) { + List output = ((PhysicalUnion) plan).getOutput(); + for (List regularChildrenOutput : ((PhysicalUnion) plan).getRegularChildrenOutputs()) { + Assertions.assertEquals(output.size(), regularChildrenOutput.size()); + for (int i = 0; i < output.size(); i++) { + Assertions.assertEquals(output.get(i).getDataType(), regularChildrenOutput.get(i).getDataType()); + } + } + } + }); + } + } + + private Pair> collectComplexSlots(String sql) throws Exception { + NereidsPlanner planner = (NereidsPlanner) executeNereidsSql(sql).planner(); + List complexSlots = new ArrayList<>(); + PhysicalPlan physicalPlan = planner.getPhysicalPlan(); + for (PlanFragment fragment : planner.getFragments()) { + List olapScanNodes = fragment.getPlanRoot().collectInCurrentFragment(OlapScanNode.class::isInstance); + for (OlapScanNode olapScanNode : olapScanNodes) { + List slots = olapScanNode.getTupleDesc().getSlots(); + for (SlotDescriptor slot : slots) { + Type type = slot.getType(); + if (type.isComplexType() || type.isVariantType()) { + complexSlots.add(slot); + } + } + } + } + return Pair.of(physicalPlan, complexSlots); + } + + private TColumnAccessPath path(String... path) { + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.DATA); + accessPath.data_access_path = new TDataAccessPath(ImmutableList.copyOf(path)); + return accessPath; + } + + private TColumnAccessPath metaPath(String... path) { + TColumnAccessPath accessPath = new TColumnAccessPath(TAccessPathType.META); + accessPath.meta_access_path = new TMetaAccessPath(ImmutableList.copyOf(path)); + return accessPath; + } +} diff --git a/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java b/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java index fae9de25205aa1..55d8e70d50d4c4 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java +++ b/fe/fe-core/src/test/java/org/apache/doris/utframe/TestWithFeService.java @@ -559,8 +559,8 @@ public StmtExecutor getSqlStmtExecutor(String queryStr) throws Exception { && connectContext.getState().getErrorCode() == null) { return stmtExecutor; } else { - // throw new IllegalStateException(connectContext.getState().getErrorMessage()); - return null; + throw new IllegalStateException(connectContext.getState().getErrorMessage()); + // return null; } } diff --git a/gensrc/proto/descriptors.proto b/gensrc/proto/descriptors.proto index 31008c9072545b..f764e90c771f4c 100644 --- a/gensrc/proto/descriptors.proto +++ b/gensrc/proto/descriptors.proto @@ -23,6 +23,49 @@ option java_package = "org.apache.doris.proto"; import "types.proto"; import "olap_file.proto"; +message PDataAccessPath { + // the specification of special path: + // : access the whole complex column + // *: + // 1. access every items when the type is array + // 2. access key and value when the type is map + // KEYS: only access the keys of map + // VALUES: only access the keys of map + // + // example: + // s: struct< + // data: array< + // map< + // int, + // struct< + // a: id + // b: double + // > + // > + // > + // > + // if we want to access `map_keys(s.data[0])`, the path will be: ['s', 'data', '*', 'KEYS'], + // if we want to access `map_values(s.data[0])[0].b`, the path will be: ['s', 'data', '*', 'VALUES', 'b'], + // if we want to access `s.data[0]['k'].b`, the path will be ['s', 'data', '*', '*', 'b'] + // if we want to access the whole struct of s, the path will be: ['s'], + repeated string path = 1; +} + +message PMetaAccessPath { + repeated string path = 1; +} + +enum PAccessPathType { + DATA = 1; + META = 2; // use to prune `where s.data is not null` by only scan the meta of s.data +} + +message PColumnAccessPath { + required PAccessPathType type = 1; + optional PDataAccessPath data_access_path = 2; + optional PMetaAccessPath meta_access_path = 3; +} + message PSlotDescriptor { required int32 id = 1; required int32 parent = 2; // tuple id which this slot is belong to @@ -39,6 +82,8 @@ message PSlotDescriptor { optional bool is_auto_increment = 13; optional int32 col_type = 14 [default = 0]; repeated string column_paths = 15; + repeated PColumnAccessPath all_access_paths = 16; + repeated PColumnAccessPath predicate_access_paths = 17; }; message PTupleDescriptor { diff --git a/gensrc/thrift/Descriptors.thrift b/gensrc/thrift/Descriptors.thrift index 4011009887c2d5..8ff1d41c260e78 100644 --- a/gensrc/thrift/Descriptors.thrift +++ b/gensrc/thrift/Descriptors.thrift @@ -27,6 +27,49 @@ enum TPatternType { MATCH_NAME_GLOB = 2 } +enum TAccessPathType { + DATA = 1, + META = 2 // use to prune `where s.data is not null` by only scan the meta of s.data +} + +struct TDataAccessPath { + // the specification of special path: + // : access the whole complex column + // *: + // 1. access every items when the type is array + // 2. access key and value when the type is map + // KEYS: only access the keys of map + // VALUES: only access the keys of map + // + // example: + // s: struct< + // data: array< + // map< + // int, + // struct< + // a: id + // b: double + // > + // > + // > + // > + // if we want to access `map_keys(s.data[0])`, the path will be: ['s', 'data', '*', 'KEYS'], + // if we want to access `map_values(s.data[0])[0].b`, the path will be: ['s', 'data', '*', 'VALUES', 'b'], + // if we want to access `s.data[0]['k'].b`, the path will be ['s', 'data', '*', '*', 'b'] + // if we want to access the whole struct of s, the path will be: ['s'], + 1: required list path +} + +struct TMetaAccessPath { + 1: required list path +} + +struct TColumnAccessPath { + 1: required TAccessPathType type + 2: optional TDataAccessPath data_access_path + 3: optional TMetaAccessPath meta_access_path +} + struct TColumn { 1: required string column_name 2: required Types.TColumnType column_type @@ -69,14 +112,17 @@ struct TSlotDescriptor { 11: optional i32 col_unique_id = -1 12: optional bool is_key = false // If set to false, then such slots will be ignored during - // materialize them.Used to optmize to read less data and less memory usage + // materialize them.Used to optimize to read less data and less memory usage 13: optional bool need_materialize = true 14: optional bool is_auto_increment = false; // subcolumn path info list for semi structure column(variant) + // deprecated: will be replaced to column_access_paths 15: optional list column_paths 16: optional string col_default_value 17: optional Types.TPrimitiveType primitive_type = Types.TPrimitiveType.INVALID_TYPE 18: optional Exprs.TExpr virtual_column_expr + 19: optional list all_access_paths + 20: optional list predicate_access_paths } struct TTupleDescriptor { diff --git a/regression-test/data/datatype_p0/complex_types/test_pruned_columns.out b/regression-test/data/datatype_p0/complex_types/test_pruned_columns.out new file mode 100644 index 00000000000000..870a576307486f --- /dev/null +++ b/regression-test/data/datatype_p0/complex_types/test_pruned_columns.out @@ -0,0 +1,31 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !sql -- +1 {"city":"beijing", "data":[{1:{"a":10, "b":20}, 2:{"a":30, "b":40}}]} +2 {"city":"shanghai", "data":[{2:{"a":50, "b":40}, 1:{"a":70, "b":80}}]} + +-- !sql1 -- +1 [10] + +-- !sql2 -- +1 beijing +2 shanghai + +-- !sql3 -- +1 [{1:{"a":10, "b":20}, 2:{"a":30, "b":40}}] +2 [{2:{"a":50, "b":40}, 1:{"a":70, "b":80}}] + +-- !sql4 -- +1 [{1:{"a":10, "b":20}, 2:{"a":30, "b":40}}] +2 [{2:{"a":50, "b":40}, 1:{"a":70, "b":80}}] + +-- !sql5 -- +1 beijing +2 shanghai + +-- !sql6 -- +2 + +-- !sql7 -- +0.41 +0.99 + diff --git a/regression-test/data/nereids_arith_p0/decimal.out b/regression-test/data/nereids_arith_p0/decimal.out index 8be58f2ff1bc27..b4ec4e72980614 100644 --- a/regression-test/data/nereids_arith_p0/decimal.out +++ b/regression-test/data/nereids_arith_p0/decimal.out @@ -1,109 +1,109 @@ -- This file is automatically generated. You should know what you did if you want to edit this -- !sql_test_Float_TinyInt_0 -- \N \N \N -1 1.1000000014901161 -0.8999999985098839 -2 2.2000000029802322 -1.7999999970197678 +1 1.100000001490116 -0.8999999985098839 +2 2.200000002980232 -1.799999997019768 3 3.300000011920929 -2.699999988079071 -4 4.4000000059604645 -3.5999999940395355 +4 4.400000005960464 -3.599999994039536 5 5.5 -4.5 6 6.600000023841858 -5.399999976158142 7 7.699999988079071 -6.300000011920929 8 8.800000011920929 -7.199999988079071 9 9.899999976158142 -8.100000023841858 -10 11.0 -9.0 -11 12.100000023841858 -9.899999976158142 -12 13.200000047683716 -10.799999952316284 -13 1.1000000014901161 -0.8999999985098839 -14 2.2000000029802322 -1.7999999970197678 +10 11 -9 +11 12.10000002384186 -9.899999976158142 +12 13.20000004768372 -10.79999995231628 +13 1.100000001490116 -0.8999999985098839 +14 2.200000002980232 -1.799999997019768 15 3.300000011920929 -2.699999988079071 -16 4.4000000059604645 -3.5999999940395355 +16 4.400000005960464 -3.599999994039536 17 5.5 -4.5 18 6.600000023841858 -5.399999976158142 19 7.699999988079071 -6.300000011920929 20 8.800000011920929 -7.199999988079071 21 9.899999976158142 -8.100000023841858 -22 11.0 -9.0 -23 12.100000023841858 -9.899999976158142 -24 13.200000047683716 -10.799999952316284 +22 11 -9 +23 12.10000002384186 -9.899999976158142 +24 13.20000004768372 -10.79999995231628 -- !sql_test_Float_TinyInt_notn_0 -- -1 1.1000000014901161 -0.8999999985098839 -2 2.2000000029802322 -1.7999999970197678 +1 1.100000001490116 -0.8999999985098839 +2 2.200000002980232 -1.799999997019768 3 3.300000011920929 -2.699999988079071 -4 4.4000000059604645 -3.5999999940395355 +4 4.400000005960464 -3.599999994039536 5 5.5 -4.5 6 6.600000023841858 -5.399999976158142 7 7.699999988079071 -6.300000011920929 8 8.800000011920929 -7.199999988079071 9 9.899999976158142 -8.100000023841858 -10 11.0 -9.0 -11 12.100000023841858 -9.899999976158142 -12 13.200000047683716 -10.799999952316284 -13 1.1000000014901161 -0.8999999985098839 -14 2.2000000029802322 -1.7999999970197678 +10 11 -9 +11 12.10000002384186 -9.899999976158142 +12 13.20000004768372 -10.79999995231628 +13 1.100000001490116 -0.8999999985098839 +14 2.200000002980232 -1.799999997019768 15 3.300000011920929 -2.699999988079071 -16 4.4000000059604645 -3.5999999940395355 +16 4.400000005960464 -3.599999994039536 17 5.5 -4.5 18 6.600000023841858 -5.399999976158142 19 7.699999988079071 -6.300000011920929 20 8.800000011920929 -7.199999988079071 21 9.899999976158142 -8.100000023841858 -22 11.0 -9.0 -23 12.100000023841858 -9.899999976158142 -24 13.200000047683716 -10.799999952316284 +22 11 -9 +23 12.10000002384186 -9.899999976158142 +24 13.20000004768372 -10.79999995231628 -- !sql_test_Float_TinyInt_1 -- \N \N \N \N -1 0.10000000149011612 0.10000000149011612 0.1 -2 0.4000000059604645 0.10000000149011612 0.2 -3 0.9000000357627869 0.10000000397364299 0.3 -4 1.600000023841858 0.10000000149011612 0.4 +1 0.1000000014901161 0.1000000014901161 0.1000000014901161 +2 0.4000000059604645 0.1000000014901161 0.2000000029802322 +3 0.9000000357627869 0.100000003973643 0.300000011920929 +4 1.600000023841858 0.1000000014901161 0.4000000059604645 5 2.5 0.1 0.5 -6 3.6000001430511475 0.10000000397364299 0.6 -7 4.899999916553497 0.09999999829701015 0.7 -8 6.400000095367432 0.10000000149011612 0.8 -9 8.099999785423279 0.09999999735090467 0.9 -10 10.0 0.1 1.0 -11 12.100000262260437 0.10000000216744163 1.1 -12 14.40000057220459 0.10000000397364299 1.2 -13 0.10000000149011612 0.10000000149011612 0.1 -14 0.4000000059604645 0.10000000149011612 0.2 -15 0.9000000357627869 0.10000000397364299 0.3 -16 1.600000023841858 0.10000000149011612 0.4 +6 3.600000143051147 0.100000003973643 0.6000000238418579 +7 4.899999916553497 0.09999999829701015 0.699999988079071 +8 6.400000095367432 0.1000000014901161 0.800000011920929 +9 8.099999785423279 0.09999999735090467 0.8999999761581421 +10 10 0.1 1 +11 12.10000026226044 0.1000000021674416 1.100000023841858 +12 14.40000057220459 0.100000003973643 1.200000047683716 +13 0.1000000014901161 0.1000000014901161 0.1000000014901161 +14 0.4000000059604645 0.1000000014901161 0.2000000029802322 +15 0.9000000357627869 0.100000003973643 0.300000011920929 +16 1.600000023841858 0.1000000014901161 0.4000000059604645 17 2.5 0.1 0.5 -18 3.6000001430511475 0.10000000397364299 0.6 -19 4.899999916553497 0.09999999829701015 0.7 -20 6.400000095367432 0.10000000149011612 0.8 -21 8.099999785423279 0.09999999735090467 0.9 -22 10.0 0.1 1.0 -23 12.100000262260437 0.10000000216744163 1.1 -24 14.40000057220459 0.10000000397364299 1.2 +18 3.600000143051147 0.100000003973643 0.6000000238418579 +19 4.899999916553497 0.09999999829701015 0.699999988079071 +20 6.400000095367432 0.1000000014901161 0.800000011920929 +21 8.099999785423279 0.09999999735090467 0.8999999761581421 +22 10 0.1 1 +23 12.10000026226044 0.1000000021674416 1.100000023841858 +24 14.40000057220459 0.100000003973643 1.200000047683716 -- !sql_test_Float_TinyInt_notn_1 -- -1 0.10000000149011612 0.10000000149011612 0.1 -2 0.4000000059604645 0.10000000149011612 0.2 -3 0.9000000357627869 0.10000000397364299 0.3 -4 1.600000023841858 0.10000000149011612 0.4 +1 0.1000000014901161 0.1000000014901161 0.1000000014901161 +2 0.4000000059604645 0.1000000014901161 0.2000000029802322 +3 0.9000000357627869 0.100000003973643 0.300000011920929 +4 1.600000023841858 0.1000000014901161 0.4000000059604645 5 2.5 0.1 0.5 -6 3.6000001430511475 0.10000000397364299 0.6 -7 4.899999916553497 0.09999999829701015 0.7 -8 6.400000095367432 0.10000000149011612 0.8 -9 8.099999785423279 0.09999999735090467 0.9 -10 10.0 0.1 1.0 -11 12.100000262260437 0.10000000216744163 1.1 -12 14.40000057220459 0.10000000397364299 1.2 -13 0.10000000149011612 0.10000000149011612 0.1 -14 0.4000000059604645 0.10000000149011612 0.2 -15 0.9000000357627869 0.10000000397364299 0.3 -16 1.600000023841858 0.10000000149011612 0.4 +6 3.600000143051147 0.100000003973643 0.6000000238418579 +7 4.899999916553497 0.09999999829701015 0.699999988079071 +8 6.400000095367432 0.1000000014901161 0.800000011920929 +9 8.099999785423279 0.09999999735090467 0.8999999761581421 +10 10 0.1 1 +11 12.10000026226044 0.1000000021674416 1.100000023841858 +12 14.40000057220459 0.100000003973643 1.200000047683716 +13 0.1000000014901161 0.1000000014901161 0.1000000014901161 +14 0.4000000059604645 0.1000000014901161 0.2000000029802322 +15 0.9000000357627869 0.100000003973643 0.300000011920929 +16 1.600000023841858 0.1000000014901161 0.4000000059604645 17 2.5 0.1 0.5 -18 3.6000001430511475 0.10000000397364299 0.6 -19 4.899999916553497 0.09999999829701015 0.7 -20 6.400000095367432 0.10000000149011612 0.8 -21 8.099999785423279 0.09999999735090467 0.9 -22 10.0 0.1 1.0 -23 12.100000262260437 0.10000000216744163 1.1 -24 14.40000057220459 0.10000000397364299 1.2 +18 3.600000143051147 0.100000003973643 0.6000000238418579 +19 4.899999916553497 0.09999999829701015 0.699999988079071 +20 6.400000095367432 0.1000000014901161 0.800000011920929 +21 8.099999785423279 0.09999999735090467 0.8999999761581421 +22 10 0.1 1 +23 12.10000026226044 0.1000000021674416 1.100000023841858 +24 14.40000057220459 0.100000003973643 1.200000047683716 -- !sql_test_Float_TinyInt_2 -- \N \N @@ -266,109 +266,109 @@ -- !sql_test_Float_SmallInt_0 -- \N \N \N -1 10.100000001490116 -9.899999998509884 -2 20.200000002980232 -19.799999997019768 +1 10.10000000149012 -9.899999998509884 +2 20.20000000298023 -19.79999999701977 3 40.30000001192093 -39.69999998807907 4 80.40000000596046 -79.59999999403954 5 160.5 -159.5 -6 320.60000002384186 -319.39999997615814 +6 320.6000000238419 -319.3999999761581 7 640.6999999880791 -639.3000000119209 8 1280.800000011921 -1279.199999988079 9 2560.899999976158 -2559.100000023842 -10 5121.0 -5119.0 -11 10241.100000023842 -10238.899999976158 -12 20481.200000047684 -20478.799999952316 -13 10.100000001490116 -9.899999998509884 -14 20.200000002980232 -19.799999997019768 +10 5121 -5119 +11 10241.10000002384 -10238.89999997616 +12 20481.20000004768 -20478.79999995232 +13 10.10000000149012 -9.899999998509884 +14 20.20000000298023 -19.79999999701977 15 40.30000001192093 -39.69999998807907 16 80.40000000596046 -79.59999999403954 17 160.5 -159.5 -18 320.60000002384186 -319.39999997615814 +18 320.6000000238419 -319.3999999761581 19 640.6999999880791 -639.3000000119209 20 1280.800000011921 -1279.199999988079 21 2560.899999976158 -2559.100000023842 -22 5121.0 -5119.0 -23 10241.100000023842 -10238.899999976158 -24 20481.200000047684 -20478.799999952316 +22 5121 -5119 +23 10241.10000002384 -10238.89999997616 +24 20481.20000004768 -20478.79999995232 -- !sql_test_Float_SmallInt_notn_0 -- -1 10.100000001490116 -9.899999998509884 -2 20.200000002980232 -19.799999997019768 +1 10.10000000149012 -9.899999998509884 +2 20.20000000298023 -19.79999999701977 3 40.30000001192093 -39.69999998807907 4 80.40000000596046 -79.59999999403954 5 160.5 -159.5 -6 320.60000002384186 -319.39999997615814 +6 320.6000000238419 -319.3999999761581 7 640.6999999880791 -639.3000000119209 8 1280.800000011921 -1279.199999988079 9 2560.899999976158 -2559.100000023842 -10 5121.0 -5119.0 -11 10241.100000023842 -10238.899999976158 -12 20481.200000047684 -20478.799999952316 -13 10.100000001490116 -9.899999998509884 -14 20.200000002980232 -19.799999997019768 +10 5121 -5119 +11 10241.10000002384 -10238.89999997616 +12 20481.20000004768 -20478.79999995232 +13 10.10000000149012 -9.899999998509884 +14 20.20000000298023 -19.79999999701977 15 40.30000001192093 -39.69999998807907 16 80.40000000596046 -79.59999999403954 17 160.5 -159.5 -18 320.60000002384186 -319.39999997615814 +18 320.6000000238419 -319.3999999761581 19 640.6999999880791 -639.3000000119209 20 1280.800000011921 -1279.199999988079 21 2560.899999976158 -2559.100000023842 -22 5121.0 -5119.0 -23 10241.100000023842 -10238.899999976158 -24 20481.200000047684 -20478.799999952316 +22 5121 -5119 +23 10241.10000002384 -10238.89999997616 +24 20481.20000004768 -20478.79999995232 -- !sql_test_Float_SmallInt_1 -- \N \N \N \N -1 1.0000000149011612 0.010000000149011612 0.1 -2 4.000000059604645 0.010000000149011612 0.2 -3 12.000000476837158 0.007500000298023224 0.3 -4 32.00000047683716 0.005000000074505806 0.4 -5 80.0 0.003125 0.5 -6 192.00000762939453 0.001875000074505806 0.6 -7 447.99999237060547 0.0010937499813735486 0.7 -8 1024.000015258789 6.250000093132258E-4 0.8 -9 2303.9999389648438 3.5156249068677423E-4 0.9 -10 5120.0 1.953125E-4 1.0 -11 11264.000244140625 1.0742187732830644E-4 1.1 -12 24576.0009765625 5.8593752328306437E-5 1.2 -13 1.0000000149011612 0.010000000149011612 0.1 -14 4.000000059604645 0.010000000149011612 0.2 -15 12.000000476837158 0.007500000298023224 0.3 -16 32.00000047683716 0.005000000074505806 0.4 -17 80.0 0.003125 0.5 -18 192.00000762939453 0.001875000074505806 0.6 -19 447.99999237060547 0.0010937499813735486 0.7 -20 1024.000015258789 6.250000093132258E-4 0.8 -21 2303.9999389648438 3.5156249068677423E-4 0.9 -22 5120.0 1.953125E-4 1.0 -23 11264.000244140625 1.0742187732830644E-4 1.1 -24 24576.0009765625 5.8593752328306437E-5 1.2 +1 1.000000014901161 0.01000000014901161 0.1000000014901161 +2 4.000000059604645 0.01000000014901161 0.2000000029802322 +3 12.00000047683716 0.007500000298023224 0.300000011920929 +4 32.00000047683716 0.005000000074505806 0.4000000059604645 +5 80 0.003125 0.5 +6 192.0000076293945 0.001875000074505806 0.6000000238418579 +7 447.9999923706055 0.001093749981373549 0.699999988079071 +8 1024.000015258789 0.0006250000093132258 0.800000011920929 +9 2303.999938964844 0.0003515624906867742 0.8999999761581421 +10 5120 0.0001953125 1 +11 11264.00024414062 0.0001074218773283064 1.100000023841858 +12 24576.0009765625 5.859375232830644e-05 1.200000047683716 +13 1.000000014901161 0.01000000014901161 0.1000000014901161 +14 4.000000059604645 0.01000000014901161 0.2000000029802322 +15 12.00000047683716 0.007500000298023224 0.300000011920929 +16 32.00000047683716 0.005000000074505806 0.4000000059604645 +17 80 0.003125 0.5 +18 192.0000076293945 0.001875000074505806 0.6000000238418579 +19 447.9999923706055 0.001093749981373549 0.699999988079071 +20 1024.000015258789 0.0006250000093132258 0.800000011920929 +21 2303.999938964844 0.0003515624906867742 0.8999999761581421 +22 5120 0.0001953125 1 +23 11264.00024414062 0.0001074218773283064 1.100000023841858 +24 24576.0009765625 5.859375232830644e-05 1.200000047683716 -- !sql_test_Float_SmallInt_notn_1 -- -1 1.0000000149011612 0.010000000149011612 0.1 -2 4.000000059604645 0.010000000149011612 0.2 -3 12.000000476837158 0.007500000298023224 0.3 -4 32.00000047683716 0.005000000074505806 0.4 -5 80.0 0.003125 0.5 -6 192.00000762939453 0.001875000074505806 0.6 -7 447.99999237060547 0.0010937499813735486 0.7 -8 1024.000015258789 6.250000093132258E-4 0.8 -9 2303.9999389648438 3.5156249068677423E-4 0.9 -10 5120.0 1.953125E-4 1.0 -11 11264.000244140625 1.0742187732830644E-4 1.1 -12 24576.0009765625 5.8593752328306437E-5 1.2 -13 1.0000000149011612 0.010000000149011612 0.1 -14 4.000000059604645 0.010000000149011612 0.2 -15 12.000000476837158 0.007500000298023224 0.3 -16 32.00000047683716 0.005000000074505806 0.4 -17 80.0 0.003125 0.5 -18 192.00000762939453 0.001875000074505806 0.6 -19 447.99999237060547 0.0010937499813735486 0.7 -20 1024.000015258789 6.250000093132258E-4 0.8 -21 2303.9999389648438 3.5156249068677423E-4 0.9 -22 5120.0 1.953125E-4 1.0 -23 11264.000244140625 1.0742187732830644E-4 1.1 -24 24576.0009765625 5.8593752328306437E-5 1.2 +1 1.000000014901161 0.01000000014901161 0.1000000014901161 +2 4.000000059604645 0.01000000014901161 0.2000000029802322 +3 12.00000047683716 0.007500000298023224 0.300000011920929 +4 32.00000047683716 0.005000000074505806 0.4000000059604645 +5 80 0.003125 0.5 +6 192.0000076293945 0.001875000074505806 0.6000000238418579 +7 447.9999923706055 0.001093749981373549 0.699999988079071 +8 1024.000015258789 0.0006250000093132258 0.800000011920929 +9 2303.999938964844 0.0003515624906867742 0.8999999761581421 +10 5120 0.0001953125 1 +11 11264.00024414062 0.0001074218773283064 1.100000023841858 +12 24576.0009765625 5.859375232830644e-05 1.200000047683716 +13 1.000000014901161 0.01000000014901161 0.1000000014901161 +14 4.000000059604645 0.01000000014901161 0.2000000029802322 +15 12.00000047683716 0.007500000298023224 0.300000011920929 +16 32.00000047683716 0.005000000074505806 0.4000000059604645 +17 80 0.003125 0.5 +18 192.0000076293945 0.001875000074505806 0.6000000238418579 +19 447.9999923706055 0.001093749981373549 0.699999988079071 +20 1024.000015258789 0.0006250000093132258 0.800000011920929 +21 2303.999938964844 0.0003515624906867742 0.8999999761581421 +22 5120 0.0001953125 1 +23 11264.00024414062 0.0001074218773283064 1.100000023841858 +24 24576.0009765625 5.859375232830644e-05 1.200000047683716 -- !sql_test_Float_SmallInt_2 -- \N \N @@ -481,106 +481,106 @@ 1 23795.10000000149 -23794.89999999851 2 47545.20000000298 -47544.79999999702 3 95045.30000001192 -95044.69999998808 -4 190045.40000000596 -190044.59999999404 +4 190045.400000006 -190044.599999994 5 380045.5 -380044.5 6 760045.6000000238 -760044.3999999762 7 1520045.699999988 -1520044.300000012 8 3040045.800000012 -3040044.199999988 9 6080045.899999976 -6080044.100000024 -10 1.2160046E7 -1.2160044E7 -11 2.4320046100000024E7 -2.4320043899999976E7 -12 4.864004620000005E7 -4.864004379999995E7 +10 12160046 -12160044 +11 24320046.10000002 -24320043.89999998 +12 48640046.20000005 -48640043.79999995 13 23795.10000000149 -23794.89999999851 14 47545.20000000298 -47544.79999999702 15 95045.30000001192 -95044.69999998808 -16 190045.40000000596 -190044.59999999404 +16 190045.400000006 -190044.599999994 17 380045.5 -380044.5 18 760045.6000000238 -760044.3999999762 19 1520045.699999988 -1520044.300000012 20 3040045.800000012 -3040044.199999988 21 6080045.899999976 -6080044.100000024 -22 1.2160046E7 -1.2160044E7 -23 2.4320046100000024E7 -2.4320043899999976E7 -24 4.864004620000005E7 -4.864004379999995E7 +22 12160046 -12160044 +23 24320046.10000002 -24320043.89999998 +24 48640046.20000005 -48640043.79999995 -- !sql_test_Float_Integer_notn_0 -- 1 23795.10000000149 -23794.89999999851 2 47545.20000000298 -47544.79999999702 3 95045.30000001192 -95044.69999998808 -4 190045.40000000596 -190044.59999999404 +4 190045.400000006 -190044.599999994 5 380045.5 -380044.5 6 760045.6000000238 -760044.3999999762 7 1520045.699999988 -1520044.300000012 8 3040045.800000012 -3040044.199999988 9 6080045.899999976 -6080044.100000024 -10 1.2160046E7 -1.2160044E7 -11 2.4320046100000024E7 -2.4320043899999976E7 -12 4.864004620000005E7 -4.864004379999995E7 +10 12160046 -12160044 +11 24320046.10000002 -24320043.89999998 +12 48640046.20000005 -48640043.79999995 13 23795.10000000149 -23794.89999999851 14 47545.20000000298 -47544.79999999702 15 95045.30000001192 -95044.69999998808 -16 190045.40000000596 -190044.59999999404 +16 190045.400000006 -190044.599999994 17 380045.5 -380044.5 18 760045.6000000238 -760044.3999999762 19 1520045.699999988 -1520044.300000012 20 3040045.800000012 -3040044.199999988 21 6080045.899999976 -6080044.100000024 -22 1.2160046E7 -1.2160044E7 -23 2.4320046100000024E7 -2.4320043899999976E7 -24 4.864004620000005E7 -4.864004379999995E7 +22 12160046 -12160044 +23 24320046.10000002 -24320043.89999998 +24 48640046.20000005 -48640043.79999995 -- !sql_test_Float_Integer_1 -- \N \N \N \N -1 2379.500035457313 4.202563626396979E-6 0.1 -2 9509.000141695142 4.206541234204064E-6 0.2 -3 28513.501133024693 3.1563997256134354E-6 0.3 -4 76018.00113275647 2.1047646923647794E-6 0.4 -5 190022.5 1.3156336749595442E-6 0.5 -6 456027.0181208849 7.894269731948212E-7 0.6 -7 1064031.4818796515 4.6051267434784567E-7 0.7 -8 2432036.0362401605 2.631540032864411E-7 0.8 -9 5472040.355040431 1.4802521628674494E-7 0.9 -10 1.2160045E7 8.22365377759704E-8 1.0 -11 2.6752050079835057E7 4.5230180447522115E-8 1.1 -12 5.836805631933808E7 2.4671030787157286E-8 1.2 -13 2379.500035457313 4.202563626396979E-6 0.1 -14 9509.000141695142 4.206541234204064E-6 0.2 -15 28513.501133024693 3.1563997256134354E-6 0.3 -16 76018.00113275647 2.1047646923647794E-6 0.4 -17 190022.5 1.3156336749595442E-6 0.5 -18 456027.0181208849 7.894269731948212E-7 0.6 -19 1064031.4818796515 4.6051267434784567E-7 0.7 -20 2432036.0362401605 2.631540032864411E-7 0.8 -21 5472040.355040431 1.4802521628674494E-7 0.9 -22 1.2160045E7 8.22365377759704E-8 1.0 -23 2.6752050079835057E7 4.5230180447522115E-8 1.1 -24 5.836805631933808E7 2.4671030787157286E-8 1.2 +1 2379.500035457313 4.202563626396979e-06 0.1000000014901161 +2 9509.000141695142 4.206541234204064e-06 0.2000000029802322 +3 28513.50113302469 3.156399725613435e-06 0.300000011920929 +4 76018.00113275647 2.104764692364779e-06 0.4000000059604645 +5 190022.5 1.315633674959544e-06 0.5 +6 456027.0181208849 7.894269731948212e-07 0.6000000238418579 +7 1064031.481879652 4.605126743478457e-07 0.699999988079071 +8 2432036.03624016 2.631540032864411e-07 0.800000011920929 +9 5472040.355040431 1.480252162867449e-07 0.8999999761581421 +10 12160045 8.22365377759704e-08 1 +11 26752050.07983506 4.523018044752212e-08 1.100000023841858 +12 58368056.31933808 2.467103078715729e-08 1.200000047683716 +13 2379.500035457313 4.202563626396979e-06 0.1000000014901161 +14 9509.000141695142 4.206541234204064e-06 0.2000000029802322 +15 28513.50113302469 3.156399725613435e-06 0.300000011920929 +16 76018.00113275647 2.104764692364779e-06 0.4000000059604645 +17 190022.5 1.315633674959544e-06 0.5 +18 456027.0181208849 7.894269731948212e-07 0.6000000238418579 +19 1064031.481879652 4.605126743478457e-07 0.699999988079071 +20 2432036.03624016 2.631540032864411e-07 0.800000011920929 +21 5472040.355040431 1.480252162867449e-07 0.8999999761581421 +22 12160045 8.22365377759704e-08 1 +23 26752050.07983506 4.523018044752212e-08 1.100000023841858 +24 58368056.31933808 2.467103078715729e-08 1.200000047683716 -- !sql_test_Float_Integer_notn_1 -- -1 2379.500035457313 4.202563626396979E-6 0.1 -2 9509.000141695142 4.206541234204064E-6 0.2 -3 28513.501133024693 3.1563997256134354E-6 0.3 -4 76018.00113275647 2.1047646923647794E-6 0.4 -5 190022.5 1.3156336749595442E-6 0.5 -6 456027.0181208849 7.894269731948212E-7 0.6 -7 1064031.4818796515 4.6051267434784567E-7 0.7 -8 2432036.0362401605 2.631540032864411E-7 0.8 -9 5472040.355040431 1.4802521628674494E-7 0.9 -10 1.2160045E7 8.22365377759704E-8 1.0 -11 2.6752050079835057E7 4.5230180447522115E-8 1.1 -12 5.836805631933808E7 2.4671030787157286E-8 1.2 -13 2379.500035457313 4.202563626396979E-6 0.1 -14 9509.000141695142 4.206541234204064E-6 0.2 -15 28513.501133024693 3.1563997256134354E-6 0.3 -16 76018.00113275647 2.1047646923647794E-6 0.4 -17 190022.5 1.3156336749595442E-6 0.5 -18 456027.0181208849 7.894269731948212E-7 0.6 -19 1064031.4818796515 4.6051267434784567E-7 0.7 -20 2432036.0362401605 2.631540032864411E-7 0.8 -21 5472040.355040431 1.4802521628674494E-7 0.9 -22 1.2160045E7 8.22365377759704E-8 1.0 -23 2.6752050079835057E7 4.5230180447522115E-8 1.1 -24 5.836805631933808E7 2.4671030787157286E-8 1.2 +1 2379.500035457313 4.202563626396979e-06 0.1000000014901161 +2 9509.000141695142 4.206541234204064e-06 0.2000000029802322 +3 28513.50113302469 3.156399725613435e-06 0.300000011920929 +4 76018.00113275647 2.104764692364779e-06 0.4000000059604645 +5 190022.5 1.315633674959544e-06 0.5 +6 456027.0181208849 7.894269731948212e-07 0.6000000238418579 +7 1064031.481879652 4.605126743478457e-07 0.699999988079071 +8 2432036.03624016 2.631540032864411e-07 0.800000011920929 +9 5472040.355040431 1.480252162867449e-07 0.8999999761581421 +10 12160045 8.22365377759704e-08 1 +11 26752050.07983506 4.523018044752212e-08 1.100000023841858 +12 58368056.31933808 2.467103078715729e-08 1.200000047683716 +13 2379.500035457313 4.202563626396979e-06 0.1000000014901161 +14 9509.000141695142 4.206541234204064e-06 0.2000000029802322 +15 28513.50113302469 3.156399725613435e-06 0.300000011920929 +16 76018.00113275647 2.104764692364779e-06 0.4000000059604645 +17 190022.5 1.315633674959544e-06 0.5 +18 456027.0181208849 7.894269731948212e-07 0.6000000238418579 +19 1064031.481879652 4.605126743478457e-07 0.699999988079071 +20 2432036.03624016 2.631540032864411e-07 0.800000011920929 +21 5472040.355040431 1.480252162867449e-07 0.8999999761581421 +22 12160045 8.22365377759704e-08 1 +23 26752050.07983506 4.523018044752212e-08 1.100000023841858 +24 58368056.31933808 2.467103078715729e-08 1.200000047683716 -- !sql_test_Float_Integer_2 -- \N \N @@ -690,56 +690,56 @@ -- !sql_test_Float_BigInt_0 -- \N \N \N -1 5354529.1000000015 -5354528.8999999985 -2 1.0698279200000003E7 -1.0698278799999997E7 -3 2.1385779300000012E7 -2.1385778699999988E7 -4 4.2760779400000006E7 -4.2760778599999994E7 -5 8.55107795E7 -8.55107785E7 -6 1.7101077960000002E8 -1.7101077839999998E8 -7 3.420107797E8 -3.420107783E8 -8 6.840107798E8 -6.840107782E8 -9 1.3680107799E9 -1.3680107781E9 -10 2.73601078E9 -2.736010778E9 -11 5.4720107801E9 -5.4720107779E9 -12 1.09440107802E10 -1.09440107778E10 -13 5354529.1000000015 -5354528.8999999985 -14 1.0698279200000003E7 -1.0698278799999997E7 -15 2.1385779300000012E7 -2.1385778699999988E7 -16 4.2760779400000006E7 -4.2760778599999994E7 -17 8.55107795E7 -8.55107785E7 -18 1.7101077960000002E8 -1.7101077839999998E8 -19 3.420107797E8 -3.420107783E8 -20 6.840107798E8 -6.840107782E8 -21 1.3680107799E9 -1.3680107781E9 -22 2.73601078E9 -2.736010778E9 -23 5.4720107801E9 -5.4720107779E9 -24 1.09440107802E10 -1.09440107778E10 +1 5354529.100000001 -5354528.899999999 +2 10698279.2 -10698278.8 +3 21385779.30000001 -21385778.69999999 +4 42760779.40000001 -42760778.59999999 +5 85510779.5 -85510778.5 +6 171010779.6 -171010778.4 +7 342010779.7 -342010778.3 +8 684010779.8 -684010778.2 +9 1368010779.9 -1368010778.1 +10 2736010780 -2736010778 +11 5472010780.1 -5472010777.9 +12 10944010780.2 -10944010777.8 +13 5354529.100000001 -5354528.899999999 +14 10698279.2 -10698278.8 +15 21385779.30000001 -21385778.69999999 +16 42760779.40000001 -42760778.59999999 +17 85510779.5 -85510778.5 +18 171010779.6 -171010778.4 +19 342010779.7 -342010778.3 +20 684010779.8 -684010778.2 +21 1368010779.9 -1368010778.1 +22 2736010780 -2736010778 +23 5472010780.1 -5472010777.9 +24 10944010780.2 -10944010777.8 -- !sql_test_Float_BigInt_notn_0 -- -1 5354529.1000000015 -5354528.8999999985 -2 1.0698279200000003E7 -1.0698278799999997E7 -3 2.1385779300000012E7 -2.1385778699999988E7 -4 4.2760779400000006E7 -4.2760778599999994E7 -5 8.55107795E7 -8.55107785E7 -6 1.7101077960000002E8 -1.7101077839999998E8 -7 3.420107797E8 -3.420107783E8 -8 6.840107798E8 -6.840107782E8 -9 1.3680107799E9 -1.3680107781E9 -10 2.73601078E9 -2.736010778E9 -11 5.4720107801E9 -5.4720107779E9 -12 1.09440107802E10 -1.09440107778E10 -13 5354529.1000000015 -5354528.8999999985 -14 1.0698279200000003E7 -1.0698278799999997E7 -15 2.1385779300000012E7 -2.1385778699999988E7 -16 4.2760779400000006E7 -4.2760778599999994E7 -17 8.55107795E7 -8.55107785E7 -18 1.7101077960000002E8 -1.7101077839999998E8 -19 3.420107797E8 -3.420107783E8 -20 6.840107798E8 -6.840107782E8 -21 1.3680107799E9 -1.3680107781E9 -22 2.73601078E9 -2.736010778E9 -23 5.4720107801E9 -5.4720107779E9 -24 1.09440107802E10 -1.09440107778E10 +1 5354529.100000001 -5354528.899999999 +2 10698279.2 -10698278.8 +3 21385779.30000001 -21385778.69999999 +4 42760779.40000001 -42760778.59999999 +5 85510779.5 -85510778.5 +6 171010779.6 -171010778.4 +7 342010779.7 -342010778.3 +8 684010779.8 -684010778.2 +9 1368010779.9 -1368010778.1 +10 2736010780 -2736010778 +11 5472010780.1 -5472010777.9 +12 10944010780.2 -10944010777.8 +13 5354529.100000001 -5354528.899999999 +14 10698279.2 -10698278.8 +15 21385779.30000001 -21385778.69999999 +16 42760779.40000001 -42760778.59999999 +17 85510779.5 -85510778.5 +18 171010779.6 -171010778.4 +19 342010779.7 -342010778.3 +20 684010779.8 -684010778.2 +21 1368010779.9 -1368010778.1 +22 2736010780 -2736010778 +23 5472010780.1 -5472010777.9 +24 10944010780.2 -10944010777.8 -- !sql_test_Float_BigInt_2 -- \N \N @@ -849,56 +849,56 @@ -- !sql_test_Float_LargeInt_0 -- \N \N \N -1 1.070906451E8 -1.070906449E8 -2 2.139656452E8 -2.139656448E8 -3 4.277156453E8 -4.277156447E8 -4 8.552156454E8 -8.552156446E8 -5 1.7102156455E9 -1.7102156445E9 -6 3.4202156456E9 -3.4202156444E9 -7 6.8402156457E9 -6.8402156443E9 -8 1.36802156458E10 -1.36802156442E10 -9 2.73602156459E10 -2.73602156441E10 -10 5.4720215646E10 -5.4720215644E10 -11 1.094402156461E11 -1.094402156439E11 -12 2.188802156462E11 -2.188802156438E11 -13 1.070906451E8 -1.070906449E8 -14 2.139656452E8 -2.139656448E8 -15 4.277156453E8 -4.277156447E8 -16 8.552156454E8 -8.552156446E8 -17 1.7102156455E9 -1.7102156445E9 -18 3.4202156456E9 -3.4202156444E9 -19 6.8402156457E9 -6.8402156443E9 -20 1.36802156458E10 -1.36802156442E10 -21 2.73602156459E10 -2.73602156441E10 -22 5.4720215646E10 -5.4720215644E10 -23 1.094402156461E11 -1.094402156439E11 -24 2.188802156462E11 -2.188802156438E11 +1 107090645.1 -107090644.9 +2 213965645.2 -213965644.8 +3 427715645.3 -427715644.7 +4 855215645.4 -855215644.6 +5 1710215645.5 -1710215644.5 +6 3420215645.6 -3420215644.4 +7 6840215645.7 -6840215644.3 +8 13680215645.8 -13680215644.2 +9 27360215645.9 -27360215644.1 +10 54720215646 -54720215644 +11 109440215646.1 -109440215643.9 +12 218880215646.2 -218880215643.8 +13 107090645.1 -107090644.9 +14 213965645.2 -213965644.8 +15 427715645.3 -427715644.7 +16 855215645.4 -855215644.6 +17 1710215645.5 -1710215644.5 +18 3420215645.6 -3420215644.4 +19 6840215645.7 -6840215644.3 +20 13680215645.8 -13680215644.2 +21 27360215645.9 -27360215644.1 +22 54720215646 -54720215644 +23 109440215646.1 -109440215643.9 +24 218880215646.2 -218880215643.8 -- !sql_test_Float_LargeInt_notn_0 -- -1 1.070906451E8 -1.070906449E8 -2 2.139656452E8 -2.139656448E8 -3 4.277156453E8 -4.277156447E8 -4 8.552156454E8 -8.552156446E8 -5 1.7102156455E9 -1.7102156445E9 -6 3.4202156456E9 -3.4202156444E9 -7 6.8402156457E9 -6.8402156443E9 -8 1.36802156458E10 -1.36802156442E10 -9 2.73602156459E10 -2.73602156441E10 -10 5.4720215646E10 -5.4720215644E10 -11 1.094402156461E11 -1.094402156439E11 -12 2.188802156462E11 -2.188802156438E11 -13 1.070906451E8 -1.070906449E8 -14 2.139656452E8 -2.139656448E8 -15 4.277156453E8 -4.277156447E8 -16 8.552156454E8 -8.552156446E8 -17 1.7102156455E9 -1.7102156445E9 -18 3.4202156456E9 -3.4202156444E9 -19 6.8402156457E9 -6.8402156443E9 -20 1.36802156458E10 -1.36802156442E10 -21 2.73602156459E10 -2.73602156441E10 -22 5.4720215646E10 -5.4720215644E10 -23 1.094402156461E11 -1.094402156439E11 -24 2.188802156462E11 -2.188802156438E11 +1 107090645.1 -107090644.9 +2 213965645.2 -213965644.8 +3 427715645.3 -427715644.7 +4 855215645.4 -855215644.6 +5 1710215645.5 -1710215644.5 +6 3420215645.6 -3420215644.4 +7 6840215645.7 -6840215644.3 +8 13680215645.8 -13680215644.2 +9 27360215645.9 -27360215644.1 +10 54720215646 -54720215644 +11 109440215646.1 -109440215643.9 +12 218880215646.2 -218880215643.8 +13 107090645.1 -107090644.9 +14 213965645.2 -213965644.8 +15 427715645.3 -427715644.7 +16 855215645.4 -855215644.6 +17 1710215645.5 -1710215644.5 +18 3420215645.6 -3420215644.4 +19 6840215645.7 -6840215644.3 +20 13680215645.8 -13680215644.2 +21 27360215645.9 -27360215644.1 +22 54720215646 -54720215644 +23 109440215646.1 -109440215643.9 +24 218880215646.2 -218880215643.8 -- !sql_test_Float_LargeInt_2 -- \N \N @@ -1008,109 +1008,109 @@ -- !sql_test_Float_Float_0 -- \N \N \N -1 0.20000000298023224 0.0 -2 0.4000000059604645 0.0 -3 0.6000000238418579 0.0 -4 0.800000011920929 0.0 -5 1.0 0.0 -6 1.2000000476837158 0.0 -7 1.399999976158142 0.0 -8 1.600000023841858 0.0 -9 1.7999999523162842 0.0 -10 2.0 0.0 -11 2.200000047683716 0.0 -12 2.4000000953674316 0.0 -13 0.20000000298023224 0.0 -14 0.4000000059604645 0.0 -15 0.6000000238418579 0.0 -16 0.800000011920929 0.0 -17 1.0 0.0 -18 1.2000000476837158 0.0 -19 1.399999976158142 0.0 -20 1.600000023841858 0.0 -21 1.7999999523162842 0.0 -22 2.0 0.0 -23 2.200000047683716 0.0 -24 2.4000000953674316 0.0 +1 0.2000000029802322 0 +2 0.4000000059604645 0 +3 0.6000000238418579 0 +4 0.800000011920929 0 +5 1 0 +6 1.200000047683716 0 +7 1.399999976158142 0 +8 1.600000023841858 0 +9 1.799999952316284 0 +10 2 0 +11 2.200000047683716 0 +12 2.400000095367432 0 +13 0.2000000029802322 0 +14 0.4000000059604645 0 +15 0.6000000238418579 0 +16 0.800000011920929 0 +17 1 0 +18 1.200000047683716 0 +19 1.399999976158142 0 +20 1.600000023841858 0 +21 1.799999952316284 0 +22 2 0 +23 2.200000047683716 0 +24 2.400000095367432 0 -- !sql_test_Float_Float_notn_0 -- -1 0.20000000298023224 0.0 -2 0.4000000059604645 0.0 -3 0.6000000238418579 0.0 -4 0.800000011920929 0.0 -5 1.0 0.0 -6 1.2000000476837158 0.0 -7 1.399999976158142 0.0 -8 1.600000023841858 0.0 -9 1.7999999523162842 0.0 -10 2.0 0.0 -11 2.200000047683716 0.0 -12 2.4000000953674316 0.0 -13 0.20000000298023224 0.0 -14 0.4000000059604645 0.0 -15 0.6000000238418579 0.0 -16 0.800000011920929 0.0 -17 1.0 0.0 -18 1.2000000476837158 0.0 -19 1.399999976158142 0.0 -20 1.600000023841858 0.0 -21 1.7999999523162842 0.0 -22 2.0 0.0 -23 2.200000047683716 0.0 -24 2.4000000953674316 0.0 +1 0.2000000029802322 0 +2 0.4000000059604645 0 +3 0.6000000238418579 0 +4 0.800000011920929 0 +5 1 0 +6 1.200000047683716 0 +7 1.399999976158142 0 +8 1.600000023841858 0 +9 1.799999952316284 0 +10 2 0 +11 2.200000047683716 0 +12 2.400000095367432 0 +13 0.2000000029802322 0 +14 0.4000000059604645 0 +15 0.6000000238418579 0 +16 0.800000011920929 0 +17 1 0 +18 1.200000047683716 0 +19 1.399999976158142 0 +20 1.600000023841858 0 +21 1.799999952316284 0 +22 2 0 +23 2.200000047683716 0 +24 2.400000095367432 0 -- !sql_test_Float_Float_1 -- \N \N \N \N -1 0.010000000298023226 1.0 0.0 -2 0.040000001192092904 1.0 0.0 -3 0.09000000715255752 1.0 0.0 -4 0.16000000476837162 1.0 0.0 -5 0.25 1.0 0.0 -6 0.36000002861023006 1.0 0.0 -7 0.4899999833106996 1.0 0.0 -8 0.6400000190734865 1.0 0.0 -9 0.8099999570846563 1.0 0.0 -10 1.0 1.0 0.0 -11 1.210000052452088 1.0 0.0 -12 1.4400001144409202 1.0 0.0 -13 0.010000000298023226 1.0 0.0 -14 0.040000001192092904 1.0 0.0 -15 0.09000000715255752 1.0 0.0 -16 0.16000000476837162 1.0 0.0 -17 0.25 1.0 0.0 -18 0.36000002861023006 1.0 0.0 -19 0.4899999833106996 1.0 0.0 -20 0.6400000190734865 1.0 0.0 -21 0.8099999570846563 1.0 0.0 -22 1.0 1.0 0.0 -23 1.210000052452088 1.0 0.0 -24 1.4400001144409202 1.0 0.0 +1 0.01000000029802323 1 0.0 +2 0.0400000011920929 1 0.0 +3 0.09000000715255752 1 0.0 +4 0.1600000047683716 1 0.0 +5 0.25 1 0.0 +6 0.3600000286102301 1 0.0 +7 0.4899999833106996 1 0.0 +8 0.6400000190734865 1 0.0 +9 0.8099999570846563 1 0.0 +10 1 1 0.0 +11 1.210000052452088 1 0.0 +12 1.44000011444092 1 0.0 +13 0.01000000029802323 1 0.0 +14 0.0400000011920929 1 0.0 +15 0.09000000715255752 1 0.0 +16 0.1600000047683716 1 0.0 +17 0.25 1 0.0 +18 0.3600000286102301 1 0.0 +19 0.4899999833106996 1 0.0 +20 0.6400000190734865 1 0.0 +21 0.8099999570846563 1 0.0 +22 1 1 0.0 +23 1.210000052452088 1 0.0 +24 1.44000011444092 1 0.0 -- !sql_test_Float_Float_notn_1 -- -1 0.010000000298023226 1.0 0.0 -2 0.040000001192092904 1.0 0.0 -3 0.09000000715255752 1.0 0.0 -4 0.16000000476837162 1.0 0.0 -5 0.25 1.0 0.0 -6 0.36000002861023006 1.0 0.0 -7 0.4899999833106996 1.0 0.0 -8 0.6400000190734865 1.0 0.0 -9 0.8099999570846563 1.0 0.0 -10 1.0 1.0 0.0 -11 1.210000052452088 1.0 0.0 -12 1.4400001144409202 1.0 0.0 -13 0.010000000298023226 1.0 0.0 -14 0.040000001192092904 1.0 0.0 -15 0.09000000715255752 1.0 0.0 -16 0.16000000476837162 1.0 0.0 -17 0.25 1.0 0.0 -18 0.36000002861023006 1.0 0.0 -19 0.4899999833106996 1.0 0.0 -20 0.6400000190734865 1.0 0.0 -21 0.8099999570846563 1.0 0.0 -22 1.0 1.0 0.0 -23 1.210000052452088 1.0 0.0 -24 1.4400001144409202 1.0 0.0 +1 0.01000000029802323 1 0.0 +2 0.0400000011920929 1 0.0 +3 0.09000000715255752 1 0.0 +4 0.1600000047683716 1 0.0 +5 0.25 1 0.0 +6 0.3600000286102301 1 0.0 +7 0.4899999833106996 1 0.0 +8 0.6400000190734865 1 0.0 +9 0.8099999570846563 1 0.0 +10 1 1 0.0 +11 1.210000052452088 1 0.0 +12 1.44000011444092 1 0.0 +13 0.01000000029802323 1 0.0 +14 0.0400000011920929 1 0.0 +15 0.09000000715255752 1 0.0 +16 0.1600000047683716 1 0.0 +17 0.25 1 0.0 +18 0.3600000286102301 1 0.0 +19 0.4899999833106996 1 0.0 +20 0.6400000190734865 1 0.0 +21 0.8099999570846563 1 0.0 +22 1 1 0.0 +23 1.210000052452088 1 0.0 +24 1.44000011444092 1 0.0 -- !sql_test_Float_Float_2 -- \N \N @@ -1273,109 +1273,109 @@ -- !sql_test_Float_Double_0 -- \N \N \N -1 0.6244000014901161 -0.42439999850988386 +1 0.6244000014901161 -0.4243999985098839 2 0.9416000029802323 -0.5415999970197678 3 1.336800011920929 -0.736799988079071 -4 1.8491000059604645 -1.0490999940395356 -5 2.531 -1.5310000000000001 +4 1.849100005960465 -1.049099994039536 +5 2.531 -1.531 6 3.454800023841858 -2.254799976158142 -7 4.721799988079071 -3.3218000119209288 +7 4.721799988079071 -3.321800011920929 8 6.474500011920929 -4.874499988079071 9 8.914099976158141 -7.114100023841857 10 12.3248 -10.3248 -11 17.10860002384186 -14.908599976158143 -12 23.834000047683716 -21.433999952316285 -13 0.6244000014901161 -0.42439999850988386 +11 17.10860002384186 -14.90859997615814 +12 23.83400004768372 -21.43399995231628 +13 0.6244000014901161 -0.4243999985098839 14 0.9416000029802323 -0.5415999970197678 15 1.336800011920929 -0.736799988079071 -16 1.8491000059604645 -1.0490999940395356 -17 2.531 -1.5310000000000001 +16 1.849100005960465 -1.049099994039536 +17 2.531 -1.531 18 3.454800023841858 -2.254799976158142 -19 4.721799988079071 -3.3218000119209288 +19 4.721799988079071 -3.321800011920929 20 6.474500011920929 -4.874499988079071 21 8.914099976158141 -7.114100023841857 22 12.3248 -10.3248 -23 17.10860002384186 -14.908599976158143 -24 23.834000047683716 -21.433999952316285 +23 17.10860002384186 -14.90859997615814 +24 23.83400004768372 -21.43399995231628 -- !sql_test_Float_Double_notn_0 -- -1 0.6244000014901161 -0.42439999850988386 +1 0.6244000014901161 -0.4243999985098839 2 0.9416000029802323 -0.5415999970197678 3 1.336800011920929 -0.736799988079071 -4 1.8491000059604645 -1.0490999940395356 -5 2.531 -1.5310000000000001 +4 1.849100005960465 -1.049099994039536 +5 2.531 -1.531 6 3.454800023841858 -2.254799976158142 -7 4.721799988079071 -3.3218000119209288 +7 4.721799988079071 -3.321800011920929 8 6.474500011920929 -4.874499988079071 9 8.914099976158141 -7.114100023841857 10 12.3248 -10.3248 -11 17.10860002384186 -14.908599976158143 -12 23.834000047683716 -21.433999952316285 -13 0.6244000014901161 -0.42439999850988386 +11 17.10860002384186 -14.90859997615814 +12 23.83400004768372 -21.43399995231628 +13 0.6244000014901161 -0.4243999985098839 14 0.9416000029802323 -0.5415999970197678 15 1.336800011920929 -0.736799988079071 -16 1.8491000059604645 -1.0490999940395356 -17 2.531 -1.5310000000000001 +16 1.849100005960465 -1.049099994039536 +17 2.531 -1.531 18 3.454800023841858 -2.254799976158142 -19 4.721799988079071 -3.3218000119209288 +19 4.721799988079071 -3.321800011920929 20 6.474500011920929 -4.874499988079071 21 8.914099976158141 -7.114100023841857 22 12.3248 -10.3248 -23 17.10860002384186 -14.908599976158143 -24 23.834000047683716 -21.433999952316285 +23 17.10860002384186 -14.90859997615814 +24 23.83400004768372 -21.43399995231628 -- !sql_test_Float_Double_1 -- \N \N \N \N -1 0.05244000078141689 0.190694129462464 0.10000000149011612 -2 0.14832000221014024 0.26968716690969824 0.20000000298023224 -3 0.31104001235961914 0.28935186334966145 0.30000001192092896 +1 0.05244000078141689 0.190694129462464 0.1000000014901161 +2 0.1483200022101402 0.2696871669096982 0.2000000029802322 +3 0.3110400123596191 0.2893518633496615 0.300000011920929 4 0.5796400086373091 0.2760334041546232 0.4000000059604645 -5 1.0155 0.24618414574101427 0.5 +5 1.0155 0.2461841457410143 0.5 6 1.712880068063736 0.2101723496713808 0.6000000238418579 -7 2.8152599520564077 0.17405141679821748 0.699999988079071 -8 4.539600067645312 0.14098158638134267 0.800000011920929 -9 7.212689808928966 0.11230206463085589 0.8999999761581421 -10 11.3248 0.08830178016388811 1.0 +7 2.815259952056408 0.1740514167982175 0.699999988079071 +8 4.539600067645312 0.1409815863813427 0.800000011920929 +9 7.212689808928966 0.1123020646308559 0.8999999761581421 +10 11.3248 0.08830178016388811 1 11 17.60946038167477 0.06871306821595004 1.100000023841858 -12 27.160801079273224 0.053017586272144375 1.2000000476837158 -13 0.05244000078141689 0.190694129462464 0.10000000149011612 -14 0.14832000221014024 0.26968716690969824 0.20000000298023224 -15 0.31104001235961914 0.28935186334966145 0.30000001192092896 +12 27.16080107927322 0.05301758627214437 1.200000047683716 +13 0.05244000078141689 0.190694129462464 0.1000000014901161 +14 0.1483200022101402 0.2696871669096982 0.2000000029802322 +15 0.3110400123596191 0.2893518633496615 0.300000011920929 16 0.5796400086373091 0.2760334041546232 0.4000000059604645 -17 1.0155 0.24618414574101427 0.5 +17 1.0155 0.2461841457410143 0.5 18 1.712880068063736 0.2101723496713808 0.6000000238418579 -19 2.8152599520564077 0.17405141679821748 0.699999988079071 -20 4.539600067645312 0.14098158638134267 0.800000011920929 -21 7.212689808928966 0.11230206463085589 0.8999999761581421 -22 11.3248 0.08830178016388811 1.0 +19 2.815259952056408 0.1740514167982175 0.699999988079071 +20 4.539600067645312 0.1409815863813427 0.800000011920929 +21 7.212689808928966 0.1123020646308559 0.8999999761581421 +22 11.3248 0.08830178016388811 1 23 17.60946038167477 0.06871306821595004 1.100000023841858 -24 27.160801079273224 0.053017586272144375 1.2000000476837158 +24 27.16080107927322 0.05301758627214437 1.200000047683716 -- !sql_test_Float_Double_notn_1 -- -1 0.05244000078141689 0.190694129462464 0.10000000149011612 -2 0.14832000221014024 0.26968716690969824 0.20000000298023224 -3 0.31104001235961914 0.28935186334966145 0.30000001192092896 +1 0.05244000078141689 0.190694129462464 0.1000000014901161 +2 0.1483200022101402 0.2696871669096982 0.2000000029802322 +3 0.3110400123596191 0.2893518633496615 0.300000011920929 4 0.5796400086373091 0.2760334041546232 0.4000000059604645 -5 1.0155 0.24618414574101427 0.5 +5 1.0155 0.2461841457410143 0.5 6 1.712880068063736 0.2101723496713808 0.6000000238418579 -7 2.8152599520564077 0.17405141679821748 0.699999988079071 -8 4.539600067645312 0.14098158638134267 0.800000011920929 -9 7.212689808928966 0.11230206463085589 0.8999999761581421 -10 11.3248 0.08830178016388811 1.0 +7 2.815259952056408 0.1740514167982175 0.699999988079071 +8 4.539600067645312 0.1409815863813427 0.800000011920929 +9 7.212689808928966 0.1123020646308559 0.8999999761581421 +10 11.3248 0.08830178016388811 1 11 17.60946038167477 0.06871306821595004 1.100000023841858 -12 27.160801079273224 0.053017586272144375 1.2000000476837158 -13 0.05244000078141689 0.190694129462464 0.10000000149011612 -14 0.14832000221014024 0.26968716690969824 0.20000000298023224 -15 0.31104001235961914 0.28935186334966145 0.30000001192092896 +12 27.16080107927322 0.05301758627214437 1.200000047683716 +13 0.05244000078141689 0.190694129462464 0.1000000014901161 +14 0.1483200022101402 0.2696871669096982 0.2000000029802322 +15 0.3110400123596191 0.2893518633496615 0.300000011920929 16 0.5796400086373091 0.2760334041546232 0.4000000059604645 -17 1.0155 0.24618414574101427 0.5 +17 1.0155 0.2461841457410143 0.5 18 1.712880068063736 0.2101723496713808 0.6000000238418579 -19 2.8152599520564077 0.17405141679821748 0.699999988079071 -20 4.539600067645312 0.14098158638134267 0.800000011920929 -21 7.212689808928966 0.11230206463085589 0.8999999761581421 -22 11.3248 0.08830178016388811 1.0 +19 2.815259952056408 0.1740514167982175 0.699999988079071 +20 4.539600067645312 0.1409815863813427 0.800000011920929 +21 7.212689808928966 0.1123020646308559 0.8999999761581421 +22 11.3248 0.08830178016388811 1 23 17.60946038167477 0.06871306821595004 1.100000023841858 -24 27.160801079273224 0.053017586272144375 1.2000000476837158 +24 27.16080107927322 0.05301758627214437 1.200000047683716 -- !sql_test_Float_Double_2 -- \N \N @@ -1538,109 +1538,109 @@ -- !sql_test_Float_DecimalV2_0 -- \N \N \N -1 24.495000001 -24.294999999 -2 34.684000003 -34.283999997 -3 49.056000012 -48.455999988 -4 69.343000006 -68.542999994 -5 97.994000000 -96.994000000 -6 138.474000024 -137.273999976 -7 195.679999988 -194.280000012 +1 24.495200001 -24.295199999 +2 34.683700003 -34.283699997 +3 49.055800012 -48.455799988 +4 69.342900006 -68.542899994 +5 97.994200000 -96.994200000 +6 138.473600024 -137.273599976 +7 195.679799988 -194.279800012 8 276.541000012 -274.940999988 -9 390.854999976 -389.055000024 +9 390.855299976 -389.055300024 10 552.479000000 -550.479000000 -11 781.008000024 -778.807999976 -12 1104.157000048 -1101.756999952 -13 24.495000001 -24.294999999 -14 34.684000003 -34.283999997 -15 49.056000012 -48.455999988 -16 69.343000006 -68.542999994 -17 97.994000000 -96.994000000 -18 138.474000024 -137.273999976 -19 195.679999988 -194.280000012 +11 781.008400024 -778.808399976 +12 1104.156500048 -1101.756499952 +13 24.495200001 -24.295199999 +14 34.683700003 -34.283699997 +15 49.055800012 -48.455799988 +16 69.342900006 -68.542899994 +17 97.994200000 -96.994200000 +18 138.473600024 -137.273599976 +19 195.679799988 -194.279800012 20 276.541000012 -274.940999988 -21 390.854999976 -389.055000024 +21 390.855299976 -389.055300024 22 552.479000000 -550.479000000 -23 781.008000024 -778.807999976 -24 1104.157000048 -1101.756999952 +23 781.008400024 -778.808399976 +24 1104.156500048 -1101.756499952 -- !sql_test_Float_DecimalV2_notn_0 -- -1 24.495000001 -24.294999999 -2 34.684000003 -34.283999997 -3 49.056000012 -48.455999988 -4 69.343000006 -68.542999994 -5 97.994000000 -96.994000000 -6 138.474000024 -137.273999976 -7 195.679999988 -194.280000012 +1 24.495200001 -24.295199999 +2 34.683700003 -34.283699997 +3 49.055800012 -48.455799988 +4 69.342900006 -68.542899994 +5 97.994200000 -96.994200000 +6 138.473600024 -137.273599976 +7 195.679799988 -194.279800012 8 276.541000012 -274.940999988 -9 390.854999976 -389.055000024 +9 390.855299976 -389.055300024 10 552.479000000 -550.479000000 -11 781.008000024 -778.807999976 -12 1104.157000048 -1101.756999952 -13 24.495000001 -24.294999999 -14 34.684000003 -34.283999997 -15 49.056000012 -48.455999988 -16 69.343000006 -68.542999994 -17 97.994000000 -96.994000000 -18 138.474000024 -137.273999976 -19 195.679999988 -194.280000012 +11 781.008400024 -778.808399976 +12 1104.156500048 -1101.756499952 +13 24.495200001 -24.295199999 +14 34.683700003 -34.283699997 +15 49.055800012 -48.455799988 +16 69.342900006 -68.542899994 +17 97.994200000 -96.994200000 +18 138.473600024 -137.273599976 +19 195.679799988 -194.279800012 20 276.541000012 -274.940999988 -21 390.854999976 -389.055000024 +21 390.855299976 -389.055300024 22 552.479000000 -550.479000000 -23 781.008000024 -778.807999976 -24 1104.157000048 -1101.756999952 +23 781.008400024 -778.808399976 +24 1104.156500048 -1101.756499952 -- !sql_test_Float_DecimalV2_1 -- \N \N \N \N -1 2.439500025 0.0040992007169549545 0.100000001 -2 6.896800104 0.005799791293940153 0.200000003 -3 14.626800586 0.0061530890951047865 0.300000012 -4 27.577200414 0.005801894404949951 0.400000006 -5 48.747000000 0.005128520729480788 0.500000000 -6 82.724403309 0.004351799642005439 0.600000024 -7 136.485997661 0.0035901117451998723 0.699999988 -8 220.592803309 0.0029012733395502627 0.800000012 -9 350.959490642 0.002307958549468893 0.899999976 -10 551.479000000 0.0018133056743774468 1.000000000 -11 857.898818718 0.0014104227983837297 1.100000024 -12 1323.548452942 0.0010879844342832183 1.200000048 -13 2.439500025 0.0040992007169549545 0.100000001 -14 6.896800104 0.005799791293940153 0.200000003 -15 14.626800586 0.0061530890951047865 0.300000012 -16 27.577200414 0.005801894404949951 0.400000006 -17 48.747000000 0.005128520729480788 0.500000000 -18 82.724403309 0.004351799642005439 0.600000024 -19 136.485997661 0.0035901117451998723 0.699999988 -20 220.592803309 0.0029012733395502627 0.800000012 -21 350.959490642 0.002307958549468893 0.899999976 -22 551.479000000 0.0018133056743774468 1.000000000 -23 857.898818718 0.0014104227983837297 1.100000024 -24 1323.548452942 0.0010879844342832183 1.200000048 +1 2.439520025 0.00409916711033794 0.100000001 +2 6.896740104 0.005799841750746939 0.200000003 +3 14.626740586 0.006153114335544263 0.300000012 +4 27.577160414 0.005801902820456705 0.400000006 +5 48.747100000 0.005128510208812422 0.500000000 +6 82.724163309 0.004351812267481649 0.600000024 +7 136.485857661 0.003590115427747238 0.699999988 +8 220.592803309 0.002901273339550263 0.800000012 +9 350.959760642 0.002307956773912656 0.899999976 +10 551.479000000 0.001813305674377447 1.000000000 +11 857.899258718 0.001410422075005036 1.100000024 +12 1323.547852942 0.001087984927495976 1.200000048 +13 2.439520025 0.00409916711033794 0.100000001 +14 6.896740104 0.005799841750746939 0.200000003 +15 14.626740586 0.006153114335544263 0.300000012 +16 27.577160414 0.005801902820456705 0.400000006 +17 48.747100000 0.005128510208812422 0.500000000 +18 82.724163309 0.004351812267481649 0.600000024 +19 136.485857661 0.003590115427747238 0.699999988 +20 220.592803309 0.002901273339550263 0.800000012 +21 350.959760642 0.002307956773912656 0.899999976 +22 551.479000000 0.001813305674377447 1.000000000 +23 857.899258718 0.001410422075005036 1.100000024 +24 1323.547852942 0.001087984927495976 1.200000048 -- !sql_test_Float_DecimalV2_notn_1 -- -1 2.439500025 0.0040992007169549545 0.100000001 -2 6.896800104 0.005799791293940153 0.200000003 -3 14.626800586 0.0061530890951047865 0.300000012 -4 27.577200414 0.005801894404949951 0.400000006 -5 48.747000000 0.005128520729480788 0.500000000 -6 82.724403309 0.004351799642005439 0.600000024 -7 136.485997661 0.0035901117451998723 0.699999988 -8 220.592803309 0.0029012733395502627 0.800000012 -9 350.959490642 0.002307958549468893 0.899999976 -10 551.479000000 0.0018133056743774468 1.000000000 -11 857.898818718 0.0014104227983837297 1.100000024 -12 1323.548452942 0.0010879844342832183 1.200000048 -13 2.439500025 0.0040992007169549545 0.100000001 -14 6.896800104 0.005799791293940153 0.200000003 -15 14.626800586 0.0061530890951047865 0.300000012 -16 27.577200414 0.005801894404949951 0.400000006 -17 48.747000000 0.005128520729480788 0.500000000 -18 82.724403309 0.004351799642005439 0.600000024 -19 136.485997661 0.0035901117451998723 0.699999988 -20 220.592803309 0.0029012733395502627 0.800000012 -21 350.959490642 0.002307958549468893 0.899999976 -22 551.479000000 0.0018133056743774468 1.000000000 -23 857.898818718 0.0014104227983837297 1.100000024 -24 1323.548452942 0.0010879844342832183 1.200000048 +1 2.439520025 0.00409916711033794 0.100000001 +2 6.896740104 0.005799841750746939 0.200000003 +3 14.626740586 0.006153114335544263 0.300000012 +4 27.577160414 0.005801902820456705 0.400000006 +5 48.747100000 0.005128510208812422 0.500000000 +6 82.724163309 0.004351812267481649 0.600000024 +7 136.485857661 0.003590115427747238 0.699999988 +8 220.592803309 0.002901273339550263 0.800000012 +9 350.959760642 0.002307956773912656 0.899999976 +10 551.479000000 0.001813305674377447 1.000000000 +11 857.899258718 0.001410422075005036 1.100000024 +12 1323.547852942 0.001087984927495976 1.200000048 +13 2.439520025 0.00409916711033794 0.100000001 +14 6.896740104 0.005799841750746939 0.200000003 +15 14.626740586 0.006153114335544263 0.300000012 +16 27.577160414 0.005801902820456705 0.400000006 +17 48.747100000 0.005128510208812422 0.500000000 +18 82.724163309 0.004351812267481649 0.600000024 +19 136.485857661 0.003590115427747238 0.699999988 +20 220.592803309 0.002901273339550263 0.800000012 +21 350.959760642 0.002307956773912656 0.899999976 +22 551.479000000 0.001813305674377447 1.000000000 +23 857.899258718 0.001410422075005036 1.100000024 +24 1323.547852942 0.001087984927495976 1.200000048 -- !sql_test_Float_DecimalV2_2 -- \N \N @@ -1750,55 +1750,55 @@ -- !sql_test_Float_Decimal32V3_0 -- \N \N \N -1 12.112000001490117 -11.911999998509884 -2 23.323000002980233 -22.92299999701977 +1 12.11200000149012 -11.91199999850988 +2 23.32300000298023 -22.92299999701977 3 34.53400001192093 -33.93399998807907 -4 45.74500000596046 -44.944999994039534 +4 45.74500000596046 -44.94499999403953 5 56.956 -55.956 6 68.16700002384185 -66.96699997615814 7 79.37799998807907 -77.97800001192093 8 90.58900001192093 -88.98899998807907 -9 101.79999997615815 -100.00000002384186 +9 101.7999999761581 -100.0000000238419 10 113.011 -111.011 -11 124.22200002384186 -122.02199997615814 -12 135.43300004768372 -133.0329999523163 -13 145.4440000014901 -145.24399999850988 -14 156.65500000298024 -156.25499999701978 -15 167.86600001192093 -167.26599998807907 -16 179.07700000596046 -178.27699999403953 +11 124.2220000238419 -122.0219999761581 +12 135.4330000476837 -133.0329999523163 +13 145.4440000014901 -145.2439999985099 +14 156.6550000029802 -156.2549999970198 +15 167.8660000119209 -167.2659999880791 +16 179.0770000059605 -178.2769999940395 17 190.288 -189.288 -18 201.49900002384186 -200.29899997615814 -19 212.70999998807906 -211.31000001192092 -20 223.92100001192094 -222.32099998807908 -21 235.13199997615814 -233.33200002384186 +18 201.4990000238419 -200.2989999761581 +19 212.7099999880791 -211.3100000119209 +20 223.9210000119209 -222.3209999880791 +21 235.1319999761581 -233.3320000238419 22 246.343 -244.343 -23 257.55400002384187 -255.35399997615815 +23 257.5540000238419 -255.3539999761581 24 268.7650000476837 -266.3649999523163 -- !sql_test_Float_Decimal32V3_notn_0 -- -1 12.112000001490117 -11.911999998509884 -2 23.323000002980233 -22.92299999701977 +1 12.11200000149012 -11.91199999850988 +2 23.32300000298023 -22.92299999701977 3 34.53400001192093 -33.93399998807907 -4 45.74500000596046 -44.944999994039534 +4 45.74500000596046 -44.94499999403953 5 56.956 -55.956 6 68.16700002384185 -66.96699997615814 7 79.37799998807907 -77.97800001192093 8 90.58900001192093 -88.98899998807907 -9 101.79999997615815 -100.00000002384186 +9 101.7999999761581 -100.0000000238419 10 113.011 -111.011 -11 124.22200002384186 -122.02199997615814 -12 135.43300004768372 -133.0329999523163 -13 145.4440000014901 -145.24399999850988 -14 156.65500000298024 -156.25499999701978 -15 167.86600001192093 -167.26599998807907 -16 179.07700000596046 -178.27699999403953 +11 124.2220000238419 -122.0219999761581 +12 135.4330000476837 -133.0329999523163 +13 145.4440000014901 -145.2439999985099 +14 156.6550000029802 -156.2549999970198 +15 167.8660000119209 -167.2659999880791 +16 179.0770000059605 -178.2769999940395 17 190.288 -189.288 -18 201.49900002384186 -200.29899997615814 -19 212.70999998807906 -211.31000001192092 -20 223.92100001192094 -222.32099998807908 -21 235.13199997615814 -233.33200002384186 +18 201.4990000238419 -200.2989999761581 +19 212.7099999880791 -211.3100000119209 +20 223.9210000119209 -222.3209999880791 +21 235.1319999761581 -233.3320000238419 22 246.343 -244.343 -23 257.55400002384187 -255.35399997615815 +23 257.5540000238419 -255.3539999761581 24 268.7650000476837 -266.3649999523163 -- !sql_test_Float_Decimal32V3_2 -- @@ -1909,56 +1909,56 @@ -- !sql_test_Float_Decimal64V3_0 -- \N \N \N -1 1234.11234000149 -1233.9123399985099 -2 2345.3234500029803 -2344.92344999702 +1 1234.11234000149 -1233.91233999851 +2 2345.32345000298 -2344.92344999702 3 3456.534560011921 -3455.934559988079 4 4567.74567000596 -4566.945669994039 5 5678.95678 -5677.95678 6 6790.167890023842 -6788.967889976158 7 7901.378999988079 -7899.979000011921 -8 9012.59011001192 -9010.990109988079 -9 10123.801219976158 -10122.001220023842 +8 9012.590110011921 -9010.990109988079 +9 10123.80121997616 -10122.00122002384 10 11235.01233 -11233.01233 -11 12346.223440023841 -12344.023439976158 -12 13457.434550047683 -13455.034549952316 -13 14567.445660001491 -14567.24565999851 -14 15678.656770002981 -15678.25676999702 -15 16789.86788001192 -16789.267879988078 +11 12346.22344002384 -12344.02343997616 +12 13457.43455004768 -13455.03454995232 +13 14567.44566000149 -14567.24565999851 +14 15678.65677000298 -15678.25676999702 +15 16789.86788001192 -16789.26787998808 16 17901.07899000596 -17900.27898999404 17 19012.2901 -19011.2901 -18 20123.501210023842 -20122.301209976158 -19 21234.71231998808 -21233.312320011923 +18 20123.50121002384 -20122.30120997616 +19 21234.71231998808 -21233.31232001192 20 22345.92343001192 -22344.32342998808 -21 23457.13453997616 -23455.334540023843 +21 23457.13453997616 -23455.33454002384 22 24568.34565 -24566.34565 -23 25679.556760023843 -25677.35675997616 -24 26790.767870047683 -26788.367869952315 +23 25679.55676002384 -25677.35675997616 +24 26790.76787004768 -26788.36786995232 -- !sql_test_Float_Decimal64V3_notn_0 -- -1 1234.11234000149 -1233.9123399985099 -2 2345.3234500029803 -2344.92344999702 +1 1234.11234000149 -1233.91233999851 +2 2345.32345000298 -2344.92344999702 3 3456.534560011921 -3455.934559988079 4 4567.74567000596 -4566.945669994039 5 5678.95678 -5677.95678 6 6790.167890023842 -6788.967889976158 7 7901.378999988079 -7899.979000011921 -8 9012.59011001192 -9010.990109988079 -9 10123.801219976158 -10122.001220023842 +8 9012.590110011921 -9010.990109988079 +9 10123.80121997616 -10122.00122002384 10 11235.01233 -11233.01233 -11 12346.223440023841 -12344.023439976158 -12 13457.434550047683 -13455.034549952316 -13 14567.445660001491 -14567.24565999851 -14 15678.656770002981 -15678.25676999702 -15 16789.86788001192 -16789.267879988078 +11 12346.22344002384 -12344.02343997616 +12 13457.43455004768 -13455.03454995232 +13 14567.44566000149 -14567.24565999851 +14 15678.65677000298 -15678.25676999702 +15 16789.86788001192 -16789.26787998808 16 17901.07899000596 -17900.27898999404 17 19012.2901 -19011.2901 -18 20123.501210023842 -20122.301209976158 -19 21234.71231998808 -21233.312320011923 +18 20123.50121002384 -20122.30120997616 +19 21234.71231998808 -21233.31232001192 20 22345.92343001192 -22344.32342998808 -21 23457.13453997616 -23455.334540023843 +21 23457.13453997616 -23455.33454002384 22 24568.34565 -24566.34565 -23 25679.556760023843 -25677.35675997616 -24 26790.767870047683 -26788.367869952315 +23 25679.55676002384 -25677.35675997616 +24 26790.76787004768 -26788.36786995232 -- !sql_test_Float_Decimal64V3_2 -- \N \N @@ -2068,56 +2068,56 @@ -- !sql_test_Float_Decimal128V3_0 -- \N \N \N -1 1.2345678112345E7 -1.2345677912344998E7 -2 2.3456789323456004E7 -2.3456788923456E7 -3 3.456790053456701E7 -3.456789993456699E7 -4 4.567901174567801E7 -4.5679010945677996E7 -5 5.6790122956789E7 -5.6790121956789E7 -6 6.790123416790003E7 -6.790123296789998E7 -7 7.901234537901099E7 -7.901234397901101E7 -8 9.012345659012201E7 -9.012345499012199E7 -9 1.0123456780123298E8 -1.0123456600123303E8 -10 1.12345679012344E8 -1.12345677012344E8 -11 1.2345679022345503E8 -1.2345678802345498E8 -12 1.3456790143456605E8 -1.3456789903456596E8 -13 1.4567901144567698E8 -1.45679011245677E8 -14 1.56790122656788E8 -1.5679012225678802E8 -15 1.67901233867899E8 -1.6790123326789898E8 -16 1.7901234507901E8 -1.7901234427901E8 -17 1.90123456290121E8 -1.90123455290121E8 -18 2.0123456750123203E8 -2.0123456630123198E8 -19 2.1234567871234298E8 -2.12345677312343E8 -20 2.2345678992345402E8 -2.23456788323454E8 -21 2.3456790113456497E8 -2.34567899334565E8 -22 2.45679012345676E8 -2.45679010345676E8 -23 2.56790123556787E8 -2.5679012135678697E8 -24 2.6790123476789805E8 -2.6790123236789796E8 +1 12345678.112345 -12345677.912345 +2 23456789.323456 -23456788.923456 +3 34567900.53456701 -34567899.93456699 +4 45679011.74567801 -45679010.945678 +5 56790122.956789 -56790121.956789 +6 67901234.16790003 -67901232.96789998 +7 79012345.37901099 -79012343.97901101 +8 90123456.59012201 -90123454.99012199 +9 101234567.801233 -101234566.001233 +10 112345679.012344 -112345677.012344 +11 123456790.223455 -123456788.023455 +12 134567901.4345661 -134567899.034566 +13 145679011.445677 -145679011.245677 +14 156790122.656788 -156790122.256788 +15 167901233.867899 -167901233.267899 +16 179012345.07901 -179012344.27901 +17 190123456.290121 -190123455.290121 +18 201234567.501232 -201234566.301232 +19 212345678.712343 -212345677.312343 +20 223456789.923454 -223456788.323454 +21 234567901.134565 -234567899.334565 +22 245679012.345676 -245679010.345676 +23 256790123.556787 -256790121.356787 +24 267901234.7678981 -267901232.367898 -- !sql_test_Float_Decimal128V3_notn_0 -- -1 1.2345678112345E7 -1.2345677912344998E7 -2 2.3456789323456004E7 -2.3456788923456E7 -3 3.456790053456701E7 -3.456789993456699E7 -4 4.567901174567801E7 -4.5679010945677996E7 -5 5.6790122956789E7 -5.6790121956789E7 -6 6.790123416790003E7 -6.790123296789998E7 -7 7.901234537901099E7 -7.901234397901101E7 -8 9.012345659012201E7 -9.012345499012199E7 -9 1.0123456780123298E8 -1.0123456600123303E8 -10 1.12345679012344E8 -1.12345677012344E8 -11 1.2345679022345503E8 -1.2345678802345498E8 -12 1.3456790143456605E8 -1.3456789903456596E8 -13 1.4567901144567698E8 -1.45679011245677E8 -14 1.56790122656788E8 -1.5679012225678802E8 -15 1.67901233867899E8 -1.6790123326789898E8 -16 1.7901234507901E8 -1.7901234427901E8 -17 1.90123456290121E8 -1.90123455290121E8 -18 2.0123456750123203E8 -2.0123456630123198E8 -19 2.1234567871234298E8 -2.12345677312343E8 -20 2.2345678992345402E8 -2.23456788323454E8 -21 2.3456790113456497E8 -2.34567899334565E8 -22 2.45679012345676E8 -2.45679010345676E8 -23 2.56790123556787E8 -2.5679012135678697E8 -24 2.6790123476789805E8 -2.6790123236789796E8 +1 12345678.112345 -12345677.912345 +2 23456789.323456 -23456788.923456 +3 34567900.53456701 -34567899.93456699 +4 45679011.74567801 -45679010.945678 +5 56790122.956789 -56790121.956789 +6 67901234.16790003 -67901232.96789998 +7 79012345.37901099 -79012343.97901101 +8 90123456.59012201 -90123454.99012199 +9 101234567.801233 -101234566.001233 +10 112345679.012344 -112345677.012344 +11 123456790.223455 -123456788.023455 +12 134567901.4345661 -134567899.034566 +13 145679011.445677 -145679011.245677 +14 156790122.656788 -156790122.256788 +15 167901233.867899 -167901233.267899 +16 179012345.07901 -179012344.27901 +17 190123456.290121 -190123455.290121 +18 201234567.501232 -201234566.301232 +19 212345678.712343 -212345677.312343 +20 223456789.923454 -223456788.323454 +21 234567901.134565 -234567899.334565 +22 245679012.345676 -245679010.345676 +23 256790123.556787 -256790121.356787 +24 267901234.7678981 -267901232.367898 -- !sql_test_Float_Decimal128V3_2 -- \N \N @@ -2239,17 +2239,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.3890000014901 -154.18899999850987 -14 218.29400000298023 -217.89399999701976 -15 308.6590000119209 -308.05899998807905 -16 436.4330000059605 -435.63299999403955 -17 617.108 -616.108 +13 154.3890000014901 -154.1889999985099 +14 218.2940000029802 -217.8939999970198 +15 308.6590000119209 -308.0589999880791 +16 436.4330000059605 -435.6329999940396 +17 617.1079999999999 -616.1079999999999 18 872.5890000238419 -871.3889999761582 -19 1233.8609999880791 -1232.461000011921 -20 1744.740000011921 -1743.1399999880791 -21 2467.193999976158 -2465.3940000238417 +19 1233.860999988079 -1232.461000011921 +20 1744.740000011921 -1743.139999988079 +21 2467.193999976158 -2465.394000023842 22 3488.86 -3486.86 -23 4933.6740000238415 -4931.473999976158 +23 4933.674000023841 -4931.473999976158 24 6976.910000047684 -6974.509999952316 -- !sql_test_Float_Char_notn_0 -- @@ -2265,17 +2265,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.3890000014901 -154.18899999850987 -14 218.29400000298023 -217.89399999701976 -15 308.6590000119209 -308.05899998807905 -16 436.4330000059605 -435.63299999403955 -17 617.108 -616.108 +13 154.3890000014901 -154.1889999985099 +14 218.2940000029802 -217.8939999970198 +15 308.6590000119209 -308.0589999880791 +16 436.4330000059605 -435.6329999940396 +17 617.1079999999999 -616.1079999999999 18 872.5890000238419 -871.3889999761582 -19 1233.8609999880791 -1232.461000011921 -20 1744.740000011921 -1743.1399999880791 -21 2467.193999976158 -2465.3940000238417 +19 1233.860999988079 -1232.461000011921 +20 1744.740000011921 -1743.139999988079 +21 2467.193999976158 -2465.394000023842 22 3488.86 -3486.86 -23 4933.6740000238415 -4931.473999976158 +23 4933.674000023841 -4931.473999976158 24 6976.910000047684 -6974.509999952316 -- !sql_test_Float_Char_1 -- @@ -2292,18 +2292,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 15.428900229908525 6.481343549450455E-4 0.10000000149011612 -14 43.618800649970765 9.170357872304247E-4 0.20000000298023224 -15 92.50770367592573 9.728920249479631E-4 0.30000001192092896 -16 174.4132025989592 9.173617729861374E-4 0.4000000059604645 -17 308.304 8.108879547459651E-4 0.5 -18 523.1934207898379 6.88082101771763E-4 0.6000000238418579 -19 863.2126852995754 5.676468750463816E-4 0.699999988079071 -20 1395.1520207893848 4.5873138520873935E-4 0.800000011920929 -21 2219.664541198969 3.649199877054975E-4 0.8999999761581421 -22 3487.86 2.8670875551197584E-4 1.0 -23 5425.831517601728 2.2300730284874752E-4 1.100000023841858 -24 8370.852332627774 1.7202550674894968E-4 1.2000000476837158 +13 15.42890022990852 0.0006481343549450455 0.1000000014901161 +14 43.61880064997077 0.0009170357872304247 0.2000000029802322 +15 92.50770367592573 0.0009728920249479631 0.300000011920929 +16 174.4132025989592 0.0009173617729861374 0.4000000059604645 +17 308.304 0.0008108879547459651 0.5 +18 523.1934207898379 0.000688082101771763 0.6000000238418579 +19 863.2126852995754 0.0005676468750463816 0.699999988079071 +20 1395.152020789385 0.0004587313852087393 0.800000011920929 +21 2219.664541198969 0.0003649199877054975 0.8999999761581421 +22 3487.86 0.0002867087555119758 1 +23 5425.831517601728 0.0002230073028487475 1.100000023841858 +24 8370.852332627774 0.0001720255067489497 1.200000047683716 -- !sql_test_Float_Char_notn_1 -- 1 \N \N \N @@ -2318,18 +2318,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 15.428900229908525 6.481343549450455E-4 0.10000000149011612 -14 43.618800649970765 9.170357872304247E-4 0.20000000298023224 -15 92.50770367592573 9.728920249479631E-4 0.30000001192092896 -16 174.4132025989592 9.173617729861374E-4 0.4000000059604645 -17 308.304 8.108879547459651E-4 0.5 -18 523.1934207898379 6.88082101771763E-4 0.6000000238418579 -19 863.2126852995754 5.676468750463816E-4 0.699999988079071 -20 1395.1520207893848 4.5873138520873935E-4 0.800000011920929 -21 2219.664541198969 3.649199877054975E-4 0.8999999761581421 -22 3487.86 2.8670875551197584E-4 1.0 -23 5425.831517601728 2.2300730284874752E-4 1.100000023841858 -24 8370.852332627774 1.7202550674894968E-4 1.2000000476837158 +13 15.42890022990852 0.0006481343549450455 0.1000000014901161 +14 43.61880064997077 0.0009170357872304247 0.2000000029802322 +15 92.50770367592573 0.0009728920249479631 0.300000011920929 +16 174.4132025989592 0.0009173617729861374 0.4000000059604645 +17 308.304 0.0008108879547459651 0.5 +18 523.1934207898379 0.000688082101771763 0.6000000238418579 +19 863.2126852995754 0.0005676468750463816 0.699999988079071 +20 1395.152020789385 0.0004587313852087393 0.800000011920929 +21 2219.664541198969 0.0003649199877054975 0.8999999761581421 +22 3487.86 0.0002867087555119758 1 +23 5425.831517601728 0.0002230073028487475 1.100000023841858 +24 8370.852332627774 0.0001720255067489497 1.200000047683716 -- !sql_test_Float_Char_2 -- \N \N @@ -2452,17 +2452,17 @@ 11 \N \N 12 \N \N 13 2319.22100000149 -2319.02099999851 -14 3278.28200000298 -3277.8819999970196 +14 3278.28200000298 -3277.88199999702 15 4635.041000011921 -4634.440999988079 16 6554.088000005961 -6553.28799999404 17 9268.23 -9267.23 -18 13106.737000023842 -13105.536999976159 +18 13106.73700002384 -13105.53699997616 19 18535.28499998808 -18533.88500001192 -20 26212.45400001192 -26210.853999988078 +20 26212.45400001192 -26210.85399998808 21 37069.63099997616 -37067.83100002384 22 52423.999 -52421.999 23 74138.34300002384 -74136.14299997616 -24 104847.04300004768 -104844.64299995231 +24 104847.0430000477 -104844.6429999523 -- !sql_test_Float_Varchar_notn_0 -- 1 \N \N @@ -2478,17 +2478,17 @@ 11 \N \N 12 \N \N 13 2319.22100000149 -2319.02099999851 -14 3278.28200000298 -3277.8819999970196 +14 3278.28200000298 -3277.88199999702 15 4635.041000011921 -4634.440999988079 16 6554.088000005961 -6553.28799999404 17 9268.23 -9267.23 -18 13106.737000023842 -13105.536999976159 +18 13106.73700002384 -13105.53699997616 19 18535.28499998808 -18533.88500001192 -20 26212.45400001192 -26210.853999988078 +20 26212.45400001192 -26210.85399998808 21 37069.63099997616 -37067.83100002384 22 52423.999 -52421.999 23 74138.34300002384 -74136.14299997616 -24 104847.04300004768 -104844.64299995231 +24 104847.0430000477 -104844.6429999523 -- !sql_test_Float_Varchar_1 -- \N \N \N \N @@ -2504,18 +2504,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 231.9121034557596 4.31197861129782E-5 0.10000000149011612 -14 655.6164097694457 6.101128738702456E-5 0.20000000298023224 -15 1390.4223552504181 6.472853864346011E-5 0.30000001192092896 -16 2621.4752390630247 6.1034337606621565E-5 0.4000000059604645 -17 4633.865 5.3950643793032383E-5 0.5 -18 7863.6825124746565 4.578008179235864E-5 0.6000000238418579 -19 12974.209279050528 3.7767232882693143E-5 0.699999988079071 -20 20969.323512467265 3.052077567943362E-5 0.800000011920929 -21 33361.85701621258 2.427922272705106E-5 0.8999999761581421 -22 52422.999 1.907559695316172E-5 1.0 -23 81550.96906756962 1.4837347321397666E-5 1.100000023841858 -24 125815.01659943938 1.1445375547065952E-5 1.2000000476837158 +13 231.9121034557596 4.31197861129782e-05 0.1000000014901161 +14 655.6164097694457 6.101128738702456e-05 0.2000000029802322 +15 1390.422355250418 6.472853864346011e-05 0.300000011920929 +16 2621.475239063025 6.103433760662157e-05 0.4000000059604645 +17 4633.865 5.395064379303238e-05 0.5 +18 7863.682512474657 4.578008179235864e-05 0.6000000238418579 +19 12974.20927905053 3.776723288269314e-05 0.699999988079071 +20 20969.32351246726 3.052077567943362e-05 0.800000011920929 +21 33361.85701621258 2.427922272705106e-05 0.8999999761581421 +22 52422.999 1.907559695316172e-05 1 +23 81550.96906756962 1.483734732139767e-05 1.100000023841858 +24 125815.0165994394 1.144537554706595e-05 1.200000047683716 -- !sql_test_Float_Varchar_notn_1 -- 1 \N \N \N @@ -2530,18 +2530,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 231.9121034557596 4.31197861129782E-5 0.10000000149011612 -14 655.6164097694457 6.101128738702456E-5 0.20000000298023224 -15 1390.4223552504181 6.472853864346011E-5 0.30000001192092896 -16 2621.4752390630247 6.1034337606621565E-5 0.4000000059604645 -17 4633.865 5.3950643793032383E-5 0.5 -18 7863.6825124746565 4.578008179235864E-5 0.6000000238418579 -19 12974.209279050528 3.7767232882693143E-5 0.699999988079071 -20 20969.323512467265 3.052077567943362E-5 0.800000011920929 -21 33361.85701621258 2.427922272705106E-5 0.8999999761581421 -22 52422.999 1.907559695316172E-5 1.0 -23 81550.96906756962 1.4837347321397666E-5 1.100000023841858 -24 125815.01659943938 1.1445375547065952E-5 1.2000000476837158 +13 231.9121034557596 4.31197861129782e-05 0.1000000014901161 +14 655.6164097694457 6.101128738702456e-05 0.2000000029802322 +15 1390.422355250418 6.472853864346011e-05 0.300000011920929 +16 2621.475239063025 6.103433760662157e-05 0.4000000059604645 +17 4633.865 5.395064379303238e-05 0.5 +18 7863.682512474657 4.578008179235864e-05 0.6000000238418579 +19 12974.20927905053 3.776723288269314e-05 0.699999988079071 +20 20969.32351246726 3.052077567943362e-05 0.800000011920929 +21 33361.85701621258 2.427922272705106e-05 0.8999999761581421 +22 52422.999 1.907559695316172e-05 1 +23 81550.96906756962 1.483734732139767e-05 1.100000023841858 +24 125815.0165994394 1.144537554706595e-05 1.200000047683716 -- !sql_test_Float_Varchar_2 -- \N \N @@ -2665,16 +2665,16 @@ 12 \N \N 13 10604.11700000149 -10603.91699999851 14 14988.99300000298 -14988.59299999702 -15 21192.31300001192 -21191.712999988078 +15 21192.31300001192 -21191.71299998808 16 29966.65500000596 -29965.85499999404 17 42376.512 -42375.512 -18 59927.44200002384 -59926.241999976155 +18 59927.44200002384 -59926.24199997616 19 84748.71699998809 -84747.31700001193 -20 119851.65100001192 -119850.05099998807 -21 169494.93099997615 -169493.13100002383 +20 119851.6510000119 -119850.0509999881 +21 169494.9309999761 -169493.1310000238 22 239701.285 -239699.285 -23 338988.15900002385 -338985.95899997617 -24 479401.06100004766 -479398.6609999523 +23 338988.1590000239 -338985.9589999762 +24 479401.0610000477 -479398.6609999523 -- !sql_test_Float_String_notn_0 -- 1 \N \N @@ -2691,16 +2691,16 @@ 12 \N \N 13 10604.11700000149 -10603.91699999851 14 14988.99300000298 -14988.59299999702 -15 21192.31300001192 -21191.712999988078 +15 21192.31300001192 -21191.71299998808 16 29966.65500000596 -29965.85499999404 17 42376.512 -42375.512 -18 59927.44200002384 -59926.241999976155 +18 59927.44200002384 -59926.24199997616 19 84748.71699998809 -84747.31700001193 -20 119851.65100001192 -119850.05099998807 -21 169494.93099997615 -169493.13100002383 +20 119851.6510000119 -119850.0509999881 +21 169494.9309999761 -169493.1310000238 22 239701.285 -239699.285 -23 338988.15900002385 -338985.95899997617 -24 479401.06100004766 -479398.6609999523 +23 338988.1590000239 -338985.9589999762 +24 479401.0610000477 -479398.6609999523 -- !sql_test_Float_String_1 -- \N \N \N \N @@ -2716,18 +2716,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1060.4017158012166 9.430388643295849E-6 0.10000000149011612 -14 2997.758644670084 1.3343302758282955E-5 0.20000000298023224 -15 6357.604152628481 1.4156277269220671E-5 0.30000001192092896 -16 11986.502178612798 1.3348348199014674E-5 0.4000000059604645 -17 21188.006 1.1799128242648222E-5 0.5 -18 35956.10662876725 1.0012208282923667E-5 0.6000000238418579 -19 59323.610889724914 8.259780144225334E-6 0.699999988079071 -20 95880.68222873348 6.674963133310826E-6 0.800000011920929 -21 152544.6238589474 5.309921363296517E-6 0.8999999761581421 -22 239700.285 4.17187655826108E-6 1.0 -23 372885.7729820813 3.244961701744071E-6 1.100000023841858 -24 575279.8560595667 2.503129736376198E-6 1.2000000476837158 +13 1060.401715801217 9.430388643295849e-06 0.1000000014901161 +14 2997.758644670084 1.334330275828295e-05 0.2000000029802322 +15 6357.604152628481 1.415627726922067e-05 0.300000011920929 +16 11986.5021786128 1.334834819901467e-05 0.4000000059604645 +17 21188.006 1.179912824264822e-05 0.5 +18 35956.10662876725 1.001220828292367e-05 0.6000000238418579 +19 59323.61088972491 8.259780144225334e-06 0.699999988079071 +20 95880.68222873348 6.674963133310826e-06 0.800000011920929 +21 152544.6238589474 5.309921363296517e-06 0.8999999761581421 +22 239700.285 4.17187655826108e-06 1 +23 372885.7729820813 3.244961701744071e-06 1.100000023841858 +24 575279.8560595667 2.503129736376198e-06 1.200000047683716 -- !sql_test_Float_String_notn_1 -- 1 \N \N \N @@ -2742,18 +2742,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1060.4017158012166 9.430388643295849E-6 0.10000000149011612 -14 2997.758644670084 1.3343302758282955E-5 0.20000000298023224 -15 6357.604152628481 1.4156277269220671E-5 0.30000001192092896 -16 11986.502178612798 1.3348348199014674E-5 0.4000000059604645 -17 21188.006 1.1799128242648222E-5 0.5 -18 35956.10662876725 1.0012208282923667E-5 0.6000000238418579 -19 59323.610889724914 8.259780144225334E-6 0.699999988079071 -20 95880.68222873348 6.674963133310826E-6 0.800000011920929 -21 152544.6238589474 5.309921363296517E-6 0.8999999761581421 -22 239700.285 4.17187655826108E-6 1.0 -23 372885.7729820813 3.244961701744071E-6 1.100000023841858 -24 575279.8560595667 2.503129736376198E-6 1.2000000476837158 +13 1060.401715801217 9.430388643295849e-06 0.1000000014901161 +14 2997.758644670084 1.334330275828295e-05 0.2000000029802322 +15 6357.604152628481 1.415627726922067e-05 0.300000011920929 +16 11986.5021786128 1.334834819901467e-05 0.4000000059604645 +17 21188.006 1.179912824264822e-05 0.5 +18 35956.10662876725 1.001220828292367e-05 0.6000000238418579 +19 59323.61088972491 8.259780144225334e-06 0.699999988079071 +20 95880.68222873348 6.674963133310826e-06 0.800000011920929 +21 152544.6238589474 5.309921363296517e-06 0.8999999761581421 +22 239700.285 4.17187655826108e-06 1 +23 372885.7729820813 3.244961701744071e-06 1.100000023841858 +24 575279.8560595667 2.503129736376198e-06 1.200000047683716 -- !sql_test_Float_String_2 -- \N \N @@ -2863,56 +2863,56 @@ -- !sql_test_Float_Date_0 -- \N \N \N -1 2.01203011E7 -2.01203009E7 -2 2.0120302200000003E7 -2.0120301799999997E7 -3 2.0120303300000012E7 -2.0120302699999988E7 -4 2.0120304400000006E7 -2.0120303599999994E7 -5 2.01203055E7 -2.01203045E7 -6 2.0120306600000024E7 -2.0120305399999976E7 -7 2.0120307699999988E7 -2.0120306300000012E7 -8 2.0120308800000012E7 -2.0120307199999988E7 -9 2.0120309899999976E7 -2.0120308100000024E7 -10 2.0120311E7 -2.0120309E7 -11 2.0120312100000024E7 -2.0120309899999976E7 -12 2.0120313200000048E7 -2.0120310799999952E7 -13 2.01203011E7 -2.01203009E7 -14 2.0120302200000003E7 -2.0120301799999997E7 -15 2.0120303300000012E7 -2.0120302699999988E7 -16 2.0120304400000006E7 -2.0120303599999994E7 -17 2.01203055E7 -2.01203045E7 -18 2.0120306600000024E7 -2.0120305399999976E7 -19 2.0120307699999988E7 -2.0120306300000012E7 -20 2.0120308800000012E7 -2.0120307199999988E7 -21 2.0120309899999976E7 -2.0120308100000024E7 -22 2.0120311E7 -2.0120309E7 -23 2.0120312100000024E7 -2.0120309899999976E7 -24 2.0120313200000048E7 -2.0120310799999952E7 +1 20120301.1 -20120300.9 +2 20120302.2 -20120301.8 +3 20120303.30000001 -20120302.69999999 +4 20120304.40000001 -20120303.59999999 +5 20120305.5 -20120304.5 +6 20120306.60000002 -20120305.39999998 +7 20120307.69999999 -20120306.30000001 +8 20120308.80000001 -20120307.19999999 +9 20120309.89999998 -20120308.10000002 +10 20120311 -20120309 +11 20120312.10000002 -20120309.89999998 +12 20120313.20000005 -20120310.79999995 +13 20120301.1 -20120300.9 +14 20120302.2 -20120301.8 +15 20120303.30000001 -20120302.69999999 +16 20120304.40000001 -20120303.59999999 +17 20120305.5 -20120304.5 +18 20120306.60000002 -20120305.39999998 +19 20120307.69999999 -20120306.30000001 +20 20120308.80000001 -20120307.19999999 +21 20120309.89999998 -20120308.10000002 +22 20120311 -20120309 +23 20120312.10000002 -20120309.89999998 +24 20120313.20000005 -20120310.79999995 -- !sql_test_Float_Date_notn_0 -- -1 2.01203011E7 -2.01203009E7 -2 2.0120302200000003E7 -2.0120301799999997E7 -3 2.0120303300000012E7 -2.0120302699999988E7 -4 2.0120304400000006E7 -2.0120303599999994E7 -5 2.01203055E7 -2.01203045E7 -6 2.0120306600000024E7 -2.0120305399999976E7 -7 2.0120307699999988E7 -2.0120306300000012E7 -8 2.0120308800000012E7 -2.0120307199999988E7 -9 2.0120309899999976E7 -2.0120308100000024E7 -10 2.0120311E7 -2.0120309E7 -11 2.0120312100000024E7 -2.0120309899999976E7 -12 2.0120313200000048E7 -2.0120310799999952E7 -13 2.01203011E7 -2.01203009E7 -14 2.0120302200000003E7 -2.0120301799999997E7 -15 2.0120303300000012E7 -2.0120302699999988E7 -16 2.0120304400000006E7 -2.0120303599999994E7 -17 2.01203055E7 -2.01203045E7 -18 2.0120306600000024E7 -2.0120305399999976E7 -19 2.0120307699999988E7 -2.0120306300000012E7 -20 2.0120308800000012E7 -2.0120307199999988E7 -21 2.0120309899999976E7 -2.0120308100000024E7 -22 2.0120311E7 -2.0120309E7 -23 2.0120312100000024E7 -2.0120309899999976E7 -24 2.0120313200000048E7 -2.0120310799999952E7 +1 20120301.1 -20120300.9 +2 20120302.2 -20120301.8 +3 20120303.30000001 -20120302.69999999 +4 20120304.40000001 -20120303.59999999 +5 20120305.5 -20120304.5 +6 20120306.60000002 -20120305.39999998 +7 20120307.69999999 -20120306.30000001 +8 20120308.80000001 -20120307.19999999 +9 20120309.89999998 -20120308.10000002 +10 20120311 -20120309 +11 20120312.10000002 -20120309.89999998 +12 20120313.20000005 -20120310.79999995 +13 20120301.1 -20120300.9 +14 20120302.2 -20120301.8 +15 20120303.30000001 -20120302.69999999 +16 20120304.40000001 -20120303.59999999 +17 20120305.5 -20120304.5 +18 20120306.60000002 -20120305.39999998 +19 20120307.69999999 -20120306.30000001 +20 20120308.80000001 -20120307.19999999 +21 20120309.89999998 -20120308.10000002 +22 20120311 -20120309 +23 20120312.10000002 -20120309.89999998 +24 20120313.20000005 -20120310.79999995 -- !sql_test_Float_Date_2 -- \N \N @@ -3022,56 +3022,56 @@ -- !sql_test_Float_DateTime_0 -- \N \N \N -1 2.01203010100011E13 -2.01203010100009E13 -2 2.01203020201022E13 -2.01203020201018E13 -3 2.01203030302033E13 -2.01203030302027E13 -4 2.01203040403044E13 -2.01203040403036E13 -5 2.01203050504055E13 -2.01203050504045E13 -6 2.01203060605066E13 -2.01203060605054E13 -7 2.01203070706077E13 -2.01203070706063E13 -8 2.01203080807088E13 -2.01203080807072E13 -9 2.01203090908099E13 -2.01203090908081E13 -10 2.0120310100911E13 -2.0120310100909E13 -11 2.01203111110121E13 -2.01203111110099E13 -12 2.01203121211132E13 -2.01203121211108E13 -13 2.01203010100011E13 -2.01203010100009E13 -14 2.01203020201022E13 -2.01203020201018E13 -15 2.01203030302033E13 -2.01203030302027E13 -16 2.01203040403044E13 -2.01203040403036E13 -17 2.01203050504055E13 -2.01203050504045E13 -18 2.01203060605066E13 -2.01203060605054E13 -19 2.01203070706077E13 -2.01203070706063E13 -20 2.01203080807088E13 -2.01203080807072E13 -21 2.01203090908099E13 -2.01203090908081E13 -22 2.0120310100911E13 -2.0120310100909E13 -23 2.01203111110121E13 -2.01203111110099E13 -24 2.01203121211132E13 -2.01203121211108E13 +1 20120301010001.1 -20120301010000.9 +2 20120302020102.2 -20120302020101.8 +3 20120303030203.3 -20120303030202.7 +4 20120304040304.4 -20120304040303.6 +5 20120305050405.5 -20120305050404.5 +6 20120306060506.6 -20120306060505.4 +7 20120307070607.7 -20120307070606.3 +8 20120308080708.8 -20120308080707.2 +9 20120309090809.9 -20120309090808.1 +10 20120310100911 -20120310100909 +11 20120311111012.1 -20120311111009.9 +12 20120312121113.2 -20120312121110.8 +13 20120301010001.1 -20120301010000.9 +14 20120302020102.2 -20120302020101.8 +15 20120303030203.3 -20120303030202.7 +16 20120304040304.4 -20120304040303.6 +17 20120305050405.5 -20120305050404.5 +18 20120306060506.6 -20120306060505.4 +19 20120307070607.7 -20120307070606.3 +20 20120308080708.8 -20120308080707.2 +21 20120309090809.9 -20120309090808.1 +22 20120310100911 -20120310100909 +23 20120311111012.1 -20120311111009.9 +24 20120312121113.2 -20120312121110.8 -- !sql_test_Float_DateTime_notn_0 -- -1 2.01203010100011E13 -2.01203010100009E13 -2 2.01203020201022E13 -2.01203020201018E13 -3 2.01203030302033E13 -2.01203030302027E13 -4 2.01203040403044E13 -2.01203040403036E13 -5 2.01203050504055E13 -2.01203050504045E13 -6 2.01203060605066E13 -2.01203060605054E13 -7 2.01203070706077E13 -2.01203070706063E13 -8 2.01203080807088E13 -2.01203080807072E13 -9 2.01203090908099E13 -2.01203090908081E13 -10 2.0120310100911E13 -2.0120310100909E13 -11 2.01203111110121E13 -2.01203111110099E13 -12 2.01203121211132E13 -2.01203121211108E13 -13 2.01203010100011E13 -2.01203010100009E13 -14 2.01203020201022E13 -2.01203020201018E13 -15 2.01203030302033E13 -2.01203030302027E13 -16 2.01203040403044E13 -2.01203040403036E13 -17 2.01203050504055E13 -2.01203050504045E13 -18 2.01203060605066E13 -2.01203060605054E13 -19 2.01203070706077E13 -2.01203070706063E13 -20 2.01203080807088E13 -2.01203080807072E13 -21 2.01203090908099E13 -2.01203090908081E13 -22 2.0120310100911E13 -2.0120310100909E13 -23 2.01203111110121E13 -2.01203111110099E13 -24 2.01203121211132E13 -2.01203121211108E13 +1 20120301010001.1 -20120301010000.9 +2 20120302020102.2 -20120302020101.8 +3 20120303030203.3 -20120303030202.7 +4 20120304040304.4 -20120304040303.6 +5 20120305050405.5 -20120305050404.5 +6 20120306060506.6 -20120306060505.4 +7 20120307070607.7 -20120307070606.3 +8 20120308080708.8 -20120308080707.2 +9 20120309090809.9 -20120309090808.1 +10 20120310100911 -20120310100909 +11 20120311111012.1 -20120311111009.9 +12 20120312121113.2 -20120312121110.8 +13 20120301010001.1 -20120301010000.9 +14 20120302020102.2 -20120302020101.8 +15 20120303030203.3 -20120303030202.7 +16 20120304040304.4 -20120304040303.6 +17 20120305050405.5 -20120305050404.5 +18 20120306060506.6 -20120306060505.4 +19 20120307070607.7 -20120307070606.3 +20 20120308080708.8 -20120308080707.2 +21 20120309090809.9 -20120309090808.1 +22 20120310100911 -20120310100909 +23 20120311111012.1 -20120311111009.9 +24 20120312121113.2 -20120312121110.8 -- !sql_test_Float_DateTime_2 -- \N \N @@ -3181,56 +3181,56 @@ -- !sql_test_Float_DateV2_0 -- \N \N \N -1 2.01203011E7 -2.01203009E7 -2 2.0120302200000003E7 -2.0120301799999997E7 -3 2.0120303300000012E7 -2.0120302699999988E7 -4 2.0120304400000006E7 -2.0120303599999994E7 -5 2.01203055E7 -2.01203045E7 -6 2.0120306600000024E7 -2.0120305399999976E7 -7 2.0120307699999988E7 -2.0120306300000012E7 -8 2.0120308800000012E7 -2.0120307199999988E7 -9 2.0120309899999976E7 -2.0120308100000024E7 -10 2.0120311E7 -2.0120309E7 -11 2.0120312100000024E7 -2.0120309899999976E7 -12 2.0120313200000048E7 -2.0120310799999952E7 -13 2.01203011E7 -2.01203009E7 -14 2.0120302200000003E7 -2.0120301799999997E7 -15 2.0120303300000012E7 -2.0120302699999988E7 -16 2.0120304400000006E7 -2.0120303599999994E7 -17 2.01203055E7 -2.01203045E7 -18 2.0120306600000024E7 -2.0120305399999976E7 -19 2.0120307699999988E7 -2.0120306300000012E7 -20 2.0120308800000012E7 -2.0120307199999988E7 -21 2.0120309899999976E7 -2.0120308100000024E7 -22 2.0120311E7 -2.0120309E7 -23 2.0120312100000024E7 -2.0120309899999976E7 -24 2.0120313200000048E7 -2.0120310799999952E7 +1 20120301.1 -20120300.9 +2 20120302.2 -20120301.8 +3 20120303.30000001 -20120302.69999999 +4 20120304.40000001 -20120303.59999999 +5 20120305.5 -20120304.5 +6 20120306.60000002 -20120305.39999998 +7 20120307.69999999 -20120306.30000001 +8 20120308.80000001 -20120307.19999999 +9 20120309.89999998 -20120308.10000002 +10 20120311 -20120309 +11 20120312.10000002 -20120309.89999998 +12 20120313.20000005 -20120310.79999995 +13 20120301.1 -20120300.9 +14 20120302.2 -20120301.8 +15 20120303.30000001 -20120302.69999999 +16 20120304.40000001 -20120303.59999999 +17 20120305.5 -20120304.5 +18 20120306.60000002 -20120305.39999998 +19 20120307.69999999 -20120306.30000001 +20 20120308.80000001 -20120307.19999999 +21 20120309.89999998 -20120308.10000002 +22 20120311 -20120309 +23 20120312.10000002 -20120309.89999998 +24 20120313.20000005 -20120310.79999995 -- !sql_test_Float_DateV2_notn_0 -- -1 2.01203011E7 -2.01203009E7 -2 2.0120302200000003E7 -2.0120301799999997E7 -3 2.0120303300000012E7 -2.0120302699999988E7 -4 2.0120304400000006E7 -2.0120303599999994E7 -5 2.01203055E7 -2.01203045E7 -6 2.0120306600000024E7 -2.0120305399999976E7 -7 2.0120307699999988E7 -2.0120306300000012E7 -8 2.0120308800000012E7 -2.0120307199999988E7 -9 2.0120309899999976E7 -2.0120308100000024E7 -10 2.0120311E7 -2.0120309E7 -11 2.0120312100000024E7 -2.0120309899999976E7 -12 2.0120313200000048E7 -2.0120310799999952E7 -13 2.01203011E7 -2.01203009E7 -14 2.0120302200000003E7 -2.0120301799999997E7 -15 2.0120303300000012E7 -2.0120302699999988E7 -16 2.0120304400000006E7 -2.0120303599999994E7 -17 2.01203055E7 -2.01203045E7 -18 2.0120306600000024E7 -2.0120305399999976E7 -19 2.0120307699999988E7 -2.0120306300000012E7 -20 2.0120308800000012E7 -2.0120307199999988E7 -21 2.0120309899999976E7 -2.0120308100000024E7 -22 2.0120311E7 -2.0120309E7 -23 2.0120312100000024E7 -2.0120309899999976E7 -24 2.0120313200000048E7 -2.0120310799999952E7 +1 20120301.1 -20120300.9 +2 20120302.2 -20120301.8 +3 20120303.30000001 -20120302.69999999 +4 20120304.40000001 -20120303.59999999 +5 20120305.5 -20120304.5 +6 20120306.60000002 -20120305.39999998 +7 20120307.69999999 -20120306.30000001 +8 20120308.80000001 -20120307.19999999 +9 20120309.89999998 -20120308.10000002 +10 20120311 -20120309 +11 20120312.10000002 -20120309.89999998 +12 20120313.20000005 -20120310.79999995 +13 20120301.1 -20120300.9 +14 20120302.2 -20120301.8 +15 20120303.30000001 -20120302.69999999 +16 20120304.40000001 -20120303.59999999 +17 20120305.5 -20120304.5 +18 20120306.60000002 -20120305.39999998 +19 20120307.69999999 -20120306.30000001 +20 20120308.80000001 -20120307.19999999 +21 20120309.89999998 -20120308.10000002 +22 20120311 -20120309 +23 20120312.10000002 -20120309.89999998 +24 20120313.20000005 -20120310.79999995 -- !sql_test_Float_DateV2_2 -- \N \N @@ -3340,56 +3340,56 @@ -- !sql_test_Float_DateTimeV2_0 -- \N \N \N -1 2.01203010100011E13 -2.01203010100009E13 -2 2.01203020201022E13 -2.01203020201018E13 -3 2.01203030302033E13 -2.01203030302027E13 -4 2.01203040403044E13 -2.01203040403036E13 -5 2.01203050504055E13 -2.01203050504045E13 -6 2.01203060605066E13 -2.01203060605054E13 -7 2.01203070706077E13 -2.01203070706063E13 -8 2.01203080807088E13 -2.01203080807072E13 -9 2.01203090908099E13 -2.01203090908081E13 -10 2.0120310100911E13 -2.0120310100909E13 -11 2.01203111110121E13 -2.01203111110099E13 -12 2.01203121211132E13 -2.01203121211108E13 -13 2.01203010100011E13 -2.01203010100009E13 -14 2.01203020201022E13 -2.01203020201018E13 -15 2.01203030302033E13 -2.01203030302027E13 -16 2.01203040403044E13 -2.01203040403036E13 -17 2.01203050504055E13 -2.01203050504045E13 -18 2.01203060605066E13 -2.01203060605054E13 -19 2.01203070706077E13 -2.01203070706063E13 -20 2.01203080807088E13 -2.01203080807072E13 -21 2.01203090908099E13 -2.01203090908081E13 -22 2.0120310100911E13 -2.0120310100909E13 -23 2.01203111110121E13 -2.01203111110099E13 -24 2.01203121211132E13 -2.01203121211108E13 +1 20120301010001.1 -20120301010000.9 +2 20120302020102.2 -20120302020101.8 +3 20120303030203.3 -20120303030202.7 +4 20120304040304.4 -20120304040303.6 +5 20120305050405.5 -20120305050404.5 +6 20120306060506.6 -20120306060505.4 +7 20120307070607.7 -20120307070606.3 +8 20120308080708.8 -20120308080707.2 +9 20120309090809.9 -20120309090808.1 +10 20120310100911 -20120310100909 +11 20120311111012.1 -20120311111009.9 +12 20120312121113.2 -20120312121110.8 +13 20120301010001.1 -20120301010000.9 +14 20120302020102.2 -20120302020101.8 +15 20120303030203.3 -20120303030202.7 +16 20120304040304.4 -20120304040303.6 +17 20120305050405.5 -20120305050404.5 +18 20120306060506.6 -20120306060505.4 +19 20120307070607.7 -20120307070606.3 +20 20120308080708.8 -20120308080707.2 +21 20120309090809.9 -20120309090808.1 +22 20120310100911 -20120310100909 +23 20120311111012.1 -20120311111009.9 +24 20120312121113.2 -20120312121110.8 -- !sql_test_Float_DateTimeV2_notn_0 -- -1 2.01203010100011E13 -2.01203010100009E13 -2 2.01203020201022E13 -2.01203020201018E13 -3 2.01203030302033E13 -2.01203030302027E13 -4 2.01203040403044E13 -2.01203040403036E13 -5 2.01203050504055E13 -2.01203050504045E13 -6 2.01203060605066E13 -2.01203060605054E13 -7 2.01203070706077E13 -2.01203070706063E13 -8 2.01203080807088E13 -2.01203080807072E13 -9 2.01203090908099E13 -2.01203090908081E13 -10 2.0120310100911E13 -2.0120310100909E13 -11 2.01203111110121E13 -2.01203111110099E13 -12 2.01203121211132E13 -2.01203121211108E13 -13 2.01203010100011E13 -2.01203010100009E13 -14 2.01203020201022E13 -2.01203020201018E13 -15 2.01203030302033E13 -2.01203030302027E13 -16 2.01203040403044E13 -2.01203040403036E13 -17 2.01203050504055E13 -2.01203050504045E13 -18 2.01203060605066E13 -2.01203060605054E13 -19 2.01203070706077E13 -2.01203070706063E13 -20 2.01203080807088E13 -2.01203080807072E13 -21 2.01203090908099E13 -2.01203090908081E13 -22 2.0120310100911E13 -2.0120310100909E13 -23 2.01203111110121E13 -2.01203111110099E13 -24 2.01203121211132E13 -2.01203121211108E13 +1 20120301010001.1 -20120301010000.9 +2 20120302020102.2 -20120302020101.8 +3 20120303030203.3 -20120303030202.7 +4 20120304040304.4 -20120304040303.6 +5 20120305050405.5 -20120305050404.5 +6 20120306060506.6 -20120306060505.4 +7 20120307070607.7 -20120307070606.3 +8 20120308080708.8 -20120308080707.2 +9 20120309090809.9 -20120309090808.1 +10 20120310100911 -20120310100909 +11 20120311111012.1 -20120311111009.9 +12 20120312121113.2 -20120312121110.8 +13 20120301010001.1 -20120301010000.9 +14 20120302020102.2 -20120302020101.8 +15 20120303030203.3 -20120303030202.7 +16 20120304040304.4 -20120304040303.6 +17 20120305050405.5 -20120305050404.5 +18 20120306060506.6 -20120306060505.4 +19 20120307070607.7 -20120307070606.3 +20 20120308080708.8 -20120308080707.2 +21 20120309090809.9 -20120309090808.1 +22 20120310100911 -20120310100909 +23 20120311111012.1 -20120311111009.9 +24 20120312121113.2 -20120312121110.8 -- !sql_test_Float_DateTimeV2_2 -- \N \N @@ -3499,56 +3499,56 @@ -- !sql_test_Float_Boolean_0 -- \N \N \N -1 0.10000000149011612 0.10000000149011612 -2 0.20000000298023224 0.20000000298023224 -3 0.30000001192092896 0.30000001192092896 +1 0.1000000014901161 0.1000000014901161 +2 0.2000000029802322 0.2000000029802322 +3 0.300000011920929 0.300000011920929 4 0.4000000059604645 0.4000000059604645 5 0.5 0.5 6 0.6000000238418579 0.6000000238418579 7 0.699999988079071 0.699999988079071 -8 1.800000011920929 -0.19999998807907104 -9 1.899999976158142 -0.10000002384185791 -10 2.0 0.0 -11 2.100000023841858 0.10000002384185791 -12 2.200000047683716 0.20000004768371582 -13 0.10000000149011612 0.10000000149011612 -14 0.20000000298023224 0.20000000298023224 -15 0.30000001192092896 0.30000001192092896 +8 1.800000011920929 -0.199999988079071 +9 1.899999976158142 -0.1000000238418579 +10 2 0 +11 2.100000023841858 0.1000000238418579 +12 2.200000047683716 0.2000000476837158 +13 0.1000000014901161 0.1000000014901161 +14 0.2000000029802322 0.2000000029802322 +15 0.300000011920929 0.300000011920929 16 0.4000000059604645 0.4000000059604645 17 0.5 0.5 18 0.6000000238418579 0.6000000238418579 19 0.699999988079071 0.699999988079071 -20 1.800000011920929 -0.19999998807907104 -21 1.899999976158142 -0.10000002384185791 -22 2.0 0.0 -23 2.100000023841858 0.10000002384185791 -24 2.200000047683716 0.20000004768371582 +20 1.800000011920929 -0.199999988079071 +21 1.899999976158142 -0.1000000238418579 +22 2 0 +23 2.100000023841858 0.1000000238418579 +24 2.200000047683716 0.2000000476837158 -- !sql_test_Float_Boolean_notn_0 -- -1 0.10000000149011612 0.10000000149011612 -2 0.20000000298023224 0.20000000298023224 -3 0.30000001192092896 0.30000001192092896 +1 0.1000000014901161 0.1000000014901161 +2 0.2000000029802322 0.2000000029802322 +3 0.300000011920929 0.300000011920929 4 0.4000000059604645 0.4000000059604645 5 0.5 0.5 6 0.6000000238418579 0.6000000238418579 7 0.699999988079071 0.699999988079071 -8 1.800000011920929 -0.19999998807907104 -9 1.899999976158142 -0.10000002384185791 -10 2.0 0.0 -11 2.100000023841858 0.10000002384185791 -12 2.200000047683716 0.20000004768371582 -13 0.10000000149011612 0.10000000149011612 -14 0.20000000298023224 0.20000000298023224 -15 0.30000001192092896 0.30000001192092896 +8 1.800000011920929 -0.199999988079071 +9 1.899999976158142 -0.1000000238418579 +10 2 0 +11 2.100000023841858 0.1000000238418579 +12 2.200000047683716 0.2000000476837158 +13 0.1000000014901161 0.1000000014901161 +14 0.2000000029802322 0.2000000029802322 +15 0.300000011920929 0.300000011920929 16 0.4000000059604645 0.4000000059604645 17 0.5 0.5 18 0.6000000238418579 0.6000000238418579 19 0.699999988079071 0.699999988079071 -20 1.800000011920929 -0.19999998807907104 -21 1.899999976158142 -0.10000002384185791 -22 2.0 0.0 -23 2.100000023841858 0.10000002384185791 -24 2.200000047683716 0.20000004768371582 +20 1.800000011920929 -0.199999988079071 +21 1.899999976158142 -0.1000000238418579 +22 2 0 +23 2.100000023841858 0.1000000238418579 +24 2.200000047683716 0.2000000476837158 -- !sql_test_Float_Boolean_2 -- \N \N @@ -3660,52 +3660,52 @@ \N \N \N 1 1.5244 -0.4756 2 2.7416 -1.2584 -3 4.0367999999999995 -1.9632 +3 4.036799999999999 -1.9632 4 5.4491 -2.5509 5 7.031000000000001 -2.969 6 8.854800000000001 -3.1452 -7 11.021799999999999 -2.9782 +7 11.0218 -2.9782 8 13.6745 -2.3255 9 17.0141 -0.9859000000000009 -10 21.3248 1.3247999999999998 +10 21.3248 1.3248 11 27.0086 5.008600000000001 12 34.634 10.634 13 1.5244 -0.4756 14 2.7416 -1.2584 -15 4.0367999999999995 -1.9632 +15 4.036799999999999 -1.9632 16 5.4491 -2.5509 17 7.031000000000001 -2.969 18 8.854800000000001 -3.1452 -19 11.021799999999999 -2.9782 +19 11.0218 -2.9782 20 13.6745 -2.3255 21 17.0141 -0.9859000000000009 -22 21.3248 1.3247999999999998 +22 21.3248 1.3248 23 27.0086 5.008600000000001 24 34.634 10.634 -- !sql_test_Double_TinyInt_notn_0 -- 1 1.5244 -0.4756 2 2.7416 -1.2584 -3 4.0367999999999995 -1.9632 +3 4.036799999999999 -1.9632 4 5.4491 -2.5509 5 7.031000000000001 -2.969 6 8.854800000000001 -3.1452 -7 11.021799999999999 -2.9782 +7 11.0218 -2.9782 8 13.6745 -2.3255 9 17.0141 -0.9859000000000009 -10 21.3248 1.3247999999999998 +10 21.3248 1.3248 11 27.0086 5.008600000000001 12 34.634 10.634 13 1.5244 -0.4756 14 2.7416 -1.2584 -15 4.0367999999999995 -1.9632 +15 4.036799999999999 -1.9632 16 5.4491 -2.5509 17 7.031000000000001 -2.969 18 8.854800000000001 -3.1452 -19 11.021799999999999 -2.9782 +19 11.0218 -2.9782 20 13.6745 -2.3255 21 17.0141 -0.9859000000000009 -22 21.3248 1.3247999999999998 +22 21.3248 1.3248 23 27.0086 5.008600000000001 24 34.634 10.634 @@ -3713,54 +3713,54 @@ \N \N \N \N 1 0.5244 0.5244 0.5244 2 1.4832 0.3708 0.7416 -3 3.1104 0.34559999999999996 1.0368 +3 3.1104 0.3456 1.0368 4 5.7964 0.362275 1.4491 -5 10.155000000000001 0.4062 2.031 +5 10.155 0.4062 2.031 6 17.1288 0.4758 2.8548 7 28.1526 0.5745428571428571 4.0218 8 45.396 0.7093125 5.6745 -9 72.12689999999999 0.8904555555555554 8.0141 -10 113.24799999999999 1.13248 1.3247999999999998 -11 176.0946 1.4553272727272728 5.008600000000001 -12 271.608 1.8861666666666668 10.634 +9 72.12689999999999 0.8904555555555554 8.014099999999999 +10 113.248 1.13248 1.3248 +11 176.0946 1.455327272727273 5.008600000000001 +12 271.608 1.886166666666667 10.634 13 0.5244 0.5244 0.5244 14 1.4832 0.3708 0.7416 -15 3.1104 0.34559999999999996 1.0368 +15 3.1104 0.3456 1.0368 16 5.7964 0.362275 1.4491 -17 10.155000000000001 0.4062 2.031 +17 10.155 0.4062 2.031 18 17.1288 0.4758 2.8548 19 28.1526 0.5745428571428571 4.0218 20 45.396 0.7093125 5.6745 -21 72.12689999999999 0.8904555555555554 8.0141 -22 113.24799999999999 1.13248 1.3247999999999998 -23 176.0946 1.4553272727272728 5.008600000000001 -24 271.608 1.8861666666666668 10.634 +21 72.12689999999999 0.8904555555555554 8.014099999999999 +22 113.248 1.13248 1.3248 +23 176.0946 1.455327272727273 5.008600000000001 +24 271.608 1.886166666666667 10.634 -- !sql_test_Double_TinyInt_notn_1 -- 1 0.5244 0.5244 0.5244 2 1.4832 0.3708 0.7416 -3 3.1104 0.34559999999999996 1.0368 +3 3.1104 0.3456 1.0368 4 5.7964 0.362275 1.4491 -5 10.155000000000001 0.4062 2.031 +5 10.155 0.4062 2.031 6 17.1288 0.4758 2.8548 7 28.1526 0.5745428571428571 4.0218 8 45.396 0.7093125 5.6745 -9 72.12689999999999 0.8904555555555554 8.0141 -10 113.24799999999999 1.13248 1.3247999999999998 -11 176.0946 1.4553272727272728 5.008600000000001 -12 271.608 1.8861666666666668 10.634 +9 72.12689999999999 0.8904555555555554 8.014099999999999 +10 113.248 1.13248 1.3248 +11 176.0946 1.455327272727273 5.008600000000001 +12 271.608 1.886166666666667 10.634 13 0.5244 0.5244 0.5244 14 1.4832 0.3708 0.7416 -15 3.1104 0.34559999999999996 1.0368 +15 3.1104 0.3456 1.0368 16 5.7964 0.362275 1.4491 -17 10.155000000000001 0.4062 2.031 +17 10.155 0.4062 2.031 18 17.1288 0.4758 2.8548 19 28.1526 0.5745428571428571 4.0218 20 45.396 0.7093125 5.6745 -21 72.12689999999999 0.8904555555555554 8.0141 -22 113.24799999999999 1.13248 1.3247999999999998 -23 176.0946 1.4553272727272728 5.008600000000001 -24 271.608 1.8861666666666668 10.634 +21 72.12689999999999 0.8904555555555554 8.014099999999999 +22 113.248 1.13248 1.3248 +23 176.0946 1.455327272727273 5.008600000000001 +24 271.608 1.886166666666667 10.634 -- !sql_test_Double_TinyInt_2 -- \N \N @@ -3978,53 +3978,53 @@ \N \N \N \N 1 5.244 0.05244 0.5244 2 14.832 0.03708 0.7416 -3 41.471999999999994 0.02592 1.0368 +3 41.47199999999999 0.02592 1.0368 4 115.928 0.01811375 1.4491 -5 324.96000000000004 0.01269375 2.031 +5 324.96 0.01269375 2.031 6 913.5360000000001 0.00892125 2.8548 -7 2573.9519999999998 0.0062840625 4.0218 +7 2573.952 0.0062840625 4.0218 8 7263.360000000001 0.004433203125 5.6745 -9 20516.095999999998 0.0031305078125 8.0141 -10 57982.975999999995 0.002211875 11.3248 -11 163928.064 0.0015633398437500002 16.0086 +9 20516.096 0.0031305078125 8.014099999999999 +10 57982.976 0.002211875 11.3248 +11 163928.064 0.00156333984375 16.0086 12 463544.32 0.00110517578125 22.634 13 5.244 0.05244 0.5244 14 14.832 0.03708 0.7416 -15 41.471999999999994 0.02592 1.0368 +15 41.47199999999999 0.02592 1.0368 16 115.928 0.01811375 1.4491 -17 324.96000000000004 0.01269375 2.031 +17 324.96 0.01269375 2.031 18 913.5360000000001 0.00892125 2.8548 -19 2573.9519999999998 0.0062840625 4.0218 +19 2573.952 0.0062840625 4.0218 20 7263.360000000001 0.004433203125 5.6745 -21 20516.095999999998 0.0031305078125 8.0141 -22 57982.975999999995 0.002211875 11.3248 -23 163928.064 0.0015633398437500002 16.0086 +21 20516.096 0.0031305078125 8.014099999999999 +22 57982.976 0.002211875 11.3248 +23 163928.064 0.00156333984375 16.0086 24 463544.32 0.00110517578125 22.634 -- !sql_test_Double_SmallInt_notn_1 -- 1 5.244 0.05244 0.5244 2 14.832 0.03708 0.7416 -3 41.471999999999994 0.02592 1.0368 +3 41.47199999999999 0.02592 1.0368 4 115.928 0.01811375 1.4491 -5 324.96000000000004 0.01269375 2.031 +5 324.96 0.01269375 2.031 6 913.5360000000001 0.00892125 2.8548 -7 2573.9519999999998 0.0062840625 4.0218 +7 2573.952 0.0062840625 4.0218 8 7263.360000000001 0.004433203125 5.6745 -9 20516.095999999998 0.0031305078125 8.0141 -10 57982.975999999995 0.002211875 11.3248 -11 163928.064 0.0015633398437500002 16.0086 +9 20516.096 0.0031305078125 8.014099999999999 +10 57982.976 0.002211875 11.3248 +11 163928.064 0.00156333984375 16.0086 12 463544.32 0.00110517578125 22.634 13 5.244 0.05244 0.5244 14 14.832 0.03708 0.7416 -15 41.471999999999994 0.02592 1.0368 +15 41.47199999999999 0.02592 1.0368 16 115.928 0.01811375 1.4491 -17 324.96000000000004 0.01269375 2.031 +17 324.96 0.01269375 2.031 18 913.5360000000001 0.00892125 2.8548 -19 2573.9519999999998 0.0062840625 4.0218 +19 2573.952 0.0062840625 4.0218 20 7263.360000000001 0.004433203125 5.6745 -21 20516.095999999998 0.0031305078125 8.0141 -22 57982.975999999995 0.002211875 11.3248 -23 163928.064 0.0015633398437500002 16.0086 +21 20516.096 0.0031305078125 8.014099999999999 +22 57982.976 0.002211875 11.3248 +23 163928.064 0.00156333984375 16.0086 24 463544.32 0.00110517578125 22.634 -- !sql_test_Double_SmallInt_2 -- @@ -4144,9 +4144,9 @@ 7 1520049.0218 -1520040.9782 8 3040050.6745 -3040039.3255 9 6080053.0141 -6080036.9859 -10 1.21600563248E7 -1.21600336752E7 -11 2.43200610086E7 -2.43200289914E7 -12 4.8640067634E7 -4.8640022366E7 +10 12160056.3248 -12160033.6752 +11 24320061.0086 -24320028.9914 +12 48640067.634 -48640022.366 13 23795.5244 -23794.4756 14 47545.7416 -47544.2584 15 95046.0368 -95043.9632 @@ -4156,9 +4156,9 @@ 19 1520049.0218 -1520040.9782 20 3040050.6745 -3040039.3255 21 6080053.0141 -6080036.9859 -22 1.21600563248E7 -1.21600336752E7 -23 2.43200610086E7 -2.43200289914E7 -24 4.8640067634E7 -4.8640022366E7 +22 12160056.3248 -12160033.6752 +23 24320061.0086 -24320028.9914 +24 48640067.634 -48640022.366 -- !sql_test_Double_Integer_notn_0 -- 1 23795.5244 -23794.4756 @@ -4170,9 +4170,9 @@ 7 1520049.0218 -1520040.9782 8 3040050.6745 -3040039.3255 9 6080053.0141 -6080036.9859 -10 1.21600563248E7 -1.21600336752E7 -11 2.43200610086E7 -2.43200289914E7 -12 4.8640067634E7 -4.8640022366E7 +10 12160056.3248 -12160033.6752 +11 24320061.0086 -24320028.9914 +12 48640067.634 -48640022.366 13 23795.5244 -23794.4756 14 47545.7416 -47544.2584 15 95046.0368 -95043.9632 @@ -4182,62 +4182,62 @@ 19 1520049.0218 -1520040.9782 20 3040050.6745 -3040039.3255 21 6080053.0141 -6080036.9859 -22 1.21600563248E7 -1.21600336752E7 -23 2.43200610086E7 -2.43200289914E7 -24 4.8640067634E7 -4.8640022366E7 +22 12160056.3248 -12160033.6752 +23 24320061.0086 -24320028.9914 +24 48640067.634 -48640022.366 -- !sql_test_Double_Integer_1 -- \N \N \N \N -1 12478.098 2.203824332843034E-5 0.5244 -2 35259.372 1.5597854664002523E-5 0.7416 -3 98542.65599999999 1.0908517018254511E-5 1.0368 -4 275394.2095 7.625036175642611E-6 1.4491 -5 771871.395 5.344103987685669E-6 2.031 -6 2169776.466 3.756093389207218E-6 2.8548 -7 6113316.981 2.6458427217615267E-6 4.0218 -8 1.72507353525E7 1.8665842117468656E-6 5.6745 -9 4.87260886345E7 1.3180987969661408E-6 8.0141 -10 1.37710077616E8 9.313123430053096E-7 11.3248 -11 3.89329872387E8 6.582471372894253E-7 16.0086 -12 1.10091877853E9 4.6533674053961096E-7 22.634 -13 12478.098 2.203824332843034E-5 0.5244 -14 35259.372 1.5597854664002523E-5 0.7416 -15 98542.65599999999 1.0908517018254511E-5 1.0368 -16 275394.2095 7.625036175642611E-6 1.4491 -17 771871.395 5.344103987685669E-6 2.031 -18 2169776.466 3.756093389207218E-6 2.8548 -19 6113316.981 2.6458427217615267E-6 4.0218 -20 1.72507353525E7 1.8665842117468656E-6 5.6745 -21 4.87260886345E7 1.3180987969661408E-6 8.0141 -22 1.37710077616E8 9.313123430053096E-7 11.3248 -23 3.89329872387E8 6.582471372894253E-7 16.0086 -24 1.10091877853E9 4.6533674053961096E-7 22.634 +1 12478.098 2.203824332843034e-05 0.5244 +2 35259.372 1.559785466400252e-05 0.7416 +3 98542.65599999999 1.090851701825451e-05 1.0368 +4 275394.2095 7.625036175642611e-06 1.4491 +5 771871.395 5.344103987685669e-06 2.031 +6 2169776.466 3.756093389207218e-06 2.8548 +7 6113316.981 2.645842721761527e-06 4.0218 +8 17250735.3525 1.866584211746866e-06 5.6745 +9 48726088.6345 1.318098796966141e-06 8.014099999999999 +10 137710077.616 9.313123430053096e-07 11.3248 +11 389329872.387 6.582471372894253e-07 16.0086 +12 1100918778.53 4.65336740539611e-07 22.634 +13 12478.098 2.203824332843034e-05 0.5244 +14 35259.372 1.559785466400252e-05 0.7416 +15 98542.65599999999 1.090851701825451e-05 1.0368 +16 275394.2095 7.625036175642611e-06 1.4491 +17 771871.395 5.344103987685669e-06 2.031 +18 2169776.466 3.756093389207218e-06 2.8548 +19 6113316.981 2.645842721761527e-06 4.0218 +20 17250735.3525 1.866584211746866e-06 5.6745 +21 48726088.6345 1.318098796966141e-06 8.014099999999999 +22 137710077.616 9.313123430053096e-07 11.3248 +23 389329872.387 6.582471372894253e-07 16.0086 +24 1100918778.53 4.65336740539611e-07 22.634 -- !sql_test_Double_Integer_notn_1 -- -1 12478.098 2.203824332843034E-5 0.5244 -2 35259.372 1.5597854664002523E-5 0.7416 -3 98542.65599999999 1.0908517018254511E-5 1.0368 -4 275394.2095 7.625036175642611E-6 1.4491 -5 771871.395 5.344103987685669E-6 2.031 -6 2169776.466 3.756093389207218E-6 2.8548 -7 6113316.981 2.6458427217615267E-6 4.0218 -8 1.72507353525E7 1.8665842117468656E-6 5.6745 -9 4.87260886345E7 1.3180987969661408E-6 8.0141 -10 1.37710077616E8 9.313123430053096E-7 11.3248 -11 3.89329872387E8 6.582471372894253E-7 16.0086 -12 1.10091877853E9 4.6533674053961096E-7 22.634 -13 12478.098 2.203824332843034E-5 0.5244 -14 35259.372 1.5597854664002523E-5 0.7416 -15 98542.65599999999 1.0908517018254511E-5 1.0368 -16 275394.2095 7.625036175642611E-6 1.4491 -17 771871.395 5.344103987685669E-6 2.031 -18 2169776.466 3.756093389207218E-6 2.8548 -19 6113316.981 2.6458427217615267E-6 4.0218 -20 1.72507353525E7 1.8665842117468656E-6 5.6745 -21 4.87260886345E7 1.3180987969661408E-6 8.0141 -22 1.37710077616E8 9.313123430053096E-7 11.3248 -23 3.89329872387E8 6.582471372894253E-7 16.0086 -24 1.10091877853E9 4.6533674053961096E-7 22.634 +1 12478.098 2.203824332843034e-05 0.5244 +2 35259.372 1.559785466400252e-05 0.7416 +3 98542.65599999999 1.090851701825451e-05 1.0368 +4 275394.2095 7.625036175642611e-06 1.4491 +5 771871.395 5.344103987685669e-06 2.031 +6 2169776.466 3.756093389207218e-06 2.8548 +7 6113316.981 2.645842721761527e-06 4.0218 +8 17250735.3525 1.866584211746866e-06 5.6745 +9 48726088.6345 1.318098796966141e-06 8.014099999999999 +10 137710077.616 9.313123430053096e-07 11.3248 +11 389329872.387 6.582471372894253e-07 16.0086 +12 1100918778.53 4.65336740539611e-07 22.634 +13 12478.098 2.203824332843034e-05 0.5244 +14 35259.372 1.559785466400252e-05 0.7416 +15 98542.65599999999 1.090851701825451e-05 1.0368 +16 275394.2095 7.625036175642611e-06 1.4491 +17 771871.395 5.344103987685669e-06 2.031 +18 2169776.466 3.756093389207218e-06 2.8548 +19 6113316.981 2.645842721761527e-06 4.0218 +20 17250735.3525 1.866584211746866e-06 5.6745 +21 48726088.6345 1.318098796966141e-06 8.014099999999999 +22 137710077.616 9.313123430053096e-07 11.3248 +23 389329872.387 6.582471372894253e-07 16.0086 +24 1100918778.53 4.65336740539611e-07 22.634 -- !sql_test_Double_Integer_2 -- \N \N @@ -4348,108 +4348,108 @@ -- !sql_test_Double_BigInt_0 -- \N \N \N 1 5354529.5244 -5354528.4756 -2 1.06982797416E7 -1.06982782584E7 -3 2.13857800368E7 -2.13857779632E7 -4 4.27607804491E7 -4.27607775509E7 -5 8.5510781031E7 -8.5510776969E7 -6 1.710107818548E8 -1.710107761452E8 -7 3.420107830218E8 -3.420107749782E8 -8 6.840107846745E8 -6.840107733255E8 -9 1.3680107870141E9 -1.3680107709859E9 -10 2.7360107903248E9 -2.7360107676752E9 -11 5.4720107950086E9 -5.4720107629914E9 -12 1.0944010801634E10 -1.0944010756366E10 +2 10698279.7416 -10698278.2584 +3 21385780.0368 -21385777.9632 +4 42760780.4491 -42760777.5509 +5 85510781.031 -85510776.969 +6 171010781.8548 -171010776.1452 +7 342010783.0218 -342010774.9782 +8 684010784.6745 -684010773.3255 +9 1368010787.0141 -1368010770.9859 +10 2736010790.3248 -2736010767.6752 +11 5472010795.0086 -5472010762.9914 +12 10944010801.634 -10944010756.366 13 5354529.5244 -5354528.4756 -14 1.06982797416E7 -1.06982782584E7 -15 2.13857800368E7 -2.13857779632E7 -16 4.27607804491E7 -4.27607775509E7 -17 8.5510781031E7 -8.5510776969E7 -18 1.710107818548E8 -1.710107761452E8 -19 3.420107830218E8 -3.420107749782E8 -20 6.840107846745E8 -6.840107733255E8 -21 1.3680107870141E9 -1.3680107709859E9 -22 2.7360107903248E9 -2.7360107676752E9 -23 5.4720107950086E9 -5.4720107629914E9 -24 1.0944010801634E10 -1.0944010756366E10 +14 10698279.7416 -10698278.2584 +15 21385780.0368 -21385777.9632 +16 42760780.4491 -42760777.5509 +17 85510781.031 -85510776.969 +18 171010781.8548 -171010776.1452 +19 342010783.0218 -342010774.9782 +20 684010784.6745 -684010773.3255 +21 1368010787.0141 -1368010770.9859 +22 2736010790.3248 -2736010767.6752 +23 5472010795.0086 -5472010762.9914 +24 10944010801.634 -10944010756.366 -- !sql_test_Double_BigInt_notn_0 -- 1 5354529.5244 -5354528.4756 -2 1.06982797416E7 -1.06982782584E7 -3 2.13857800368E7 -2.13857779632E7 -4 4.27607804491E7 -4.27607775509E7 -5 8.5510781031E7 -8.5510776969E7 -6 1.710107818548E8 -1.710107761452E8 -7 3.420107830218E8 -3.420107749782E8 -8 6.840107846745E8 -6.840107733255E8 -9 1.3680107870141E9 -1.3680107709859E9 -10 2.7360107903248E9 -2.7360107676752E9 -11 5.4720107950086E9 -5.4720107629914E9 -12 1.0944010801634E10 -1.0944010756366E10 +2 10698279.7416 -10698278.2584 +3 21385780.0368 -21385777.9632 +4 42760780.4491 -42760777.5509 +5 85510781.031 -85510776.969 +6 171010781.8548 -171010776.1452 +7 342010783.0218 -342010774.9782 +8 684010784.6745 -684010773.3255 +9 1368010787.0141 -1368010770.9859 +10 2736010790.3248 -2736010767.6752 +11 5472010795.0086 -5472010762.9914 +12 10944010801.634 -10944010756.366 13 5354529.5244 -5354528.4756 -14 1.06982797416E7 -1.06982782584E7 -15 2.13857800368E7 -2.13857779632E7 -16 4.27607804491E7 -4.27607775509E7 -17 8.5510781031E7 -8.5510776969E7 -18 1.710107818548E8 -1.710107761452E8 -19 3.420107830218E8 -3.420107749782E8 -20 6.840107846745E8 -6.840107733255E8 -21 1.3680107870141E9 -1.3680107709859E9 -22 2.7360107903248E9 -2.7360107676752E9 -23 5.4720107950086E9 -5.4720107629914E9 -24 1.0944010801634E10 -1.0944010756366E10 +14 10698279.7416 -10698278.2584 +15 21385780.0368 -21385777.9632 +16 42760780.4491 -42760777.5509 +17 85510781.031 -85510776.969 +18 171010781.8548 -171010776.1452 +19 342010783.0218 -342010774.9782 +20 684010784.6745 -684010773.3255 +21 1368010787.0141 -1368010770.9859 +22 2736010790.3248 -2736010767.6752 +23 5472010795.0086 -5472010762.9914 +24 10944010801.634 -10944010756.366 -- !sql_test_Double_BigInt_1 -- \N \N \N \N -1 2807915.0075999997 9.793578482813333E-8 0.5244 -2 7933843.7064000005 6.931956065082992E-8 0.7416 -3 2.21727756672E7 4.848081521837479E-8 1.0368 -4 6.1964644848900005E7 3.38885313572047E-8 1.4491 -5 1.7367239214900002E8 2.3751391622803485E-8 2.031 -6 4.882015718892E8 1.6693684554235027E-8 2.8548 -7 1.3754989509822E9 1.175927849923116E-8 4.0218 -8 3.8814191654355E9 8.295921898037809E-9 5.6745 -9 1.0963375183983898E10 5.858214074788368E-9 8.0141 -10 3.09847748700192E10 4.139164979510484E-9 11.3248 -11 8.75992317566994E10 2.9255424827444406E-9 16.0086 -12 2.4770673997188602E11 2.068163167696383E-9 22.634 -13 2807915.0075999997 9.793578482813333E-8 0.5244 -14 7933843.7064000005 6.931956065082992E-8 0.7416 -15 2.21727756672E7 4.848081521837479E-8 1.0368 -16 6.1964644848900005E7 3.38885313572047E-8 1.4491 -17 1.7367239214900002E8 2.3751391622803485E-8 2.031 -18 4.882015718892E8 1.6693684554235027E-8 2.8548 -19 1.3754989509822E9 1.175927849923116E-8 4.0218 -20 3.8814191654355E9 8.295921898037809E-9 5.6745 -21 1.0963375183983898E10 5.858214074788368E-9 8.0141 -22 3.09847748700192E10 4.139164979510484E-9 11.3248 -23 8.75992317566994E10 2.9255424827444406E-9 16.0086 -24 2.4770673997188602E11 2.068163167696383E-9 22.634 +1 2807915.0076 9.793578482813333e-08 0.5244 +2 7933843.7064 6.931956065082992e-08 0.7416 +3 22172775.6672 4.848081521837479e-08 1.0368 +4 61964644.84890001 3.38885313572047e-08 1.4491 +5 173672392.149 2.375139162280348e-08 2.031 +6 488201571.8892 1.669368455423503e-08 2.8548 +7 1375498950.9822 1.175927849923116e-08 4.0218 +8 3881419165.4355 8.295921898037809e-09 5.6745 +9 10963375183.9839 5.858214074788368e-09 8.014099999999999 +10 30984774870.0192 4.139164979510484e-09 11.3248 +11 87599231756.6994 2.925542482744441e-09 16.0086 +12 247706739971.886 2.068163167696383e-09 22.634 +13 2807915.0076 9.793578482813333e-08 0.5244 +14 7933843.7064 6.931956065082992e-08 0.7416 +15 22172775.6672 4.848081521837479e-08 1.0368 +16 61964644.84890001 3.38885313572047e-08 1.4491 +17 173672392.149 2.375139162280348e-08 2.031 +18 488201571.8892 1.669368455423503e-08 2.8548 +19 1375498950.9822 1.175927849923116e-08 4.0218 +20 3881419165.4355 8.295921898037809e-09 5.6745 +21 10963375183.9839 5.858214074788368e-09 8.014099999999999 +22 30984774870.0192 4.139164979510484e-09 11.3248 +23 87599231756.6994 2.925542482744441e-09 16.0086 +24 247706739971.886 2.068163167696383e-09 22.634 -- !sql_test_Double_BigInt_notn_1 -- -1 2807915.0075999997 9.793578482813333E-8 0.5244 -2 7933843.7064000005 6.931956065082992E-8 0.7416 -3 2.21727756672E7 4.848081521837479E-8 1.0368 -4 6.1964644848900005E7 3.38885313572047E-8 1.4491 -5 1.7367239214900002E8 2.3751391622803485E-8 2.031 -6 4.882015718892E8 1.6693684554235027E-8 2.8548 -7 1.3754989509822E9 1.175927849923116E-8 4.0218 -8 3.8814191654355E9 8.295921898037809E-9 5.6745 -9 1.0963375183983898E10 5.858214074788368E-9 8.0141 -10 3.09847748700192E10 4.139164979510484E-9 11.3248 -11 8.75992317566994E10 2.9255424827444406E-9 16.0086 -12 2.4770673997188602E11 2.068163167696383E-9 22.634 -13 2807915.0075999997 9.793578482813333E-8 0.5244 -14 7933843.7064000005 6.931956065082992E-8 0.7416 -15 2.21727756672E7 4.848081521837479E-8 1.0368 -16 6.1964644848900005E7 3.38885313572047E-8 1.4491 -17 1.7367239214900002E8 2.3751391622803485E-8 2.031 -18 4.882015718892E8 1.6693684554235027E-8 2.8548 -19 1.3754989509822E9 1.175927849923116E-8 4.0218 -20 3.8814191654355E9 8.295921898037809E-9 5.6745 -21 1.0963375183983898E10 5.858214074788368E-9 8.0141 -22 3.09847748700192E10 4.139164979510484E-9 11.3248 -23 8.75992317566994E10 2.9255424827444406E-9 16.0086 -24 2.4770673997188602E11 2.068163167696383E-9 22.634 +1 2807915.0076 9.793578482813333e-08 0.5244 +2 7933843.7064 6.931956065082992e-08 0.7416 +3 22172775.6672 4.848081521837479e-08 1.0368 +4 61964644.84890001 3.38885313572047e-08 1.4491 +5 173672392.149 2.375139162280348e-08 2.031 +6 488201571.8892 1.669368455423503e-08 2.8548 +7 1375498950.9822 1.175927849923116e-08 4.0218 +8 3881419165.4355 8.295921898037809e-09 5.6745 +9 10963375183.9839 5.858214074788368e-09 8.014099999999999 +10 30984774870.0192 4.139164979510484e-09 11.3248 +11 87599231756.6994 2.925542482744441e-09 16.0086 +12 247706739971.886 2.068163167696383e-09 22.634 +13 2807915.0076 9.793578482813333e-08 0.5244 +14 7933843.7064 6.931956065082992e-08 0.7416 +15 22172775.6672 4.848081521837479e-08 1.0368 +16 61964644.84890001 3.38885313572047e-08 1.4491 +17 173672392.149 2.375139162280348e-08 2.031 +18 488201571.8892 1.669368455423503e-08 2.8548 +19 1375498950.9822 1.175927849923116e-08 4.0218 +20 3881419165.4355 8.295921898037809e-09 5.6745 +21 10963375183.9839 5.858214074788368e-09 8.014099999999999 +22 30984774870.0192 4.139164979510484e-09 11.3248 +23 87599231756.6994 2.925542482744441e-09 16.0086 +24 247706739971.886 2.068163167696383e-09 22.634 -- !sql_test_Double_BigInt_2 -- \N \N @@ -4559,109 +4559,109 @@ -- !sql_test_Double_LargeInt_0 -- \N \N \N -1 1.070906455244E8 -1.070906444756E8 -2 2.139656457416E8 -2.139656442584E8 -3 4.277156460368E8 -4.277156439632E8 -4 8.552156464491E8 -8.552156435509E8 -5 1.710215647031E9 -1.710215642969E9 -6 3.4202156478548E9 -3.4202156421452E9 -7 6.8402156490218E9 -6.8402156409782E9 -8 1.36802156506745E10 -1.36802156393255E10 -9 2.73602156530141E10 -2.73602156369859E10 -10 5.47202156563248E10 -5.47202156336752E10 -11 1.094402156610086E11 -1.094402156289914E11 -12 2.18880215667634E11 -2.18880215622366E11 -13 1.070906455244E8 -1.070906444756E8 -14 2.139656457416E8 -2.139656442584E8 -15 4.277156460368E8 -4.277156439632E8 -16 8.552156464491E8 -8.552156435509E8 -17 1.710215647031E9 -1.710215642969E9 -18 3.4202156478548E9 -3.4202156421452E9 -19 6.8402156490218E9 -6.8402156409782E9 -20 1.36802156506745E10 -1.36802156393255E10 -21 2.73602156530141E10 -2.73602156369859E10 -22 5.47202156563248E10 -5.47202156336752E10 -23 1.094402156610086E11 -1.094402156289914E11 -24 2.18880215667634E11 -2.18880215622366E11 +1 107090645.5244 -107090644.4756 +2 213965645.7416 -213965644.2584 +3 427715646.0368 -427715643.9632 +4 855215646.4491 -855215643.5509 +5 1710215647.031 -1710215642.969 +6 3420215647.8548 -3420215642.1452 +7 6840215649.0218 -6840215640.9782 +8 13680215650.6745 -13680215639.3255 +9 27360215653.0141 -27360215636.9859 +10 54720215656.3248 -54720215633.6752 +11 109440215661.0086 -109440215628.9914 +12 218880215667.634 -218880215622.366 +13 107090645.5244 -107090644.4756 +14 213965645.7416 -213965644.2584 +15 427715646.0368 -427715643.9632 +16 855215646.4491 -855215643.5509 +17 1710215647.031 -1710215642.969 +18 3420215647.8548 -3420215642.1452 +19 6840215649.0218 -6840215640.9782 +20 13680215650.6745 -13680215639.3255 +21 27360215653.0141 -27360215636.9859 +22 54720215656.3248 -54720215633.6752 +23 109440215661.0086 -109440215628.9914 +24 218880215667.634 -218880215622.366 -- !sql_test_Double_LargeInt_notn_0 -- -1 1.070906455244E8 -1.070906444756E8 -2 2.139656457416E8 -2.139656442584E8 -3 4.277156460368E8 -4.277156439632E8 -4 8.552156464491E8 -8.552156435509E8 -5 1.710215647031E9 -1.710215642969E9 -6 3.4202156478548E9 -3.4202156421452E9 -7 6.8402156490218E9 -6.8402156409782E9 -8 1.36802156506745E10 -1.36802156393255E10 -9 2.73602156530141E10 -2.73602156369859E10 -10 5.47202156563248E10 -5.47202156336752E10 -11 1.094402156610086E11 -1.094402156289914E11 -12 2.18880215667634E11 -2.18880215622366E11 -13 1.070906455244E8 -1.070906444756E8 -14 2.139656457416E8 -2.139656442584E8 -15 4.277156460368E8 -4.277156439632E8 -16 8.552156464491E8 -8.552156435509E8 -17 1.710215647031E9 -1.710215642969E9 -18 3.4202156478548E9 -3.4202156421452E9 -19 6.8402156490218E9 -6.8402156409782E9 -20 1.36802156506745E10 -1.36802156393255E10 -21 2.73602156530141E10 -2.73602156369859E10 -22 5.47202156563248E10 -5.47202156336752E10 -23 1.094402156610086E11 -1.094402156289914E11 -24 2.18880215667634E11 -2.18880215622366E11 +1 107090645.5244 -107090644.4756 +2 213965645.7416 -213965644.2584 +3 427715646.0368 -427715643.9632 +4 855215646.4491 -855215643.5509 +5 1710215647.031 -1710215642.969 +6 3420215647.8548 -3420215642.1452 +7 6840215649.0218 -6840215640.9782 +8 13680215650.6745 -13680215639.3255 +9 27360215653.0141 -27360215636.9859 +10 54720215656.3248 -54720215633.6752 +11 109440215661.0086 -109440215628.9914 +12 218880215667.634 -218880215622.366 +13 107090645.5244 -107090644.4756 +14 213965645.7416 -213965644.2584 +15 427715646.0368 -427715643.9632 +16 855215646.4491 -855215643.5509 +17 1710215647.031 -1710215642.969 +18 3420215647.8548 -3420215642.1452 +19 6840215649.0218 -6840215640.9782 +20 13680215650.6745 -13680215639.3255 +21 27360215653.0141 -27360215636.9859 +22 54720215656.3248 -54720215633.6752 +23 109440215661.0086 -109440215628.9914 +24 218880215667.634 -218880215622.366 -- !sql_test_Double_LargeInt_1 -- \N \N \N \N -1 5.6158334238E7 4.896786269239484E-9 0.5244 -2 1.5867692233200002E8 3.465976979622126E-9 0.7416 -3 4.43455580736E8 2.4240403925369622E-9 1.0368 -4 1.2392929911695E9 1.6944264390766613E-9 1.4491 -5 3.4734479749950004E9 1.1875695360043325E-9 2.031 -6 9.764031623346E9 8.346842118488702E-10 2.8548 -7 2.7509979281060997E10 5.879639193743577E-10 4.0218 -8 7.76283836775525E10 4.147960929310336E-10 5.6745 -9 2.1926750420059448E11 2.9291070304354684E-10 8.0141 -10 6.19695498136496E11 2.0695824872968662E-10 11.3248 -11 1.751984636174547E12 1.4627712405034343E-10 16.0086 -12 4.95413480090893E12 1.0340815835411044E-10 22.634 -13 5.6158334238E7 4.896786269239484E-9 0.5244 -14 1.5867692233200002E8 3.465976979622126E-9 0.7416 -15 4.43455580736E8 2.4240403925369622E-9 1.0368 -16 1.2392929911695E9 1.6944264390766613E-9 1.4491 -17 3.4734479749950004E9 1.1875695360043325E-9 2.031 -18 9.764031623346E9 8.346842118488702E-10 2.8548 -19 2.7509979281060997E10 5.879639193743577E-10 4.0218 -20 7.76283836775525E10 4.147960929310336E-10 5.6745 -21 2.1926750420059448E11 2.9291070304354684E-10 8.0141 -22 6.19695498136496E11 2.0695824872968662E-10 11.3248 -23 1.751984636174547E12 1.4627712405034343E-10 16.0086 -24 4.95413480090893E12 1.0340815835411044E-10 22.634 +1 56158334.238 4.896786269239484e-09 0.5244 +2 158676922.332 3.465976979622126e-09 0.7416 +3 443455580.736 2.424040392536962e-09 1.0368 +4 1239292991.1695 1.694426439076661e-09 1.4491 +5 3473447974.995 1.187569536004332e-09 2.031 +6 9764031623.346001 8.346842118488702e-10 2.8548 +7 27509979281.061 5.879639193743577e-10 4.0218 +8 77628383677.55251 4.147960929310336e-10 5.6745 +9 219267504200.5945 2.929107030435468e-10 8.014099999999999 +10 619695498136.496 2.069582487296866e-10 11.3248 +11 1751984636174.547 1.462771240503434e-10 16.0086 +12 4954134800908.93 1.034081583541104e-10 22.634 +13 56158334.238 4.896786269239484e-09 0.5244 +14 158676922.332 3.465976979622126e-09 0.7416 +15 443455580.736 2.424040392536962e-09 1.0368 +16 1239292991.1695 1.694426439076661e-09 1.4491 +17 3473447974.995 1.187569536004332e-09 2.031 +18 9764031623.346001 8.346842118488702e-10 2.8548 +19 27509979281.061 5.879639193743577e-10 4.0218 +20 77628383677.55251 4.147960929310336e-10 5.6745 +21 219267504200.5945 2.929107030435468e-10 8.014099999999999 +22 619695498136.496 2.069582487296866e-10 11.3248 +23 1751984636174.547 1.462771240503434e-10 16.0086 +24 4954134800908.93 1.034081583541104e-10 22.634 -- !sql_test_Double_LargeInt_notn_1 -- -1 5.6158334238E7 4.896786269239484E-9 0.5244 -2 1.5867692233200002E8 3.465976979622126E-9 0.7416 -3 4.43455580736E8 2.4240403925369622E-9 1.0368 -4 1.2392929911695E9 1.6944264390766613E-9 1.4491 -5 3.4734479749950004E9 1.1875695360043325E-9 2.031 -6 9.764031623346E9 8.346842118488702E-10 2.8548 -7 2.7509979281060997E10 5.879639193743577E-10 4.0218 -8 7.76283836775525E10 4.147960929310336E-10 5.6745 -9 2.1926750420059448E11 2.9291070304354684E-10 8.0141 -10 6.19695498136496E11 2.0695824872968662E-10 11.3248 -11 1.751984636174547E12 1.4627712405034343E-10 16.0086 -12 4.95413480090893E12 1.0340815835411044E-10 22.634 -13 5.6158334238E7 4.896786269239484E-9 0.5244 -14 1.5867692233200002E8 3.465976979622126E-9 0.7416 -15 4.43455580736E8 2.4240403925369622E-9 1.0368 -16 1.2392929911695E9 1.6944264390766613E-9 1.4491 -17 3.4734479749950004E9 1.1875695360043325E-9 2.031 -18 9.764031623346E9 8.346842118488702E-10 2.8548 -19 2.7509979281060997E10 5.879639193743577E-10 4.0218 -20 7.76283836775525E10 4.147960929310336E-10 5.6745 -21 2.1926750420059448E11 2.9291070304354684E-10 8.0141 -22 6.19695498136496E11 2.0695824872968662E-10 11.3248 -23 1.751984636174547E12 1.4627712405034343E-10 16.0086 -24 4.95413480090893E12 1.0340815835411044E-10 22.634 +1 56158334.238 4.896786269239484e-09 0.5244 +2 158676922.332 3.465976979622126e-09 0.7416 +3 443455580.736 2.424040392536962e-09 1.0368 +4 1239292991.1695 1.694426439076661e-09 1.4491 +5 3473447974.995 1.187569536004332e-09 2.031 +6 9764031623.346001 8.346842118488702e-10 2.8548 +7 27509979281.061 5.879639193743577e-10 4.0218 +8 77628383677.55251 4.147960929310336e-10 5.6745 +9 219267504200.5945 2.929107030435468e-10 8.014099999999999 +10 619695498136.496 2.069582487296866e-10 11.3248 +11 1751984636174.547 1.462771240503434e-10 16.0086 +12 4954134800908.93 1.034081583541104e-10 22.634 +13 56158334.238 4.896786269239484e-09 0.5244 +14 158676922.332 3.465976979622126e-09 0.7416 +15 443455580.736 2.424040392536962e-09 1.0368 +16 1239292991.1695 1.694426439076661e-09 1.4491 +17 3473447974.995 1.187569536004332e-09 2.031 +18 9764031623.346001 8.346842118488702e-10 2.8548 +19 27509979281.061 5.879639193743577e-10 4.0218 +20 77628383677.55251 4.147960929310336e-10 5.6745 +21 219267504200.5945 2.929107030435468e-10 8.014099999999999 +22 619695498136.496 2.069582487296866e-10 11.3248 +23 1751984636174.547 1.462771240503434e-10 16.0086 +24 4954134800908.93 1.034081583541104e-10 22.634 -- !sql_test_Double_LargeInt_2 -- \N \N @@ -4771,109 +4771,109 @@ -- !sql_test_Double_Float_0 -- \N \N \N -1 0.6244000014901161 0.42439999850988386 +1 0.6244000014901161 0.4243999985098839 2 0.9416000029802323 0.5415999970197678 3 1.336800011920929 0.736799988079071 -4 1.8491000059604645 1.0490999940395356 -5 2.531 1.5310000000000001 +4 1.849100005960465 1.049099994039536 +5 2.531 1.531 6 3.454800023841858 2.254799976158142 -7 4.721799988079071 3.3218000119209288 +7 4.721799988079071 3.321800011920929 8 6.474500011920929 4.874499988079071 9 8.914099976158141 7.114100023841857 10 12.3248 10.3248 -11 17.10860002384186 14.908599976158143 -12 23.834000047683716 21.433999952316285 -13 0.6244000014901161 0.42439999850988386 +11 17.10860002384186 14.90859997615814 +12 23.83400004768372 21.43399995231628 +13 0.6244000014901161 0.4243999985098839 14 0.9416000029802323 0.5415999970197678 15 1.336800011920929 0.736799988079071 -16 1.8491000059604645 1.0490999940395356 -17 2.531 1.5310000000000001 +16 1.849100005960465 1.049099994039536 +17 2.531 1.531 18 3.454800023841858 2.254799976158142 -19 4.721799988079071 3.3218000119209288 +19 4.721799988079071 3.321800011920929 20 6.474500011920929 4.874499988079071 21 8.914099976158141 7.114100023841857 22 12.3248 10.3248 -23 17.10860002384186 14.908599976158143 -24 23.834000047683716 21.433999952316285 +23 17.10860002384186 14.90859997615814 +24 23.83400004768372 21.43399995231628 -- !sql_test_Double_Float_notn_0 -- -1 0.6244000014901161 0.42439999850988386 +1 0.6244000014901161 0.4243999985098839 2 0.9416000029802323 0.5415999970197678 3 1.336800011920929 0.736799988079071 -4 1.8491000059604645 1.0490999940395356 -5 2.531 1.5310000000000001 +4 1.849100005960465 1.049099994039536 +5 2.531 1.531 6 3.454800023841858 2.254799976158142 -7 4.721799988079071 3.3218000119209288 +7 4.721799988079071 3.321800011920929 8 6.474500011920929 4.874499988079071 9 8.914099976158141 7.114100023841857 10 12.3248 10.3248 -11 17.10860002384186 14.908599976158143 -12 23.834000047683716 21.433999952316285 -13 0.6244000014901161 0.42439999850988386 +11 17.10860002384186 14.90859997615814 +12 23.83400004768372 21.43399995231628 +13 0.6244000014901161 0.4243999985098839 14 0.9416000029802323 0.5415999970197678 15 1.336800011920929 0.736799988079071 -16 1.8491000059604645 1.0490999940395356 -17 2.531 1.5310000000000001 +16 1.849100005960465 1.049099994039536 +17 2.531 1.531 18 3.454800023841858 2.254799976158142 -19 4.721799988079071 3.3218000119209288 +19 4.721799988079071 3.321800011920929 20 6.474500011920929 4.874499988079071 21 8.914099976158141 7.114100023841857 22 12.3248 10.3248 -23 17.10860002384186 14.908599976158143 -24 23.834000047683716 21.433999952316285 +23 17.10860002384186 14.90859997615814 +24 23.83400004768372 21.43399995231628 -- !sql_test_Double_Float_1 -- \N \N \N \N 1 0.05244000078141689 5.243999921858312 0.02439999254941938 -2 0.14832000221014024 3.7079999447464953 0.14159999105930332 -3 0.31104001235961914 3.455999862670904 0.13679996423721308 -4 0.5796400086373091 3.6227499460168193 0.24909998211860662 +2 0.1483200022101402 3.707999944746495 0.1415999910593033 +3 0.3110400123596191 3.455999862670904 0.1367999642372131 +4 0.5796400086373091 3.622749946016819 0.2490999821186066 5 1.0155 4.062 0.03100000000000014 -6 1.712880068063736 4.757999810934074 0.45479990463256836 -7 2.8152599520564077 5.745428669272639 0.5218000596046446 +6 1.712880068063736 4.757999810934074 0.4547999046325684 +7 2.815259952056408 5.745428669272639 0.5218000596046446 8 4.539600067645312 7.093124894304203 0.07449991655349741 9 7.212689808928966 8.904555791445725 0.8141001907348624 -10 11.3248 11.3248 0.32479999999999976 -11 17.60946038167477 14.553272411839044 0.6085996662139905 -12 27.160801079273224 18.861665917171404 1.0339991416931156 +10 11.3248 11.3248 0.3247999999999998 +11 17.60946038167477 14.55327241183904 0.6085996662139905 +12 27.16080107927322 18.8616659171714 1.033999141693116 13 0.05244000078141689 5.243999921858312 0.02439999254941938 -14 0.14832000221014024 3.7079999447464953 0.14159999105930332 -15 0.31104001235961914 3.455999862670904 0.13679996423721308 -16 0.5796400086373091 3.6227499460168193 0.24909998211860662 +14 0.1483200022101402 3.707999944746495 0.1415999910593033 +15 0.3110400123596191 3.455999862670904 0.1367999642372131 +16 0.5796400086373091 3.622749946016819 0.2490999821186066 17 1.0155 4.062 0.03100000000000014 -18 1.712880068063736 4.757999810934074 0.45479990463256836 -19 2.8152599520564077 5.745428669272639 0.5218000596046446 +18 1.712880068063736 4.757999810934074 0.4547999046325684 +19 2.815259952056408 5.745428669272639 0.5218000596046446 20 4.539600067645312 7.093124894304203 0.07449991655349741 21 7.212689808928966 8.904555791445725 0.8141001907348624 -22 11.3248 11.3248 0.32479999999999976 -23 17.60946038167477 14.553272411839044 0.6085996662139905 -24 27.160801079273224 18.861665917171404 1.0339991416931156 +22 11.3248 11.3248 0.3247999999999998 +23 17.60946038167477 14.55327241183904 0.6085996662139905 +24 27.16080107927322 18.8616659171714 1.033999141693116 -- !sql_test_Double_Float_notn_1 -- 1 0.05244000078141689 5.243999921858312 0.02439999254941938 -2 0.14832000221014024 3.7079999447464953 0.14159999105930332 -3 0.31104001235961914 3.455999862670904 0.13679996423721308 -4 0.5796400086373091 3.6227499460168193 0.24909998211860662 +2 0.1483200022101402 3.707999944746495 0.1415999910593033 +3 0.3110400123596191 3.455999862670904 0.1367999642372131 +4 0.5796400086373091 3.622749946016819 0.2490999821186066 5 1.0155 4.062 0.03100000000000014 -6 1.712880068063736 4.757999810934074 0.45479990463256836 -7 2.8152599520564077 5.745428669272639 0.5218000596046446 +6 1.712880068063736 4.757999810934074 0.4547999046325684 +7 2.815259952056408 5.745428669272639 0.5218000596046446 8 4.539600067645312 7.093124894304203 0.07449991655349741 9 7.212689808928966 8.904555791445725 0.8141001907348624 -10 11.3248 11.3248 0.32479999999999976 -11 17.60946038167477 14.553272411839044 0.6085996662139905 -12 27.160801079273224 18.861665917171404 1.0339991416931156 +10 11.3248 11.3248 0.3247999999999998 +11 17.60946038167477 14.55327241183904 0.6085996662139905 +12 27.16080107927322 18.8616659171714 1.033999141693116 13 0.05244000078141689 5.243999921858312 0.02439999254941938 -14 0.14832000221014024 3.7079999447464953 0.14159999105930332 -15 0.31104001235961914 3.455999862670904 0.13679996423721308 -16 0.5796400086373091 3.6227499460168193 0.24909998211860662 +14 0.1483200022101402 3.707999944746495 0.1415999910593033 +15 0.3110400123596191 3.455999862670904 0.1367999642372131 +16 0.5796400086373091 3.622749946016819 0.2490999821186066 17 1.0155 4.062 0.03100000000000014 -18 1.712880068063736 4.757999810934074 0.45479990463256836 -19 2.8152599520564077 5.745428669272639 0.5218000596046446 +18 1.712880068063736 4.757999810934074 0.4547999046325684 +19 2.815259952056408 5.745428669272639 0.5218000596046446 20 4.539600067645312 7.093124894304203 0.07449991655349741 21 7.212689808928966 8.904555791445725 0.8141001907348624 -22 11.3248 11.3248 0.32479999999999976 -23 17.60946038167477 14.553272411839044 0.6085996662139905 -24 27.160801079273224 18.861665917171404 1.0339991416931156 +22 11.3248 11.3248 0.3247999999999998 +23 17.60946038167477 14.55327241183904 0.6085996662139905 +24 27.16080107927322 18.8616659171714 1.033999141693116 -- !sql_test_Double_Float_2 -- \N \N @@ -5036,109 +5036,109 @@ -- !sql_test_Double_Double_0 -- \N \N \N -1 1.0488 0.0 -2 1.4832 0.0 -3 2.0736 0.0 -4 2.8982 0.0 -5 4.062 0.0 -6 5.7096 0.0 -7 8.0436 0.0 -8 11.349 0.0 -9 16.0282 0.0 -10 22.6496 0.0 -11 32.0172 0.0 -12 45.268 0.0 -13 1.0488 0.0 -14 1.4832 0.0 -15 2.0736 0.0 -16 2.8982 0.0 -17 4.062 0.0 -18 5.7096 0.0 -19 8.0436 0.0 -20 11.349 0.0 -21 16.0282 0.0 -22 22.6496 0.0 -23 32.0172 0.0 -24 45.268 0.0 +1 1.0488 0 +2 1.4832 0 +3 2.0736 0 +4 2.8982 0 +5 4.062 0 +6 5.7096 0 +7 8.0436 0 +8 11.349 0 +9 16.0282 0 +10 22.6496 0 +11 32.0172 0 +12 45.268 0 +13 1.0488 0 +14 1.4832 0 +15 2.0736 0 +16 2.8982 0 +17 4.062 0 +18 5.7096 0 +19 8.0436 0 +20 11.349 0 +21 16.0282 0 +22 22.6496 0 +23 32.0172 0 +24 45.268 0 -- !sql_test_Double_Double_notn_0 -- -1 1.0488 0.0 -2 1.4832 0.0 -3 2.0736 0.0 -4 2.8982 0.0 -5 4.062 0.0 -6 5.7096 0.0 -7 8.0436 0.0 -8 11.349 0.0 -9 16.0282 0.0 -10 22.6496 0.0 -11 32.0172 0.0 -12 45.268 0.0 -13 1.0488 0.0 -14 1.4832 0.0 -15 2.0736 0.0 -16 2.8982 0.0 -17 4.062 0.0 -18 5.7096 0.0 -19 8.0436 0.0 -20 11.349 0.0 -21 16.0282 0.0 -22 22.6496 0.0 -23 32.0172 0.0 -24 45.268 0.0 +1 1.0488 0 +2 1.4832 0 +3 2.0736 0 +4 2.8982 0 +5 4.062 0 +6 5.7096 0 +7 8.0436 0 +8 11.349 0 +9 16.0282 0 +10 22.6496 0 +11 32.0172 0 +12 45.268 0 +13 1.0488 0 +14 1.4832 0 +15 2.0736 0 +16 2.8982 0 +17 4.062 0 +18 5.7096 0 +19 8.0436 0 +20 11.349 0 +21 16.0282 0 +22 22.6496 0 +23 32.0172 0 +24 45.268 0 -- !sql_test_Double_Double_1 -- \N \N \N \N -1 0.27499535999999997 1.0 0.0 -2 0.5499705600000001 1.0 0.0 -3 1.0749542399999998 1.0 0.0 -4 2.09989081 1.0 0.0 -5 4.124961000000001 1.0 0.0 -6 8.14988304 1.0 0.0 -7 16.17487524 1.0 0.0 -8 32.19995025 1.0 0.0 -9 64.22579880999999 1.0 0.0 -10 128.25109504 1.0 0.0 -11 256.27527396000005 1.0 0.0 -12 512.297956 1.0 0.0 -13 0.27499535999999997 1.0 0.0 -14 0.5499705600000001 1.0 0.0 -15 1.0749542399999998 1.0 0.0 -16 2.09989081 1.0 0.0 -17 4.124961000000001 1.0 0.0 -18 8.14988304 1.0 0.0 -19 16.17487524 1.0 0.0 -20 32.19995025 1.0 0.0 -21 64.22579880999999 1.0 0.0 -22 128.25109504 1.0 0.0 -23 256.27527396000005 1.0 0.0 -24 512.297956 1.0 0.0 +1 0.27499536 1 0 +2 0.5499705600000001 1 0 +3 1.07495424 1 0 +4 2.09989081 1 0 +5 4.124961000000001 1 0 +6 8.149883040000001 1 0 +7 16.17487524 1 0 +8 32.19995025 1 0 +9 64.22579880999999 1 0 +10 128.25109504 1 0 +11 256.27527396 1 0 +12 512.297956 1 0 +13 0.27499536 1 0 +14 0.5499705600000001 1 0 +15 1.07495424 1 0 +16 2.09989081 1 0 +17 4.124961000000001 1 0 +18 8.149883040000001 1 0 +19 16.17487524 1 0 +20 32.19995025 1 0 +21 64.22579880999999 1 0 +22 128.25109504 1 0 +23 256.27527396 1 0 +24 512.297956 1 0 -- !sql_test_Double_Double_notn_1 -- -1 0.27499535999999997 1.0 0.0 -2 0.5499705600000001 1.0 0.0 -3 1.0749542399999998 1.0 0.0 -4 2.09989081 1.0 0.0 -5 4.124961000000001 1.0 0.0 -6 8.14988304 1.0 0.0 -7 16.17487524 1.0 0.0 -8 32.19995025 1.0 0.0 -9 64.22579880999999 1.0 0.0 -10 128.25109504 1.0 0.0 -11 256.27527396000005 1.0 0.0 -12 512.297956 1.0 0.0 -13 0.27499535999999997 1.0 0.0 -14 0.5499705600000001 1.0 0.0 -15 1.0749542399999998 1.0 0.0 -16 2.09989081 1.0 0.0 -17 4.124961000000001 1.0 0.0 -18 8.14988304 1.0 0.0 -19 16.17487524 1.0 0.0 -20 32.19995025 1.0 0.0 -21 64.22579880999999 1.0 0.0 -22 128.25109504 1.0 0.0 -23 256.27527396000005 1.0 0.0 -24 512.297956 1.0 0.0 +1 0.27499536 1 0 +2 0.5499705600000001 1 0 +3 1.07495424 1 0 +4 2.09989081 1 0 +5 4.124961000000001 1 0 +6 8.149883040000001 1 0 +7 16.17487524 1 0 +8 32.19995025 1 0 +9 64.22579880999999 1 0 +10 128.25109504 1 0 +11 256.27527396 1 0 +12 512.297956 1 0 +13 0.27499536 1 0 +14 0.5499705600000001 1 0 +15 1.07495424 1 0 +16 2.09989081 1 0 +17 4.124961000000001 1 0 +18 8.149883040000001 1 0 +19 16.17487524 1 0 +20 32.19995025 1 0 +21 64.22579880999999 1 0 +22 128.25109504 1 0 +23 256.27527396 1 0 +24 512.297956 1 0 -- !sql_test_Double_Double_2 -- \N \N @@ -5301,109 +5301,109 @@ -- !sql_test_Double_DecimalV2_0 -- \N \N \N -1 24.919400000 -23.870600000 -2 35.225600000 -33.742400000 -3 49.792800000 -47.719200000 -4 70.392100000 -67.493900000 -5 99.525000000 -95.463000000 -6 140.728800000 -135.019200000 -7 199.001800000 -190.958200000 +1 24.919600000 -23.870800000 +2 35.225300000 -33.742100000 +3 49.792600000 -47.719000000 +4 70.392000000 -67.493800000 +5 99.525200000 -95.463200000 +6 140.728400000 -135.018800000 +7 199.001600000 -190.958000000 8 281.415500000 -270.066500000 -9 397.969100000 -381.940900000 +9 397.969400000 -381.941200000 10 562.803800000 -540.154200000 -11 795.916600000 -763.899400000 -12 1125.591000000 -1080.323000000 -13 24.919400000 -23.870600000 -14 35.225600000 -33.742400000 -15 49.792800000 -47.719200000 -16 70.392100000 -67.493900000 -17 99.525000000 -95.463000000 -18 140.728800000 -135.019200000 -19 199.001800000 -190.958200000 +11 795.917000000 -763.899800000 +12 1125.590500000 -1080.322500000 +13 24.919600000 -23.870800000 +14 35.225300000 -33.742100000 +15 49.792600000 -47.719000000 +16 70.392000000 -67.493800000 +17 99.525200000 -95.463200000 +18 140.728400000 -135.018800000 +19 199.001600000 -190.958000000 20 281.415500000 -270.066500000 -21 397.969100000 -381.940900000 +21 397.969400000 -381.941200000 22 562.803800000 -540.154200000 -23 795.916600000 -763.899400000 -24 1125.591000000 -1080.323000000 +23 795.917000000 -763.899800000 +24 1125.590500000 -1080.322500000 -- !sql_test_Double_DecimalV2_notn_0 -- -1 24.919400000 -23.870600000 -2 35.225600000 -33.742400000 -3 49.792800000 -47.719200000 -4 70.392100000 -67.493900000 -5 99.525000000 -95.463000000 -6 140.728800000 -135.019200000 -7 199.001800000 -190.958200000 +1 24.919600000 -23.870800000 +2 35.225300000 -33.742100000 +3 49.792600000 -47.719000000 +4 70.392000000 -67.493800000 +5 99.525200000 -95.463200000 +6 140.728400000 -135.018800000 +7 199.001600000 -190.958000000 8 281.415500000 -270.066500000 -9 397.969100000 -381.940900000 +9 397.969400000 -381.941200000 10 562.803800000 -540.154200000 -11 795.916600000 -763.899400000 -12 1125.591000000 -1080.323000000 -13 24.919400000 -23.870600000 -14 35.225600000 -33.742400000 -15 49.792800000 -47.719200000 -16 70.392100000 -67.493900000 -17 99.525000000 -95.463000000 -18 140.728800000 -135.019200000 -19 199.001800000 -190.958200000 +11 795.917000000 -763.899800000 +12 1125.590500000 -1080.322500000 +13 24.919600000 -23.870800000 +14 35.225300000 -33.742100000 +15 49.792600000 -47.719000000 +16 70.392000000 -67.493800000 +17 99.525200000 -95.463200000 +18 140.728400000 -135.018800000 +19 199.001600000 -190.958000000 20 281.415500000 -270.066500000 -21 397.969100000 -381.940900000 +21 397.969400000 -381.941200000 22 562.803800000 -540.154200000 -23 795.916600000 -763.899400000 -24 1125.591000000 -1080.323000000 +23 795.917000000 -763.899800000 +24 1125.590500000 -1080.322500000 -- !sql_test_Double_DecimalV2_1 -- \N \N \N \N -1 12.792738000 0.021496208239393317 0.524400000 -2 25.573334400 0.02150562579747129 0.741600000 -3 50.550220800 0.021265075067683978 1.036800000 -4 99.905301300 0.02101881264232772 1.449100000 -5 198.010314000 0.020832051203150966 2.031000000 -6 393.602695200 0.020705861873884852 2.854800000 -7 784.170564000 0.02062673094676377 4.021800000 +1 12.792842880 0.02149603200629632 0.524400000 +2 25.573111920 0.02150581289130807 0.741600000 +3 50.550013440 0.02126516229863934 1.036800000 +4 99.905156390 0.02101884312960436 1.449100000 +5 198.010720200 0.02083200846819606 2.031000000 +6 393.601553280 0.02070592194589827 2.854800000 +7 784.169759640 0.02062675210457698 4.021800000 8 1564.692304500 0.02057909414994506 5.674500000 -9 3125.138365500 0.020551345668089905 8.014100000 -10 6245.389379200 0.020535324101189707 11.324800000 -11 12485.235208800 0.020526267200746757 16.008600000 -12 24964.328738000 0.02052119892253279 22.634000000 -13 12.792738000 0.021496208239393317 0.524400000 -14 25.573334400 0.02150562579747129 0.741600000 -15 50.550220800 0.021265075067683978 1.036800000 -16 99.905301300 0.02101881264232772 1.449100000 -17 198.010314000 0.020832051203150966 2.031000000 -18 393.602695200 0.020705861873884852 2.854800000 -19 784.170564000 0.02062673094676377 4.021800000 +9 3125.140769730 0.02055132985755034 8.014100000 +10 6245.389379200 0.02053532410118971 11.324800000 +11 12485.241612240 0.02052625667321957 16.008600000 +12 24964.317421000 0.02052120822534706 22.634000000 +13 12.792842880 0.02149603200629632 0.524400000 +14 25.573111920 0.02150581289130807 0.741600000 +15 50.550013440 0.02126516229863934 1.036800000 +16 99.905156390 0.02101884312960436 1.449100000 +17 198.010720200 0.02083200846819606 2.031000000 +18 393.601553280 0.02070592194589827 2.854800000 +19 784.169759640 0.02062675210457698 4.021800000 20 1564.692304500 0.02057909414994506 5.674500000 -21 3125.138365500 0.020551345668089905 8.014100000 -22 6245.389379200 0.020535324101189707 11.324800000 -23 12485.235208800 0.020526267200746757 16.008600000 -24 24964.328738000 0.02052119892253279 22.634000000 +21 3125.140769730 0.02055132985755034 8.014100000 +22 6245.389379200 0.02053532410118971 11.324800000 +23 12485.241612240 0.02052625667321957 16.008600000 +24 24964.317421000 0.02052120822534706 22.634000000 -- !sql_test_Double_DecimalV2_notn_1 -- -1 12.792738000 0.021496208239393317 0.524400000 -2 25.573334400 0.02150562579747129 0.741600000 -3 50.550220800 0.021265075067683978 1.036800000 -4 99.905301300 0.02101881264232772 1.449100000 -5 198.010314000 0.020832051203150966 2.031000000 -6 393.602695200 0.020705861873884852 2.854800000 -7 784.170564000 0.02062673094676377 4.021800000 +1 12.792842880 0.02149603200629632 0.524400000 +2 25.573111920 0.02150581289130807 0.741600000 +3 50.550013440 0.02126516229863934 1.036800000 +4 99.905156390 0.02101884312960436 1.449100000 +5 198.010720200 0.02083200846819606 2.031000000 +6 393.601553280 0.02070592194589827 2.854800000 +7 784.169759640 0.02062675210457698 4.021800000 8 1564.692304500 0.02057909414994506 5.674500000 -9 3125.138365500 0.020551345668089905 8.014100000 -10 6245.389379200 0.020535324101189707 11.324800000 -11 12485.235208800 0.020526267200746757 16.008600000 -12 24964.328738000 0.02052119892253279 22.634000000 -13 12.792738000 0.021496208239393317 0.524400000 -14 25.573334400 0.02150562579747129 0.741600000 -15 50.550220800 0.021265075067683978 1.036800000 -16 99.905301300 0.02101881264232772 1.449100000 -17 198.010314000 0.020832051203150966 2.031000000 -18 393.602695200 0.020705861873884852 2.854800000 -19 784.170564000 0.02062673094676377 4.021800000 +9 3125.140769730 0.02055132985755034 8.014100000 +10 6245.389379200 0.02053532410118971 11.324800000 +11 12485.241612240 0.02052625667321957 16.008600000 +12 24964.317421000 0.02052120822534706 22.634000000 +13 12.792842880 0.02149603200629632 0.524400000 +14 25.573111920 0.02150581289130807 0.741600000 +15 50.550013440 0.02126516229863934 1.036800000 +16 99.905156390 0.02101884312960436 1.449100000 +17 198.010720200 0.02083200846819606 2.031000000 +18 393.601553280 0.02070592194589827 2.854800000 +19 784.169759640 0.02062675210457698 4.021800000 20 1564.692304500 0.02057909414994506 5.674500000 -21 3125.138365500 0.020551345668089905 8.014100000 -22 6245.389379200 0.020535324101189707 11.324800000 -23 12485.235208800 0.020526267200746757 16.008600000 -24 24964.328738000 0.02052119892253279 22.634000000 +21 3125.140769730 0.02055132985755034 8.014100000 +22 6245.389379200 0.02053532410118971 11.324800000 +23 12485.241612240 0.02052625667321957 16.008600000 +24 24964.317421000 0.02052120822534706 22.634000000 -- !sql_test_Double_DecimalV2_2 -- \N \N @@ -5514,107 +5514,107 @@ -- !sql_test_Double_Decimal32V3_0 -- \N \N \N 1 12.5364 -11.4876 -2 23.864600000000003 -22.3814 +2 23.8646 -22.3814 3 35.2708 -33.1972 4 46.7941 -43.8959 -5 58.487 -54.425000000000004 +5 58.487 -54.425 6 70.42179999999999 -64.7122 7 82.6998 -74.6562 -8 95.4635 -84.1145 -9 108.9141 -92.8859 -10 123.33579999999999 -100.6862 -11 139.13060000000002 -107.1134 -12 156.86700000000002 -111.599 -13 145.8684 -144.81959999999998 -14 157.19660000000002 -155.7134 +8 95.4635 -84.11450000000001 +9 108.9141 -92.88590000000001 +10 123.3358 -100.6862 +11 139.1306 -107.1134 +12 156.867 -111.599 +13 145.8684 -144.8196 +14 157.1966 -155.7134 15 168.6028 -166.5292 -16 180.12609999999998 -177.2279 -17 191.81900000000002 -187.757 +16 180.1261 -177.2279 +17 191.819 -187.757 18 203.7538 -198.0442 -19 216.0318 -207.98819999999998 -20 228.7955 -217.44650000000001 +19 216.0318 -207.9882 +20 228.7955 -217.4465 21 242.2461 -226.2179 -22 256.6678 -234.01819999999998 +22 256.6678 -234.0182 23 272.4626 -240.4454 -24 290.199 -244.93099999999998 +24 290.199 -244.931 -- !sql_test_Double_Decimal32V3_notn_0 -- 1 12.5364 -11.4876 -2 23.864600000000003 -22.3814 +2 23.8646 -22.3814 3 35.2708 -33.1972 4 46.7941 -43.8959 -5 58.487 -54.425000000000004 +5 58.487 -54.425 6 70.42179999999999 -64.7122 7 82.6998 -74.6562 -8 95.4635 -84.1145 -9 108.9141 -92.8859 -10 123.33579999999999 -100.6862 -11 139.13060000000002 -107.1134 -12 156.86700000000002 -111.599 -13 145.8684 -144.81959999999998 -14 157.19660000000002 -155.7134 +8 95.4635 -84.11450000000001 +9 108.9141 -92.88590000000001 +10 123.3358 -100.6862 +11 139.1306 -107.1134 +12 156.867 -111.599 +13 145.8684 -144.8196 +14 157.1966 -155.7134 15 168.6028 -166.5292 -16 180.12609999999998 -177.2279 -17 191.81900000000002 -187.757 +16 180.1261 -177.2279 +17 191.819 -187.757 18 203.7538 -198.0442 -19 216.0318 -207.98819999999998 -20 228.7955 -217.44650000000001 +19 216.0318 -207.9882 +20 228.7955 -217.4465 21 242.2461 -226.2179 -22 256.6678 -234.01819999999998 +22 256.6678 -234.0182 23 272.4626 -240.4454 -24 290.199 -244.93099999999998 +24 290.199 -244.931 -- !sql_test_Double_Decimal32V3_1 -- \N \N \N \N 1 6.2990928 0.04365634365634365 0.5244 -2 17.1480168 0.032071962980582104 0.7416 -3 35.4938112 0.030285680902027223 1.0368 -4 65.7094395 0.031957216892711436 1.4491 -5 114.66213600000002 0.03597491852061783 2.031 -6 192.89027159999998 0.04225139491171726 2.8548 +2 17.1480168 0.0320719629805821 0.7416 +3 35.4938112 0.03028568090202722 1.0368 +4 65.7094395 0.03195721689271144 1.4491 +5 114.662136 0.03597491852061783 2.031 +6 192.8902716 0.04225139491171726 2.8548 7 316.4271804 0.05111721192709525 4.0218 8 509.5076805 0.06319816458586242 5.6745 -9 808.6226899999999 0.07942616451932605 8.0141 -10 1268.5021728 0.10110435582219604 11.3248 -11 1971.0108492000002 0.13002225434934456 16.0086 -12 3038.229722 0.16861725507140568 22.634 +9 808.6226899999999 0.07942616451932605 8.014099999999999 +10 1268.5021728 0.101104355822196 11.3248 +11 1971.0108492 0.1300222543493446 16.0086 +12 3038.229722 0.1686172550714057 22.634 13 76.2183936 0.003607992073976222 0.5244 -14 116.02702800000002 0.004740021092326867 0.7416 -15 173.73242879999998 0.006187412720957712 1.0368 +14 116.027028 0.004740021092326867 0.7416 +15 173.7324288 0.006187412720957712 1.0368 16 258.9208407 0.008110165270292204 1.4491 -17 385.45942800000006 0.010701414209539064 2.031 -18 573.5264652 0.014210125485940696 2.8548 +17 385.4594280000001 0.01070141420953906 2.031 +18 573.5264652 0.0142101254859407 2.8548 19 852.6618179999999 0.01896985991226829 4.0218 20 1266.1001145 0.02543238870388713 5.6745 -21 1877.1586711999998 0.03421436866013183 8.0141 +21 1877.1586712 0.03421436866013183 8.014099999999999 22 2778.4604064 0.04615905079827018 11.3248 -23 4105.4695044 0.062422890654854284 16.0086 +23 4105.4695044 0.06242289065485428 16.0086 24 6056.06621 0.08459252891820679 22.634 -- !sql_test_Double_Decimal32V3_notn_1 -- 1 6.2990928 0.04365634365634365 0.5244 -2 17.1480168 0.032071962980582104 0.7416 -3 35.4938112 0.030285680902027223 1.0368 -4 65.7094395 0.031957216892711436 1.4491 -5 114.66213600000002 0.03597491852061783 2.031 -6 192.89027159999998 0.04225139491171726 2.8548 +2 17.1480168 0.0320719629805821 0.7416 +3 35.4938112 0.03028568090202722 1.0368 +4 65.7094395 0.03195721689271144 1.4491 +5 114.662136 0.03597491852061783 2.031 +6 192.8902716 0.04225139491171726 2.8548 7 316.4271804 0.05111721192709525 4.0218 8 509.5076805 0.06319816458586242 5.6745 -9 808.6226899999999 0.07942616451932605 8.0141 -10 1268.5021728 0.10110435582219604 11.3248 -11 1971.0108492000002 0.13002225434934456 16.0086 -12 3038.229722 0.16861725507140568 22.634 +9 808.6226899999999 0.07942616451932605 8.014099999999999 +10 1268.5021728 0.101104355822196 11.3248 +11 1971.0108492 0.1300222543493446 16.0086 +12 3038.229722 0.1686172550714057 22.634 13 76.2183936 0.003607992073976222 0.5244 -14 116.02702800000002 0.004740021092326867 0.7416 -15 173.73242879999998 0.006187412720957712 1.0368 +14 116.027028 0.004740021092326867 0.7416 +15 173.7324288 0.006187412720957712 1.0368 16 258.9208407 0.008110165270292204 1.4491 -17 385.45942800000006 0.010701414209539064 2.031 -18 573.5264652 0.014210125485940696 2.8548 +17 385.4594280000001 0.01070141420953906 2.031 +18 573.5264652 0.0142101254859407 2.8548 19 852.6618179999999 0.01896985991226829 4.0218 20 1266.1001145 0.02543238870388713 5.6745 -21 1877.1586711999998 0.03421436866013183 8.0141 +21 1877.1586712 0.03421436866013183 8.014099999999999 22 2778.4604064 0.04615905079827018 11.3248 -23 4105.4695044 0.062422890654854284 16.0086 +23 4105.4695044 0.06242289065485428 16.0086 24 6056.06621 0.08459252891820679 22.634 -- !sql_test_Double_Decimal32V3_2 -- @@ -5727,107 +5727,107 @@ \N \N \N 1 1234.53674 -1233.48794 2 2345.86505 -2344.38185 -3 3457.2713599999997 -3455.19776 -4 4568.7947699999995 -4565.89657 -5 5680.48778 -5676.4257800000005 +3 3457.27136 -3455.19776 +4 4568.79477 -4565.89657 +5 5680.48778 -5676.42578 6 6792.42269 -6786.71309 -7 7904.7008000000005 -7896.6572 -8 9017.464609999999 -9006.11561 +7 7904.700800000001 -7896.6572 +8 9017.464609999999 -9006.115610000001 9 10130.91532 -10114.88712 10 11245.33713 -11222.68753 -11 12361.132039999999 -12329.11484 +11 12361.13204 -12329.11484 12 13478.86855 -13433.60055 -13 14567.870060000001 -14566.82126 -14 15679.19837 -15677.715170000001 -15 16790.60468 -16788.531079999997 -16 17902.128090000002 -17899.22989 -17 19013.821099999997 -19009.7591 +13 14567.87006 -14566.82126 +14 15679.19837 -15677.71517 +15 16790.60468 -16788.53108 +16 17902.12809 -17899.22989 +17 19013.8211 -19009.7591 18 20125.75601 -20120.04641 -19 21238.03412 -21229.990520000003 +19 21238.03412 -21229.99052 20 22350.79793 -22339.44893 21 23464.24864 -23448.22044 -22 24578.670449999998 -24556.02085 -23 25694.465360000002 -25662.44816 -24 26812.201869999997 -26766.93387 +22 24578.67045 -24556.02085 +23 25694.46536 -25662.44816 +24 26812.20187 -26766.93387 -- !sql_test_Double_Decimal64V3_notn_0 -- 1 1234.53674 -1233.48794 2 2345.86505 -2344.38185 -3 3457.2713599999997 -3455.19776 -4 4568.7947699999995 -4565.89657 -5 5680.48778 -5676.4257800000005 +3 3457.27136 -3455.19776 +4 4568.79477 -4565.89657 +5 5680.48778 -5676.42578 6 6792.42269 -6786.71309 -7 7904.7008000000005 -7896.6572 -8 9017.464609999999 -9006.11561 +7 7904.700800000001 -7896.6572 +8 9017.464609999999 -9006.115610000001 9 10130.91532 -10114.88712 10 11245.33713 -11222.68753 -11 12361.132039999999 -12329.11484 +11 12361.13204 -12329.11484 12 13478.86855 -13433.60055 -13 14567.870060000001 -14566.82126 -14 15679.19837 -15677.715170000001 -15 16790.60468 -16788.531079999997 -16 17902.128090000002 -17899.22989 -17 19013.821099999997 -19009.7591 +13 14567.87006 -14566.82126 +14 15679.19837 -15677.71517 +15 16790.60468 -16788.53108 +16 17902.12809 -17899.22989 +17 19013.8211 -19009.7591 18 20125.75601 -20120.04641 -19 21238.03412 -21229.990520000003 +19 21238.03412 -21229.99052 20 22350.79793 -22339.44893 21 23464.24864 -23448.22044 -22 24578.670449999998 -24556.02085 -23 25694.465360000002 -25662.44816 -24 26812.201869999997 -26766.93387 +22 24578.67045 -24556.02085 +23 25694.46536 -25662.44816 +24 26812.20187 -26766.93387 -- !sql_test_Double_Decimal64V3_1 -- \N \N \N \N -1 647.1160710959999 4.249552318091081E-4 0.5244 -2 1739.1435505200002 3.162306871307777E-4 0.7416 -3 3583.4239918079998 2.9997964027071126E-4 1.0368 -4 6618.540610397 3.172739934089552E-4 1.4491 -5 11532.945720180001 3.576675985548313E-4 2.031 -6 19382.858412372 4.204685844889607E-4 2.8548 -7 31774.950802199997 5.090448555117857E-4 4.0218 -8 51137.402979195 6.296751178995224E-4 5.6745 -9 81125.94266720199 7.916801543184474E-4 8.0141 -10 127222.94283478399 0.0010080814999425943 11.3248 -11 197628.143101584 0.0012967549557365951 16.0086 -12 304568.41280469997 0.0016820455912757556 22.634 -13 7639.1160641040005 3.599832201688828E-5 0.5244 -14 11627.143540632002 4.730057370308392E-5 0.7416 -15 17407.423977984 6.175263159899741E-5 1.0368 -16 25939.873924409003 8.095223654977123E-5 1.4491 -17 38612.9456931 1.0682844641757329E-4 2.031 -18 57446.858374308 1.4186821125878796E-4 2.8548 -19 85398.950748576 1.8940367648802417E-4 4.0218 -20 126797.402903535 2.53948026636611E-4 5.6745 -21 187980.60922701398 3.416618292391955E-4 8.0141 -22 278220.27601712 4.609696204604017E-4 11.3248 -23 411076.14288813603 6.234253152213186E-4 16.0086 -24 606355.07916958 8.448811160312308E-4 22.634 +1 647.1160710959999 0.0004249552318091081 0.5244 +2 1739.14355052 0.0003162306871307777 0.7416 +3 3583.423991808 0.0002999796402707113 1.0368 +4 6618.540610397 0.0003172739934089552 1.4491 +5 11532.94572018 0.0003576675985548313 2.031 +6 19382.858412372 0.0004204685844889607 2.8548 +7 31774.9508022 0.0005090448555117857 4.0218 +8 51137.402979195 0.0006296751178995224 5.6745 +9 81125.94266720199 0.0007916801543184474 8.014099999999999 +10 127222.942834784 0.001008081499942594 11.3248 +11 197628.143101584 0.001296754955736595 16.0086 +12 304568.4128047 0.001682045591275756 22.634 +13 7639.116064104001 3.599832201688828e-05 0.5244 +14 11627.143540632 4.730057370308392e-05 0.7416 +15 17407.423977984 6.175263159899741e-05 1.0368 +16 25939.873924409 8.095223654977123e-05 1.4491 +17 38612.9456931 0.0001068284464175733 2.031 +18 57446.858374308 0.000141868211258788 2.8548 +19 85398.950748576 0.0001894036764880242 4.0218 +20 126797.402903535 0.000253948026636611 5.6745 +21 187980.609227014 0.0003416618292391955 8.014099999999999 +22 278220.27601712 0.0004609696204604017 11.3248 +23 411076.142888136 0.0006234253152213186 16.0086 +24 606355.07916958 0.0008448811160312308 22.634 -- !sql_test_Double_Decimal64V3_notn_1 -- -1 647.1160710959999 4.249552318091081E-4 0.5244 -2 1739.1435505200002 3.162306871307777E-4 0.7416 -3 3583.4239918079998 2.9997964027071126E-4 1.0368 -4 6618.540610397 3.172739934089552E-4 1.4491 -5 11532.945720180001 3.576675985548313E-4 2.031 -6 19382.858412372 4.204685844889607E-4 2.8548 -7 31774.950802199997 5.090448555117857E-4 4.0218 -8 51137.402979195 6.296751178995224E-4 5.6745 -9 81125.94266720199 7.916801543184474E-4 8.0141 -10 127222.94283478399 0.0010080814999425943 11.3248 -11 197628.143101584 0.0012967549557365951 16.0086 -12 304568.41280469997 0.0016820455912757556 22.634 -13 7639.1160641040005 3.599832201688828E-5 0.5244 -14 11627.143540632002 4.730057370308392E-5 0.7416 -15 17407.423977984 6.175263159899741E-5 1.0368 -16 25939.873924409003 8.095223654977123E-5 1.4491 -17 38612.9456931 1.0682844641757329E-4 2.031 -18 57446.858374308 1.4186821125878796E-4 2.8548 -19 85398.950748576 1.8940367648802417E-4 4.0218 -20 126797.402903535 2.53948026636611E-4 5.6745 -21 187980.60922701398 3.416618292391955E-4 8.0141 -22 278220.27601712 4.609696204604017E-4 11.3248 -23 411076.14288813603 6.234253152213186E-4 16.0086 -24 606355.07916958 8.448811160312308E-4 22.634 +1 647.1160710959999 0.0004249552318091081 0.5244 +2 1739.14355052 0.0003162306871307777 0.7416 +3 3583.423991808 0.0002999796402707113 1.0368 +4 6618.540610397 0.0003172739934089552 1.4491 +5 11532.94572018 0.0003576675985548313 2.031 +6 19382.858412372 0.0004204685844889607 2.8548 +7 31774.9508022 0.0005090448555117857 4.0218 +8 51137.402979195 0.0006296751178995224 5.6745 +9 81125.94266720199 0.0007916801543184474 8.014099999999999 +10 127222.942834784 0.001008081499942594 11.3248 +11 197628.143101584 0.001296754955736595 16.0086 +12 304568.4128047 0.001682045591275756 22.634 +13 7639.116064104001 3.599832201688828e-05 0.5244 +14 11627.143540632 4.730057370308392e-05 0.7416 +15 17407.423977984 6.175263159899741e-05 1.0368 +16 25939.873924409 8.095223654977123e-05 1.4491 +17 38612.9456931 0.0001068284464175733 2.031 +18 57446.858374308 0.000141868211258788 2.8548 +19 85398.950748576 0.0001894036764880242 4.0218 +20 126797.402903535 0.000253948026636611 5.6745 +21 187980.609227014 0.0003416618292391955 8.014099999999999 +22 278220.27601712 0.0004609696204604017 11.3248 +23 411076.142888136 0.0006234253152213186 16.0086 +24 606355.07916958 0.0008448811160312308 22.634 -- !sql_test_Double_Decimal64V3_2 -- \N \N @@ -5937,109 +5937,109 @@ -- !sql_test_Double_Decimal128V3_0 -- \N \N \N -1 1.2345678536744999E7 -1.2345677487945E7 -2 2.3456789865056E7 -2.3456788381856002E7 -3 3.4567901271367E7 -3.4567899197767004E7 -4 4.5679012794778004E7 -4.5679009896578E7 -5 5.6790124487789005E7 -5.6790120425789E7 -6 6.79012364227E7 -6.79012307131E7 -7 7.9012348700811E7 -7.9012340657211E7 -8 9.0123461464622E7 -9.0123450115622E7 -9 1.01234574915333E8 -1.01234558887133E8 -10 1.12345689337144E8 -1.12345666687544E8 -11 1.23456805132055E8 -1.23456773114855E8 -12 1.34567922868566E8 -1.34567877600566E8 -13 1.4567901187007698E8 -1.45679010821277E8 -14 1.56790123198388E8 -1.56790121715188E8 -15 1.67901234604699E8 -1.67901232531099E8 -16 1.7901234612811E8 -1.7901234322991002E8 -17 1.9012345782112098E8 -1.90123453759121E8 -18 2.01234569756032E8 -2.0123456404643202E8 -19 2.12345682034143E8 -2.1234567399054298E8 -20 2.23456794797954E8 -2.2345678344895402E8 -21 2.3456790824866498E8 -2.34567892220465E8 -22 2.4567902267047602E8 -2.45679000020876E8 -23 2.56790138465387E8 -2.56790106448187E8 -24 2.67901256201898E8 -2.67901210933898E8 +1 12345678.536745 -12345677.487945 +2 23456789.865056 -23456788.381856 +3 34567901.271367 -34567899.197767 +4 45679012.794778 -45679009.896578 +5 56790124.48778901 -56790120.425789 +6 67901236.4227 -67901230.7131 +7 79012348.700811 -79012340.65721101 +8 90123461.46462201 -90123450.115622 +9 101234574.915333 -101234558.887133 +10 112345689.337144 -112345666.687544 +11 123456805.132055 -123456773.114855 +12 134567922.868566 -134567877.600566 +13 145679011.870077 -145679010.821277 +14 156790123.198388 -156790121.715188 +15 167901234.604699 -167901232.531099 +16 179012346.12811 -179012343.22991 +17 190123457.821121 -190123453.759121 +18 201234569.756032 -201234564.046432 +19 212345682.034143 -212345673.990543 +20 223456794.797954 -223456783.448954 +21 234567908.248665 -234567892.220465 +22 245679022.670476 -245679000.020876 +23 256790138.465387 -256790106.448187 +24 267901256.201898 -267901210.933898 -- !sql_test_Double_Decimal128V3_notn_0 -- -1 1.2345678536744999E7 -1.2345677487945E7 -2 2.3456789865056E7 -2.3456788381856002E7 -3 3.4567901271367E7 -3.4567899197767004E7 -4 4.5679012794778004E7 -4.5679009896578E7 -5 5.6790124487789005E7 -5.6790120425789E7 -6 6.79012364227E7 -6.79012307131E7 -7 7.9012348700811E7 -7.9012340657211E7 -8 9.0123461464622E7 -9.0123450115622E7 -9 1.01234574915333E8 -1.01234558887133E8 -10 1.12345689337144E8 -1.12345666687544E8 -11 1.23456805132055E8 -1.23456773114855E8 -12 1.34567922868566E8 -1.34567877600566E8 -13 1.4567901187007698E8 -1.45679010821277E8 -14 1.56790123198388E8 -1.56790121715188E8 -15 1.67901234604699E8 -1.67901232531099E8 -16 1.7901234612811E8 -1.7901234322991002E8 -17 1.9012345782112098E8 -1.90123453759121E8 -18 2.01234569756032E8 -2.0123456404643202E8 -19 2.12345682034143E8 -2.1234567399054298E8 -20 2.23456794797954E8 -2.2345678344895402E8 -21 2.3456790824866498E8 -2.34567892220465E8 -22 2.4567902267047602E8 -2.45679000020876E8 -23 2.56790138465387E8 -2.56790106448187E8 -24 2.67901256201898E8 -2.67901210933898E8 +1 12345678.536745 -12345677.487945 +2 23456789.865056 -23456788.381856 +3 34567901.271367 -34567899.197767 +4 45679012.794778 -45679009.896578 +5 56790124.48778901 -56790120.425789 +6 67901236.4227 -67901230.7131 +7 79012348.700811 -79012340.65721101 +8 90123461.46462201 -90123450.115622 +9 101234574.915333 -101234558.887133 +10 112345689.337144 -112345666.687544 +11 123456805.132055 -123456773.114855 +12 134567922.868566 -134567877.600566 +13 145679011.870077 -145679010.821277 +14 156790123.198388 -156790121.715188 +15 167901234.604699 -167901232.531099 +16 179012346.12811 -179012343.22991 +17 190123457.821121 -190123453.759121 +18 201234569.756032 -201234564.046432 +19 212345682.034143 -212345673.990543 +20 223456794.797954 -223456783.448954 +21 234567908.248665 -234567892.220465 +22 245679022.670476 -245679000.020876 +23 256790138.465387 -256790106.448187 +24 267901256.201898 -267901210.933898 -- !sql_test_Double_Decimal128V3_1 -- \N \N \N \N -1 6474073.5496737175 4.247640344059102E-8 0.5244 -2 1.739555481395497E7 3.161558029519159E-8 0.7416 -3 3.5839998963199064E7 2.999314372480244E-8 1.0368 -4 6.619345534102199E7 3.1723541235029576E-8 1.4491 -5 1.1534073870973846E8 3.576326149931031E-8 2.031 -6 1.9384444158964092E8 4.204341880100384E-8 2.8548 -7 3.177718478300464E8 5.0900906894215465E-8 4.0218 -8 5.114055498810473E8 6.296363083562487E-8 5.6745 -9 8.113039426031713E8 7.916367151369114E-8 8.0141 -10 1.2722923343541934E9 1.0080316573242528E-7 11.3248 -11 1.976370354361742E9 1.2966966105032616E-7 16.0086 -12 3.045809853909167E9 1.6819761592881034E-7 22.634 -13 7.6394073549673E7 3.5996949399640574E-9 0.5244 -14 1.16275554813954E8 4.729889793946605E-9 0.7416 -15 1.7407999896319765E8 6.175058860307418E-9 1.0368 -16 2.5940678867435342E8 8.094972459013401E-9 1.4491 -17 3.8614073870973575E8 1.0682532523719954E-8 2.031 -18 5.744844415896372E8 1.4186429518349923E-8 2.8548 -19 8.54011847830041E8 1.8939872182217078E-8 4.0218 -20 1.2680055498810399E9 2.5394171384360973E-8 5.6745 -21 1.8798506092698271E9 3.416537382986333E-8 8.0141 -22 2.7822656676875114E9 4.609591978561712E-8 11.3248 -23 4.1108503543617206E9 6.234118293507942E-8 16.0086 -24 6.063676520575804E9 8.448635976236946E-8 22.634 +1 6474073.549673717 4.247640344059102e-08 0.5244 +2 17395554.81395497 3.161558029519159e-08 0.7416 +3 35839998.96319906 2.999314372480244e-08 1.0368 +4 66193455.34102199 3.172354123502958e-08 1.4491 +5 115340738.7097385 3.576326149931031e-08 2.031 +6 193844441.5896409 4.204341880100384e-08 2.8548 +7 317771847.8300464 5.090090689421547e-08 4.0218 +8 511405549.8810473 6.296363083562487e-08 5.6745 +9 811303942.6031713 7.916367151369114e-08 8.014099999999999 +10 1272292334.354193 1.008031657324253e-07 11.3248 +11 1976370354.361742 1.296696610503262e-07 16.0086 +12 3045809853.909167 1.681976159288103e-07 22.634 +13 76394073.54967301 3.599694939964057e-09 0.5244 +14 116275554.813954 4.729889793946605e-09 0.7416 +15 174079998.9631976 6.175058860307418e-09 1.0368 +16 259406788.6743534 8.094972459013401e-09 1.4491 +17 386140738.7097358 1.068253252371995e-08 2.031 +18 574484441.5896372 1.418642951834992e-08 2.8548 +19 854011847.8300411 1.893987218221708e-08 4.0218 +20 1268005549.88104 2.539417138436097e-08 5.6745 +21 1879850609.269827 3.416537382986333e-08 8.014099999999999 +22 2782265667.687511 4.609591978561712e-08 11.3248 +23 4110850354.361721 6.234118293507942e-08 16.0086 +24 6063676520.575804 8.448635976236946e-08 22.634 -- !sql_test_Double_Decimal128V3_notn_1 -- -1 6474073.5496737175 4.247640344059102E-8 0.5244 -2 1.739555481395497E7 3.161558029519159E-8 0.7416 -3 3.5839998963199064E7 2.999314372480244E-8 1.0368 -4 6.619345534102199E7 3.1723541235029576E-8 1.4491 -5 1.1534073870973846E8 3.576326149931031E-8 2.031 -6 1.9384444158964092E8 4.204341880100384E-8 2.8548 -7 3.177718478300464E8 5.0900906894215465E-8 4.0218 -8 5.114055498810473E8 6.296363083562487E-8 5.6745 -9 8.113039426031713E8 7.916367151369114E-8 8.0141 -10 1.2722923343541934E9 1.0080316573242528E-7 11.3248 -11 1.976370354361742E9 1.2966966105032616E-7 16.0086 -12 3.045809853909167E9 1.6819761592881034E-7 22.634 -13 7.6394073549673E7 3.5996949399640574E-9 0.5244 -14 1.16275554813954E8 4.729889793946605E-9 0.7416 -15 1.7407999896319765E8 6.175058860307418E-9 1.0368 -16 2.5940678867435342E8 8.094972459013401E-9 1.4491 -17 3.8614073870973575E8 1.0682532523719954E-8 2.031 -18 5.744844415896372E8 1.4186429518349923E-8 2.8548 -19 8.54011847830041E8 1.8939872182217078E-8 4.0218 -20 1.2680055498810399E9 2.5394171384360973E-8 5.6745 -21 1.8798506092698271E9 3.416537382986333E-8 8.0141 -22 2.7822656676875114E9 4.609591978561712E-8 11.3248 -23 4.1108503543617206E9 6.234118293507942E-8 16.0086 -24 6.063676520575804E9 8.448635976236946E-8 22.634 +1 6474073.549673717 4.247640344059102e-08 0.5244 +2 17395554.81395497 3.161558029519159e-08 0.7416 +3 35839998.96319906 2.999314372480244e-08 1.0368 +4 66193455.34102199 3.172354123502958e-08 1.4491 +5 115340738.7097385 3.576326149931031e-08 2.031 +6 193844441.5896409 4.204341880100384e-08 2.8548 +7 317771847.8300464 5.090090689421547e-08 4.0218 +8 511405549.8810473 6.296363083562487e-08 5.6745 +9 811303942.6031713 7.916367151369114e-08 8.014099999999999 +10 1272292334.354193 1.008031657324253e-07 11.3248 +11 1976370354.361742 1.296696610503262e-07 16.0086 +12 3045809853.909167 1.681976159288103e-07 22.634 +13 76394073.54967301 3.599694939964057e-09 0.5244 +14 116275554.813954 4.729889793946605e-09 0.7416 +15 174079998.9631976 6.175058860307418e-09 1.0368 +16 259406788.6743534 8.094972459013401e-09 1.4491 +17 386140738.7097358 1.068253252371995e-08 2.031 +18 574484441.5896372 1.418642951834992e-08 2.8548 +19 854011847.8300411 1.893987218221708e-08 4.0218 +20 1268005549.88104 2.539417138436097e-08 5.6745 +21 1879850609.269827 3.416537382986333e-08 8.014099999999999 +22 2782265667.687511 4.609591978561712e-08 11.3248 +23 4110850354.361721 6.234118293507942e-08 16.0086 +24 6063676520.575804 8.448635976236946e-08 22.634 -- !sql_test_Double_Decimal128V3_2 -- \N \N @@ -6161,17 +6161,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.8134 -153.76459999999997 +13 154.8134 -153.7646 14 218.8356 -217.3524 -15 309.3958 -307.32219999999995 +15 309.3958 -307.3222 16 437.4821 -434.5839 17 618.6389999999999 -614.577 18 874.8438 -869.1342000000001 19 1237.1828 -1229.1392 -20 1749.6145000000001 -1738.2655 -21 2474.3080999999997 -2458.2799 -22 3499.1848 -3476.5352000000003 -23 4948.5826 -4916.5653999999995 +20 1749.6145 -1738.2655 +21 2474.3081 -2458.2799 +22 3499.1848 -3476.5352 +23 4948.5826 -4916.565399999999 24 6998.344 -6953.076 -- !sql_test_Double_Char_notn_0 -- @@ -6187,17 +6187,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.8134 -153.76459999999997 +13 154.8134 -153.7646 14 218.8356 -217.3524 -15 309.3958 -307.32219999999995 +15 309.3958 -307.3222 16 437.4821 -434.5839 17 618.6389999999999 -614.577 18 874.8438 -869.1342000000001 19 1237.1828 -1229.1392 -20 1749.6145000000001 -1738.2655 -21 2474.3080999999997 -2458.2799 -22 3499.1848 -3476.5352000000003 -23 4948.5826 -4916.5653999999995 +20 1749.6145 -1738.2655 +21 2474.3081 -2458.2799 +22 3499.1848 -3476.5352 +23 4948.5826 -4916.565399999999 24 6998.344 -6953.076 -- !sql_test_Double_Char_1 -- @@ -6215,17 +6215,17 @@ 11 \N \N \N 12 \N \N \N 13 80.90915159999999 0.003398816506685506 0.5244 -14 161.7385104 0.0034003686483809734 0.7416 -15 319.70661119999994 0.0033623147046137783 1.0368 +14 161.7385104 0.003400368648380973 0.7416 +15 319.7066111999999 0.003362314704613778 1.0368 16 631.8554203 0.003323372313563423 1.4491 -17 1252.330848 0.0032938268721781102 2.031 -18 2489.3541972000003 0.003273894510137169 2.8548 +17 1252.330848 0.00329382687217811 2.031 +18 2489.3541972 0.003273894510137169 2.8548 19 4959.5269098 0.003261374629914504 4.0218 20 9895.98753 0.00325383900822276 5.6745 -21 19765.126745399997 0.0032494503899372904 8.0141 -22 39499.316928 0.0032469193144220236 11.3248 +21 19765.1267454 0.00324945038993729 8.014099999999999 +22 39499.316928 0.003246919314422024 11.3248 23 78963.6041364 0.003245486028187312 16.0086 -24 157888.22014 0.0032446876375308033 22.634 +24 157888.22014 0.003244687637530803 22.634 -- !sql_test_Double_Char_notn_1 -- 1 \N \N \N @@ -6241,17 +6241,17 @@ 11 \N \N \N 12 \N \N \N 13 80.90915159999999 0.003398816506685506 0.5244 -14 161.7385104 0.0034003686483809734 0.7416 -15 319.70661119999994 0.0033623147046137783 1.0368 +14 161.7385104 0.003400368648380973 0.7416 +15 319.7066111999999 0.003362314704613778 1.0368 16 631.8554203 0.003323372313563423 1.4491 -17 1252.330848 0.0032938268721781102 2.031 -18 2489.3541972000003 0.003273894510137169 2.8548 +17 1252.330848 0.00329382687217811 2.031 +18 2489.3541972 0.003273894510137169 2.8548 19 4959.5269098 0.003261374629914504 4.0218 20 9895.98753 0.00325383900822276 5.6745 -21 19765.126745399997 0.0032494503899372904 8.0141 -22 39499.316928 0.0032469193144220236 11.3248 +21 19765.1267454 0.00324945038993729 8.014099999999999 +22 39499.316928 0.003246919314422024 11.3248 23 78963.6041364 0.003245486028187312 16.0086 -24 157888.22014 0.0032446876375308033 22.634 +24 157888.22014 0.003244687637530803 22.634 -- !sql_test_Double_Char_2 -- \N \N @@ -6373,18 +6373,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2319.6454 -2318.5966000000003 -14 3278.8235999999997 -3277.3404 +13 2319.6454 -2318.5966 +14 3278.8236 -3277.3404 15 4635.7778 -4633.7042 16 6555.1371 -6552.2389 17 9269.761 -9265.698999999999 -18 13108.9918 -13103.282200000001 -19 18538.606799999998 -18530.5632 -20 26217.3285 -26205.979499999998 +18 13108.9918 -13103.2822 +19 18538.6068 -18530.5632 +20 26217.3285 -26205.9795 21 37076.7451 -37060.7169 -22 52434.323800000006 -52411.6742 +22 52434.32380000001 -52411.6742 23 74153.2516 -74121.2344 -24 104868.477 -104823.20899999999 +24 104868.477 -104823.209 -- !sql_test_Double_Varchar_notn_0 -- 1 \N \N @@ -6399,18 +6399,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2319.6454 -2318.5966000000003 -14 3278.8235999999997 -3277.3404 +13 2319.6454 -2318.5966 +14 3278.8236 -3277.3404 15 4635.7778 -4633.7042 16 6555.1371 -6552.2389 17 9269.761 -9265.698999999999 -18 13108.9918 -13103.282200000001 -19 18538.606799999998 -18530.5632 -20 26217.3285 -26205.979499999998 +18 13108.9918 -13103.2822 +19 18538.6068 -18530.5632 +20 26217.3285 -26205.9795 21 37076.7451 -37060.7169 -22 52434.323800000006 -52411.6742 +22 52434.32380000001 -52411.6742 23 74153.2516 -74121.2344 -24 104868.477 -104823.20899999999 +24 104868.477 -104823.209 -- !sql_test_Double_Varchar_1 -- \N \N \N \N @@ -6426,18 +6426,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1216.1470524 2.261201550070048E-4 0.5244 -14 2431.0256112 2.262298502599996E-4 0.7416 -15 4805.2994688 2.237018206626864E-4 1.0368 -16 9496.949280800001 2.2111214326956058E-4 1.4491 -17 18822.75963 2.1914751508729757E-4 2.031 -18 37415.399907600004 2.1782162051258886E-4 2.8548 -19 74542.39395299999 2.169889425633215E-4 4.0218 -20 148738.030623 2.164876737652649E-4 5.6745 -21 297072.5171071 2.161956933459632E-4 8.0141 -22 593679.9790752 2.1602732037516586E-4 11.3248 -23 1186833.4682898002 2.1593195743737059E-4 16.0086 -24 2373080.810462 2.1587884986532085E-4 22.634 +13 1216.1470524 0.0002261201550070048 0.5244 +14 2431.0256112 0.0002262298502599996 0.7416 +15 4805.2994688 0.0002237018206626864 1.0368 +16 9496.949280800001 0.0002211121432695606 1.4491 +17 18822.75963 0.0002191475150872976 2.031 +18 37415.3999076 0.0002178216205125889 2.8548 +19 74542.39395299999 0.0002169889425633215 4.0218 +20 148738.030623 0.0002164876737652649 5.6745 +21 297072.5171071 0.0002161956933459632 8.014099999999999 +22 593679.9790752 0.0002160273203751659 11.3248 +23 1186833.4682898 0.0002159319574373706 16.0086 +24 2373080.810462 0.0002158788498653209 22.634 -- !sql_test_Double_Varchar_notn_1 -- 1 \N \N \N @@ -6452,18 +6452,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1216.1470524 2.261201550070048E-4 0.5244 -14 2431.0256112 2.262298502599996E-4 0.7416 -15 4805.2994688 2.237018206626864E-4 1.0368 -16 9496.949280800001 2.2111214326956058E-4 1.4491 -17 18822.75963 2.1914751508729757E-4 2.031 -18 37415.399907600004 2.1782162051258886E-4 2.8548 -19 74542.39395299999 2.169889425633215E-4 4.0218 -20 148738.030623 2.164876737652649E-4 5.6745 -21 297072.5171071 2.161956933459632E-4 8.0141 -22 593679.9790752 2.1602732037516586E-4 11.3248 -23 1186833.4682898002 2.1593195743737059E-4 16.0086 -24 2373080.810462 2.1587884986532085E-4 22.634 +13 1216.1470524 0.0002261201550070048 0.5244 +14 2431.0256112 0.0002262298502599996 0.7416 +15 4805.2994688 0.0002237018206626864 1.0368 +16 9496.949280800001 0.0002211121432695606 1.4491 +17 18822.75963 0.0002191475150872976 2.031 +18 37415.3999076 0.0002178216205125889 2.8548 +19 74542.39395299999 0.0002169889425633215 4.0218 +20 148738.030623 0.0002164876737652649 5.6745 +21 297072.5171071 0.0002161956933459632 8.014099999999999 +22 593679.9790752 0.0002160273203751659 11.3248 +23 1186833.4682898 0.0002159319574373706 16.0086 +24 2373080.810462 0.0002158788498653209 22.634 -- !sql_test_Double_Varchar_2 -- \N \N @@ -6586,17 +6586,17 @@ 11 \N \N 12 \N \N 13 10604.5414 -10603.4926 -14 14989.534599999999 -14988.0514 -15 21193.0498 -21190.976199999997 -16 29967.704100000003 -29964.8059 -17 42378.043000000005 -42373.981 -18 59929.6968 -59923.987199999996 +14 14989.5346 -14988.0514 +15 21193.0498 -21190.9762 +16 29967.7041 -29964.8059 +17 42378.04300000001 -42373.981 +18 59929.6968 -59923.9872 19 84752.03880000001 -84743.9952 -20 119856.52549999999 -119845.1765 +20 119856.5255 -119845.1765 21 169502.0451 -169486.0169 22 239711.6098 -239688.9602 23 339003.0676 -338971.0504 -24 479422.495 -479377.22699999996 +24 479422.495 -479377.227 -- !sql_test_Double_String_notn_0 -- 1 \N \N @@ -6612,17 +6612,17 @@ 11 \N \N 12 \N \N 13 10604.5414 -10603.4926 -14 14989.534599999999 -14988.0514 -15 21193.0498 -21190.976199999997 -16 29967.704100000003 -29964.8059 -17 42378.043000000005 -42373.981 -18 59929.6968 -59923.987199999996 +14 14989.5346 -14988.0514 +15 21193.0498 -21190.9762 +16 29967.7041 -29964.8059 +17 42378.04300000001 -42373.981 +18 59929.6968 -59923.9872 19 84752.03880000001 -84743.9952 -20 119856.52549999999 -119845.1765 +20 119856.5255 -119845.1765 21 169502.0451 -169486.0169 22 239711.6098 -239688.9602 23 339003.0676 -338971.0504 -24 479422.495 -479377.22699999996 +24 479422.495 -479377.227 -- !sql_test_Double_String_1 -- \N \N \N \N @@ -6638,18 +6638,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5560.7465148 4.945295730853694E-5 0.5244 -14 11115.6888888 4.9476965890448954E-5 0.7416 -15 21971.879078399998 4.8924092298357875E-5 1.0368 -16 43424.10012050001 4.8357727717394114E-5 1.4491 -17 86065.68037200002 4.792805892163708E-5 2.031 -18 171079.14854159998 4.763808511718338E-5 2.8548 -19 340839.5747706 4.7455977642521116E-5 4.0218 -20 680093.6539995 4.734634716944981E-5 5.6745 -21 1358342.1138370999 4.728249102766339E-5 8.0141 -22 2714557.787568 4.7245667646995075E-5 11.3248 -23 5426708.232707401 4.722481161146627E-5 16.0086 -24 1.0850736453874E7 4.721319683486517E-5 22.634 +13 5560.7465148 4.945295730853694e-05 0.5244 +14 11115.6888888 4.947696589044895e-05 0.7416 +15 21971.8790784 4.892409229835788e-05 1.0368 +16 43424.10012050001 4.835772771739411e-05 1.4491 +17 86065.68037200002 4.792805892163708e-05 2.031 +18 171079.1485416 4.763808511718338e-05 2.8548 +19 340839.5747706 4.745597764252112e-05 4.0218 +20 680093.6539995 4.734634716944981e-05 5.6745 +21 1358342.1138371 4.728249102766339e-05 8.014099999999999 +22 2714557.787568 4.724566764699508e-05 11.3248 +23 5426708.232707401 4.722481161146627e-05 16.0086 +24 10850736.453874 4.721319683486517e-05 22.634 -- !sql_test_Double_String_notn_1 -- 1 \N \N \N @@ -6664,18 +6664,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5560.7465148 4.945295730853694E-5 0.5244 -14 11115.6888888 4.9476965890448954E-5 0.7416 -15 21971.879078399998 4.8924092298357875E-5 1.0368 -16 43424.10012050001 4.8357727717394114E-5 1.4491 -17 86065.68037200002 4.792805892163708E-5 2.031 -18 171079.14854159998 4.763808511718338E-5 2.8548 -19 340839.5747706 4.7455977642521116E-5 4.0218 -20 680093.6539995 4.734634716944981E-5 5.6745 -21 1358342.1138370999 4.728249102766339E-5 8.0141 -22 2714557.787568 4.7245667646995075E-5 11.3248 -23 5426708.232707401 4.722481161146627E-5 16.0086 -24 1.0850736453874E7 4.721319683486517E-5 22.634 +13 5560.7465148 4.945295730853694e-05 0.5244 +14 11115.6888888 4.947696589044895e-05 0.7416 +15 21971.8790784 4.892409229835788e-05 1.0368 +16 43424.10012050001 4.835772771739411e-05 1.4491 +17 86065.68037200002 4.792805892163708e-05 2.031 +18 171079.1485416 4.763808511718338e-05 2.8548 +19 340839.5747706 4.745597764252112e-05 4.0218 +20 680093.6539995 4.734634716944981e-05 5.6745 +21 1358342.1138371 4.728249102766339e-05 8.014099999999999 +22 2714557.787568 4.724566764699508e-05 11.3248 +23 5426708.232707401 4.722481161146627e-05 16.0086 +24 10850736.453874 4.721319683486517e-05 22.634 -- !sql_test_Double_String_2 -- \N \N @@ -6785,109 +6785,109 @@ -- !sql_test_Double_Date_0 -- \N \N \N -1 2.01203015244E7 -2.01203004756E7 -2 2.01203027416E7 -2.01203012584E7 -3 2.01203040368E7 -2.01203019632E7 -4 2.01203054491E7 -2.01203025509E7 -5 2.0120307031E7 -2.0120302969E7 -6 2.01203088548E7 -2.01203031452E7 -7 2.01203110218E7 -2.01203029782E7 -8 2.01203136745E7 -2.01203023255E7 -9 2.01203170141E7 -2.01203009859E7 -10 2.01203213248E7 -2.01202986752E7 -11 2.01203270086E7 -2.01202949914E7 -12 2.0120334634E7 -2.0120289366E7 -13 2.01203015244E7 -2.01203004756E7 -14 2.01203027416E7 -2.01203012584E7 -15 2.01203040368E7 -2.01203019632E7 -16 2.01203054491E7 -2.01203025509E7 -17 2.0120307031E7 -2.0120302969E7 -18 2.01203088548E7 -2.01203031452E7 -19 2.01203110218E7 -2.01203029782E7 -20 2.01203136745E7 -2.01203023255E7 -21 2.01203170141E7 -2.01203009859E7 -22 2.01203213248E7 -2.01202986752E7 -23 2.01203270086E7 -2.01202949914E7 -24 2.0120334634E7 -2.0120289366E7 +1 20120301.5244 -20120300.4756 +2 20120302.7416 -20120301.2584 +3 20120304.0368 -20120301.9632 +4 20120305.4491 -20120302.5509 +5 20120307.031 -20120302.969 +6 20120308.8548 -20120303.1452 +7 20120311.0218 -20120302.9782 +8 20120313.6745 -20120302.3255 +9 20120317.0141 -20120300.9859 +10 20120321.3248 -20120298.6752 +11 20120327.0086 -20120294.9914 +12 20120334.634 -20120289.366 +13 20120301.5244 -20120300.4756 +14 20120302.7416 -20120301.2584 +15 20120304.0368 -20120301.9632 +16 20120305.4491 -20120302.5509 +17 20120307.031 -20120302.969 +18 20120308.8548 -20120303.1452 +19 20120311.0218 -20120302.9782 +20 20120313.6745 -20120302.3255 +21 20120317.0141 -20120300.9859 +22 20120321.3248 -20120298.6752 +23 20120327.0086 -20120294.9914 +24 20120334.634 -20120289.366 -- !sql_test_Double_Date_notn_0 -- -1 2.01203015244E7 -2.01203004756E7 -2 2.01203027416E7 -2.01203012584E7 -3 2.01203040368E7 -2.01203019632E7 -4 2.01203054491E7 -2.01203025509E7 -5 2.0120307031E7 -2.0120302969E7 -6 2.01203088548E7 -2.01203031452E7 -7 2.01203110218E7 -2.01203029782E7 -8 2.01203136745E7 -2.01203023255E7 -9 2.01203170141E7 -2.01203009859E7 -10 2.01203213248E7 -2.01202986752E7 -11 2.01203270086E7 -2.01202949914E7 -12 2.0120334634E7 -2.0120289366E7 -13 2.01203015244E7 -2.01203004756E7 -14 2.01203027416E7 -2.01203012584E7 -15 2.01203040368E7 -2.01203019632E7 -16 2.01203054491E7 -2.01203025509E7 -17 2.0120307031E7 -2.0120302969E7 -18 2.01203088548E7 -2.01203031452E7 -19 2.01203110218E7 -2.01203029782E7 -20 2.01203136745E7 -2.01203023255E7 -21 2.01203170141E7 -2.01203009859E7 -22 2.01203213248E7 -2.01202986752E7 -23 2.01203270086E7 -2.01202949914E7 -24 2.0120334634E7 -2.0120289366E7 +1 20120301.5244 -20120300.4756 +2 20120302.7416 -20120301.2584 +3 20120304.0368 -20120301.9632 +4 20120305.4491 -20120302.5509 +5 20120307.031 -20120302.969 +6 20120308.8548 -20120303.1452 +7 20120311.0218 -20120302.9782 +8 20120313.6745 -20120302.3255 +9 20120317.0141 -20120300.9859 +10 20120321.3248 -20120298.6752 +11 20120327.0086 -20120294.9914 +12 20120334.634 -20120289.366 +13 20120301.5244 -20120300.4756 +14 20120302.7416 -20120301.2584 +15 20120304.0368 -20120301.9632 +16 20120305.4491 -20120302.5509 +17 20120307.031 -20120302.969 +18 20120308.8548 -20120303.1452 +19 20120311.0218 -20120302.9782 +20 20120313.6745 -20120302.3255 +21 20120317.0141 -20120300.9859 +22 20120321.3248 -20120298.6752 +23 20120327.0086 -20120294.9914 +24 20120334.634 -20120289.366 -- !sql_test_Double_Date_1 -- \N \N \N \N -1 1.05510858444E7 2.6063228378144045E-8 0.5244 -2 1.4921215963200001E7 3.685829367769927E-8 0.7416 -3 2.0860730150399998E7 5.153003908539548E-8 1.0368 -4 2.91563325264E7 7.202177462129797E-8 1.4491 -5 4.0864339455000006E7 1.009428037994454E-7 2.031 -6 5.74394495688E7 1.4188651007594018E-7 2.8548 -7 8.09198506926E7 1.9988760608871426E-7 4.0218 -8 1.14172687746E8 2.8202848584624055E-7 5.6745 -9 1.6124616835689998E8 3.983089921730327E-7 8.0141 -10 2.27858486688E8 5.628541508555285E-7 11.3248 -11 3.220980106746E8 7.956437651485607E-7 16.0086 -12 4.55403141808E8 1.1249328539239351E-6 22.634 -13 1.05510858444E7 2.6063228378144045E-8 0.5244 -14 1.4921215963200001E7 3.685829367769927E-8 0.7416 -15 2.0860730150399998E7 5.153003908539548E-8 1.0368 -16 2.91563325264E7 7.202177462129797E-8 1.4491 -17 4.0864339455000006E7 1.009428037994454E-7 2.031 -18 5.74394495688E7 1.4188651007594018E-7 2.8548 -19 8.09198506926E7 1.9988760608871426E-7 4.0218 -20 1.14172687746E8 2.8202848584624055E-7 5.6745 -21 1.6124616835689998E8 3.983089921730327E-7 8.0141 -22 2.27858486688E8 5.628541508555285E-7 11.3248 -23 3.220980106746E8 7.956437651485607E-7 16.0086 -24 4.55403141808E8 1.1249328539239351E-6 22.634 +1 10551085.8444 2.606322837814405e-08 0.5244 +2 14921215.9632 3.685829367769927e-08 0.7416 +3 20860730.1504 5.153003908539548e-08 1.0368 +4 29156332.5264 7.202177462129797e-08 1.4491 +5 40864339.45500001 1.009428037994454e-07 2.031 +6 57439449.5688 1.418865100759402e-07 2.8548 +7 80919850.6926 1.998876060887143e-07 4.0218 +8 114172687.746 2.820284858462405e-07 5.6745 +9 161246168.3569 3.983089921730327e-07 8.014099999999999 +10 227858486.688 5.628541508555285e-07 11.3248 +11 322098010.6746 7.956437651485607e-07 16.0086 +12 455403141.808 1.124932853923935e-06 22.634 +13 10551085.8444 2.606322837814405e-08 0.5244 +14 14921215.9632 3.685829367769927e-08 0.7416 +15 20860730.1504 5.153003908539548e-08 1.0368 +16 29156332.5264 7.202177462129797e-08 1.4491 +17 40864339.45500001 1.009428037994454e-07 2.031 +18 57439449.5688 1.418865100759402e-07 2.8548 +19 80919850.6926 1.998876060887143e-07 4.0218 +20 114172687.746 2.820284858462405e-07 5.6745 +21 161246168.3569 3.983089921730327e-07 8.014099999999999 +22 227858486.688 5.628541508555285e-07 11.3248 +23 322098010.6746 7.956437651485607e-07 16.0086 +24 455403141.808 1.124932853923935e-06 22.634 -- !sql_test_Double_Date_notn_1 -- -1 1.05510858444E7 2.6063228378144045E-8 0.5244 -2 1.4921215963200001E7 3.685829367769927E-8 0.7416 -3 2.0860730150399998E7 5.153003908539548E-8 1.0368 -4 2.91563325264E7 7.202177462129797E-8 1.4491 -5 4.0864339455000006E7 1.009428037994454E-7 2.031 -6 5.74394495688E7 1.4188651007594018E-7 2.8548 -7 8.09198506926E7 1.9988760608871426E-7 4.0218 -8 1.14172687746E8 2.8202848584624055E-7 5.6745 -9 1.6124616835689998E8 3.983089921730327E-7 8.0141 -10 2.27858486688E8 5.628541508555285E-7 11.3248 -11 3.220980106746E8 7.956437651485607E-7 16.0086 -12 4.55403141808E8 1.1249328539239351E-6 22.634 -13 1.05510858444E7 2.6063228378144045E-8 0.5244 -14 1.4921215963200001E7 3.685829367769927E-8 0.7416 -15 2.0860730150399998E7 5.153003908539548E-8 1.0368 -16 2.91563325264E7 7.202177462129797E-8 1.4491 -17 4.0864339455000006E7 1.009428037994454E-7 2.031 -18 5.74394495688E7 1.4188651007594018E-7 2.8548 -19 8.09198506926E7 1.9988760608871426E-7 4.0218 -20 1.14172687746E8 2.8202848584624055E-7 5.6745 -21 1.6124616835689998E8 3.983089921730327E-7 8.0141 -22 2.27858486688E8 5.628541508555285E-7 11.3248 -23 3.220980106746E8 7.956437651485607E-7 16.0086 -24 4.55403141808E8 1.1249328539239351E-6 22.634 +1 10551085.8444 2.606322837814405e-08 0.5244 +2 14921215.9632 3.685829367769927e-08 0.7416 +3 20860730.1504 5.153003908539548e-08 1.0368 +4 29156332.5264 7.202177462129797e-08 1.4491 +5 40864339.45500001 1.009428037994454e-07 2.031 +6 57439449.5688 1.418865100759402e-07 2.8548 +7 80919850.6926 1.998876060887143e-07 4.0218 +8 114172687.746 2.820284858462405e-07 5.6745 +9 161246168.3569 3.983089921730327e-07 8.014099999999999 +10 227858486.688 5.628541508555285e-07 11.3248 +11 322098010.6746 7.956437651485607e-07 16.0086 +12 455403141.808 1.124932853923935e-06 22.634 +13 10551085.8444 2.606322837814405e-08 0.5244 +14 14921215.9632 3.685829367769927e-08 0.7416 +15 20860730.1504 5.153003908539548e-08 1.0368 +16 29156332.5264 7.202177462129797e-08 1.4491 +17 40864339.45500001 1.009428037994454e-07 2.031 +18 57439449.5688 1.418865100759402e-07 2.8548 +19 80919850.6926 1.998876060887143e-07 4.0218 +20 114172687.746 2.820284858462405e-07 5.6745 +21 161246168.3569 3.983089921730327e-07 8.014099999999999 +22 227858486.688 5.628541508555285e-07 11.3248 +23 322098010.6746 7.956437651485607e-07 16.0086 +24 455403141.808 1.124932853923935e-06 22.634 -- !sql_test_Double_Date_2 -- \N \N @@ -6997,109 +6997,109 @@ -- !sql_test_Double_DateTime_0 -- \N \N \N -1 2.0120301010001523E13 -2.0120301010000477E13 -2 2.0120302020102742E13 -2.0120302020101258E13 -3 2.0120303030204035E13 -2.0120303030201965E13 -4 2.012030404030545E13 -2.012030404030255E13 -5 2.012030505040703E13 -2.012030505040297E13 -6 2.0120306060508855E13 -2.0120306060503145E13 -7 2.0120307070611023E13 -2.0120307070602977E13 -8 2.0120308080713676E13 -2.0120308080702324E13 -9 2.0120309090817016E13 -2.0120309090800984E13 -10 2.0120310100921324E13 -2.0120310100898676E13 -11 2.0120311111027008E13 -2.0120311110994992E13 -12 2.0120312121134633E13 -2.0120312121089367E13 -13 2.0120301010001523E13 -2.0120301010000477E13 -14 2.0120302020102742E13 -2.0120302020101258E13 -15 2.0120303030204035E13 -2.0120303030201965E13 -16 2.012030404030545E13 -2.012030404030255E13 -17 2.012030505040703E13 -2.012030505040297E13 -18 2.0120306060508855E13 -2.0120306060503145E13 -19 2.0120307070611023E13 -2.0120307070602977E13 -20 2.0120308080713676E13 -2.0120308080702324E13 -21 2.0120309090817016E13 -2.0120309090800984E13 -22 2.0120310100921324E13 -2.0120310100898676E13 -23 2.0120311111027008E13 -2.0120311110994992E13 -24 2.0120312121134633E13 -2.0120312121089367E13 +1 20120301010001.52 -20120301010000.48 +2 20120302020102.74 -20120302020101.26 +3 20120303030204.04 -20120303030201.96 +4 20120304040305.45 -20120304040302.55 +5 20120305050407.03 -20120305050402.97 +6 20120306060508.86 -20120306060503.14 +7 20120307070611.02 -20120307070602.98 +8 20120308080713.68 -20120308080702.32 +9 20120309090817.02 -20120309090800.98 +10 20120310100921.32 -20120310100898.68 +11 20120311111027.01 -20120311110994.99 +12 20120312121134.63 -20120312121089.37 +13 20120301010001.52 -20120301010000.48 +14 20120302020102.74 -20120302020101.26 +15 20120303030204.04 -20120303030201.96 +16 20120304040305.45 -20120304040302.55 +17 20120305050407.03 -20120305050402.97 +18 20120306060508.86 -20120306060503.14 +19 20120307070611.02 -20120307070602.98 +20 20120308080713.68 -20120308080702.32 +21 20120309090817.02 -20120309090800.98 +22 20120310100921.32 -20120310100898.68 +23 20120311111027.01 -20120311110994.99 +24 20120312121134.63 -20120312121089.37 -- !sql_test_Double_DateTime_notn_0 -- -1 2.0120301010001523E13 -2.0120301010000477E13 -2 2.0120302020102742E13 -2.0120302020101258E13 -3 2.0120303030204035E13 -2.0120303030201965E13 -4 2.012030404030545E13 -2.012030404030255E13 -5 2.012030505040703E13 -2.012030505040297E13 -6 2.0120306060508855E13 -2.0120306060503145E13 -7 2.0120307070611023E13 -2.0120307070602977E13 -8 2.0120308080713676E13 -2.0120308080702324E13 -9 2.0120309090817016E13 -2.0120309090800984E13 -10 2.0120310100921324E13 -2.0120310100898676E13 -11 2.0120311111027008E13 -2.0120311110994992E13 -12 2.0120312121134633E13 -2.0120312121089367E13 -13 2.0120301010001523E13 -2.0120301010000477E13 -14 2.0120302020102742E13 -2.0120302020101258E13 -15 2.0120303030204035E13 -2.0120303030201965E13 -16 2.012030404030545E13 -2.012030404030255E13 -17 2.012030505040703E13 -2.012030505040297E13 -18 2.0120306060508855E13 -2.0120306060503145E13 -19 2.0120307070611023E13 -2.0120307070602977E13 -20 2.0120308080713676E13 -2.0120308080702324E13 -21 2.0120309090817016E13 -2.0120309090800984E13 -22 2.0120310100921324E13 -2.0120310100898676E13 -23 2.0120311111027008E13 -2.0120311110994992E13 -24 2.0120312121134633E13 -2.0120312121089367E13 +1 20120301010001.52 -20120301010000.48 +2 20120302020102.74 -20120302020101.26 +3 20120303030204.04 -20120303030201.96 +4 20120304040305.45 -20120304040302.55 +5 20120305050407.03 -20120305050402.97 +6 20120306060508.86 -20120306060503.14 +7 20120307070611.02 -20120307070602.98 +8 20120308080713.68 -20120308080702.32 +9 20120309090817.02 -20120309090800.98 +10 20120310100921.32 -20120310100898.68 +11 20120311111027.01 -20120311110994.99 +12 20120312121134.63 -20120312121089.37 +13 20120301010001.52 -20120301010000.48 +14 20120302020102.74 -20120302020101.26 +15 20120303030204.04 -20120303030201.96 +16 20120304040305.45 -20120304040302.55 +17 20120305050407.03 -20120305050402.97 +18 20120306060508.86 -20120306060503.14 +19 20120307070611.02 -20120307070602.98 +20 20120308080713.68 -20120308080702.32 +21 20120309090817.02 -20120309090800.98 +22 20120310100921.32 -20120310100898.68 +23 20120311111027.01 -20120311110994.99 +24 20120312121134.63 -20120312121089.37 -- !sql_test_Double_DateTime_1 -- \N \N \N \N -1 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -2 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -3 2.086073018171447E13 5.153003900804268E-14 1.0368 -4 2.9156332584804527E13 7.202177447702751E-14 1.4491 -5 4.0864339557372555E13 1.0094280354656542E-13 2.031 -6 5.743944974153253E13 1.4188650964925757E-13 2.8548 -7 8.091985097656723E13 1.9988760538726052E-13 4.0218 -8 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -9 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -10 2.2785848783078556E14 5.628541480326291E-13 11.3248 -11 3.2209801245173075E14 7.956437607587075E-13 16.0086 -12 4.55403144549249E14 1.124932847152526E-12 22.634 -13 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -14 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -15 2.086073018171447E13 5.153003900804268E-14 1.0368 -16 2.9156332584804527E13 7.202177447702751E-14 1.4491 -17 4.0864339557372555E13 1.0094280354656542E-13 2.031 -18 5.743944974153253E13 1.4188650964925757E-13 2.8548 -19 8.091985097656723E13 1.9988760538726052E-13 4.0218 -20 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -21 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -22 2.2785848783078556E14 5.628541480326291E-13 11.3248 -23 3.2209801245173075E14 7.956437607587075E-13 16.0086 -24 4.55403144549249E14 1.124932847152526E-12 22.634 +1 10551085849644.52 2.606322836518905e-14 0.5244 +2 14921215978107.64 3.68582936408745e-14 0.7416 +3 20860730181714.47 5.153003900804268e-14 1.0368 +4 29156332584804.53 7.202177447702751e-14 1.4491 +5 40864339557372.55 1.009428035465654e-13 2.031 +6 57439449741532.53 1.418865096492576e-13 2.8548 +7 80919850976567.23 1.998876053872605e-13 4.0218 +8 114172688203977.5 2.82028484714948e-13 5.6745 +9 161246169084652.4 3.983089903753446e-13 8.014099999999999 +10 227858487830785.6 5.628541480326291e-13 11.3248 +11 322098012451730.8 7.956437607587075e-13 16.0086 +12 455403144549249 1.124932847152526e-12 22.634 +13 10551085849644.52 2.606322836518905e-14 0.5244 +14 14921215978107.64 3.68582936408745e-14 0.7416 +15 20860730181714.47 5.153003900804268e-14 1.0368 +16 29156332584804.53 7.202177447702751e-14 1.4491 +17 40864339557372.55 1.009428035465654e-13 2.031 +18 57439449741532.53 1.418865096492576e-13 2.8548 +19 80919850976567.23 1.998876053872605e-13 4.0218 +20 114172688203977.5 2.82028484714948e-13 5.6745 +21 161246169084652.4 3.983089903753446e-13 8.014099999999999 +22 227858487830785.6 5.628541480326291e-13 11.3248 +23 322098012451730.8 7.956437607587075e-13 16.0086 +24 455403144549249 1.124932847152526e-12 22.634 -- !sql_test_Double_DateTime_notn_1 -- -1 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -2 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -3 2.086073018171447E13 5.153003900804268E-14 1.0368 -4 2.9156332584804527E13 7.202177447702751E-14 1.4491 -5 4.0864339557372555E13 1.0094280354656542E-13 2.031 -6 5.743944974153253E13 1.4188650964925757E-13 2.8548 -7 8.091985097656723E13 1.9988760538726052E-13 4.0218 -8 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -9 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -10 2.2785848783078556E14 5.628541480326291E-13 11.3248 -11 3.2209801245173075E14 7.956437607587075E-13 16.0086 -12 4.55403144549249E14 1.124932847152526E-12 22.634 -13 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -14 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -15 2.086073018171447E13 5.153003900804268E-14 1.0368 -16 2.9156332584804527E13 7.202177447702751E-14 1.4491 -17 4.0864339557372555E13 1.0094280354656542E-13 2.031 -18 5.743944974153253E13 1.4188650964925757E-13 2.8548 -19 8.091985097656723E13 1.9988760538726052E-13 4.0218 -20 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -21 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -22 2.2785848783078556E14 5.628541480326291E-13 11.3248 -23 3.2209801245173075E14 7.956437607587075E-13 16.0086 -24 4.55403144549249E14 1.124932847152526E-12 22.634 +1 10551085849644.52 2.606322836518905e-14 0.5244 +2 14921215978107.64 3.68582936408745e-14 0.7416 +3 20860730181714.47 5.153003900804268e-14 1.0368 +4 29156332584804.53 7.202177447702751e-14 1.4491 +5 40864339557372.55 1.009428035465654e-13 2.031 +6 57439449741532.53 1.418865096492576e-13 2.8548 +7 80919850976567.23 1.998876053872605e-13 4.0218 +8 114172688203977.5 2.82028484714948e-13 5.6745 +9 161246169084652.4 3.983089903753446e-13 8.014099999999999 +10 227858487830785.6 5.628541480326291e-13 11.3248 +11 322098012451730.8 7.956437607587075e-13 16.0086 +12 455403144549249 1.124932847152526e-12 22.634 +13 10551085849644.52 2.606322836518905e-14 0.5244 +14 14921215978107.64 3.68582936408745e-14 0.7416 +15 20860730181714.47 5.153003900804268e-14 1.0368 +16 29156332584804.53 7.202177447702751e-14 1.4491 +17 40864339557372.55 1.009428035465654e-13 2.031 +18 57439449741532.53 1.418865096492576e-13 2.8548 +19 80919850976567.23 1.998876053872605e-13 4.0218 +20 114172688203977.5 2.82028484714948e-13 5.6745 +21 161246169084652.4 3.983089903753446e-13 8.014099999999999 +22 227858487830785.6 5.628541480326291e-13 11.3248 +23 322098012451730.8 7.956437607587075e-13 16.0086 +24 455403144549249 1.124932847152526e-12 22.634 -- !sql_test_Double_DateTime_2 -- \N \N @@ -7209,109 +7209,109 @@ -- !sql_test_Double_DateV2_0 -- \N \N \N -1 2.01203015244E7 -2.01203004756E7 -2 2.01203027416E7 -2.01203012584E7 -3 2.01203040368E7 -2.01203019632E7 -4 2.01203054491E7 -2.01203025509E7 -5 2.0120307031E7 -2.0120302969E7 -6 2.01203088548E7 -2.01203031452E7 -7 2.01203110218E7 -2.01203029782E7 -8 2.01203136745E7 -2.01203023255E7 -9 2.01203170141E7 -2.01203009859E7 -10 2.01203213248E7 -2.01202986752E7 -11 2.01203270086E7 -2.01202949914E7 -12 2.0120334634E7 -2.0120289366E7 -13 2.01203015244E7 -2.01203004756E7 -14 2.01203027416E7 -2.01203012584E7 -15 2.01203040368E7 -2.01203019632E7 -16 2.01203054491E7 -2.01203025509E7 -17 2.0120307031E7 -2.0120302969E7 -18 2.01203088548E7 -2.01203031452E7 -19 2.01203110218E7 -2.01203029782E7 -20 2.01203136745E7 -2.01203023255E7 -21 2.01203170141E7 -2.01203009859E7 -22 2.01203213248E7 -2.01202986752E7 -23 2.01203270086E7 -2.01202949914E7 -24 2.0120334634E7 -2.0120289366E7 +1 20120301.5244 -20120300.4756 +2 20120302.7416 -20120301.2584 +3 20120304.0368 -20120301.9632 +4 20120305.4491 -20120302.5509 +5 20120307.031 -20120302.969 +6 20120308.8548 -20120303.1452 +7 20120311.0218 -20120302.9782 +8 20120313.6745 -20120302.3255 +9 20120317.0141 -20120300.9859 +10 20120321.3248 -20120298.6752 +11 20120327.0086 -20120294.9914 +12 20120334.634 -20120289.366 +13 20120301.5244 -20120300.4756 +14 20120302.7416 -20120301.2584 +15 20120304.0368 -20120301.9632 +16 20120305.4491 -20120302.5509 +17 20120307.031 -20120302.969 +18 20120308.8548 -20120303.1452 +19 20120311.0218 -20120302.9782 +20 20120313.6745 -20120302.3255 +21 20120317.0141 -20120300.9859 +22 20120321.3248 -20120298.6752 +23 20120327.0086 -20120294.9914 +24 20120334.634 -20120289.366 -- !sql_test_Double_DateV2_notn_0 -- -1 2.01203015244E7 -2.01203004756E7 -2 2.01203027416E7 -2.01203012584E7 -3 2.01203040368E7 -2.01203019632E7 -4 2.01203054491E7 -2.01203025509E7 -5 2.0120307031E7 -2.0120302969E7 -6 2.01203088548E7 -2.01203031452E7 -7 2.01203110218E7 -2.01203029782E7 -8 2.01203136745E7 -2.01203023255E7 -9 2.01203170141E7 -2.01203009859E7 -10 2.01203213248E7 -2.01202986752E7 -11 2.01203270086E7 -2.01202949914E7 -12 2.0120334634E7 -2.0120289366E7 -13 2.01203015244E7 -2.01203004756E7 -14 2.01203027416E7 -2.01203012584E7 -15 2.01203040368E7 -2.01203019632E7 -16 2.01203054491E7 -2.01203025509E7 -17 2.0120307031E7 -2.0120302969E7 -18 2.01203088548E7 -2.01203031452E7 -19 2.01203110218E7 -2.01203029782E7 -20 2.01203136745E7 -2.01203023255E7 -21 2.01203170141E7 -2.01203009859E7 -22 2.01203213248E7 -2.01202986752E7 -23 2.01203270086E7 -2.01202949914E7 -24 2.0120334634E7 -2.0120289366E7 +1 20120301.5244 -20120300.4756 +2 20120302.7416 -20120301.2584 +3 20120304.0368 -20120301.9632 +4 20120305.4491 -20120302.5509 +5 20120307.031 -20120302.969 +6 20120308.8548 -20120303.1452 +7 20120311.0218 -20120302.9782 +8 20120313.6745 -20120302.3255 +9 20120317.0141 -20120300.9859 +10 20120321.3248 -20120298.6752 +11 20120327.0086 -20120294.9914 +12 20120334.634 -20120289.366 +13 20120301.5244 -20120300.4756 +14 20120302.7416 -20120301.2584 +15 20120304.0368 -20120301.9632 +16 20120305.4491 -20120302.5509 +17 20120307.031 -20120302.969 +18 20120308.8548 -20120303.1452 +19 20120311.0218 -20120302.9782 +20 20120313.6745 -20120302.3255 +21 20120317.0141 -20120300.9859 +22 20120321.3248 -20120298.6752 +23 20120327.0086 -20120294.9914 +24 20120334.634 -20120289.366 -- !sql_test_Double_DateV2_1 -- \N \N \N \N -1 1.05510858444E7 2.6063228378144045E-8 0.5244 -2 1.4921215963200001E7 3.685829367769927E-8 0.7416 -3 2.0860730150399998E7 5.153003908539548E-8 1.0368 -4 2.91563325264E7 7.202177462129797E-8 1.4491 -5 4.0864339455000006E7 1.009428037994454E-7 2.031 -6 5.74394495688E7 1.4188651007594018E-7 2.8548 -7 8.09198506926E7 1.9988760608871426E-7 4.0218 -8 1.14172687746E8 2.8202848584624055E-7 5.6745 -9 1.6124616835689998E8 3.983089921730327E-7 8.0141 -10 2.27858486688E8 5.628541508555285E-7 11.3248 -11 3.220980106746E8 7.956437651485607E-7 16.0086 -12 4.55403141808E8 1.1249328539239351E-6 22.634 -13 1.05510858444E7 2.6063228378144045E-8 0.5244 -14 1.4921215963200001E7 3.685829367769927E-8 0.7416 -15 2.0860730150399998E7 5.153003908539548E-8 1.0368 -16 2.91563325264E7 7.202177462129797E-8 1.4491 -17 4.0864339455000006E7 1.009428037994454E-7 2.031 -18 5.74394495688E7 1.4188651007594018E-7 2.8548 -19 8.09198506926E7 1.9988760608871426E-7 4.0218 -20 1.14172687746E8 2.8202848584624055E-7 5.6745 -21 1.6124616835689998E8 3.983089921730327E-7 8.0141 -22 2.27858486688E8 5.628541508555285E-7 11.3248 -23 3.220980106746E8 7.956437651485607E-7 16.0086 -24 4.55403141808E8 1.1249328539239351E-6 22.634 +1 10551085.8444 2.606322837814405e-08 0.5244 +2 14921215.9632 3.685829367769927e-08 0.7416 +3 20860730.1504 5.153003908539548e-08 1.0368 +4 29156332.5264 7.202177462129797e-08 1.4491 +5 40864339.45500001 1.009428037994454e-07 2.031 +6 57439449.5688 1.418865100759402e-07 2.8548 +7 80919850.6926 1.998876060887143e-07 4.0218 +8 114172687.746 2.820284858462405e-07 5.6745 +9 161246168.3569 3.983089921730327e-07 8.014099999999999 +10 227858486.688 5.628541508555285e-07 11.3248 +11 322098010.6746 7.956437651485607e-07 16.0086 +12 455403141.808 1.124932853923935e-06 22.634 +13 10551085.8444 2.606322837814405e-08 0.5244 +14 14921215.9632 3.685829367769927e-08 0.7416 +15 20860730.1504 5.153003908539548e-08 1.0368 +16 29156332.5264 7.202177462129797e-08 1.4491 +17 40864339.45500001 1.009428037994454e-07 2.031 +18 57439449.5688 1.418865100759402e-07 2.8548 +19 80919850.6926 1.998876060887143e-07 4.0218 +20 114172687.746 2.820284858462405e-07 5.6745 +21 161246168.3569 3.983089921730327e-07 8.014099999999999 +22 227858486.688 5.628541508555285e-07 11.3248 +23 322098010.6746 7.956437651485607e-07 16.0086 +24 455403141.808 1.124932853923935e-06 22.634 -- !sql_test_Double_DateV2_notn_1 -- -1 1.05510858444E7 2.6063228378144045E-8 0.5244 -2 1.4921215963200001E7 3.685829367769927E-8 0.7416 -3 2.0860730150399998E7 5.153003908539548E-8 1.0368 -4 2.91563325264E7 7.202177462129797E-8 1.4491 -5 4.0864339455000006E7 1.009428037994454E-7 2.031 -6 5.74394495688E7 1.4188651007594018E-7 2.8548 -7 8.09198506926E7 1.9988760608871426E-7 4.0218 -8 1.14172687746E8 2.8202848584624055E-7 5.6745 -9 1.6124616835689998E8 3.983089921730327E-7 8.0141 -10 2.27858486688E8 5.628541508555285E-7 11.3248 -11 3.220980106746E8 7.956437651485607E-7 16.0086 -12 4.55403141808E8 1.1249328539239351E-6 22.634 -13 1.05510858444E7 2.6063228378144045E-8 0.5244 -14 1.4921215963200001E7 3.685829367769927E-8 0.7416 -15 2.0860730150399998E7 5.153003908539548E-8 1.0368 -16 2.91563325264E7 7.202177462129797E-8 1.4491 -17 4.0864339455000006E7 1.009428037994454E-7 2.031 -18 5.74394495688E7 1.4188651007594018E-7 2.8548 -19 8.09198506926E7 1.9988760608871426E-7 4.0218 -20 1.14172687746E8 2.8202848584624055E-7 5.6745 -21 1.6124616835689998E8 3.983089921730327E-7 8.0141 -22 2.27858486688E8 5.628541508555285E-7 11.3248 -23 3.220980106746E8 7.956437651485607E-7 16.0086 -24 4.55403141808E8 1.1249328539239351E-6 22.634 +1 10551085.8444 2.606322837814405e-08 0.5244 +2 14921215.9632 3.685829367769927e-08 0.7416 +3 20860730.1504 5.153003908539548e-08 1.0368 +4 29156332.5264 7.202177462129797e-08 1.4491 +5 40864339.45500001 1.009428037994454e-07 2.031 +6 57439449.5688 1.418865100759402e-07 2.8548 +7 80919850.6926 1.998876060887143e-07 4.0218 +8 114172687.746 2.820284858462405e-07 5.6745 +9 161246168.3569 3.983089921730327e-07 8.014099999999999 +10 227858486.688 5.628541508555285e-07 11.3248 +11 322098010.6746 7.956437651485607e-07 16.0086 +12 455403141.808 1.124932853923935e-06 22.634 +13 10551085.8444 2.606322837814405e-08 0.5244 +14 14921215.9632 3.685829367769927e-08 0.7416 +15 20860730.1504 5.153003908539548e-08 1.0368 +16 29156332.5264 7.202177462129797e-08 1.4491 +17 40864339.45500001 1.009428037994454e-07 2.031 +18 57439449.5688 1.418865100759402e-07 2.8548 +19 80919850.6926 1.998876060887143e-07 4.0218 +20 114172687.746 2.820284858462405e-07 5.6745 +21 161246168.3569 3.983089921730327e-07 8.014099999999999 +22 227858486.688 5.628541508555285e-07 11.3248 +23 322098010.6746 7.956437651485607e-07 16.0086 +24 455403141.808 1.124932853923935e-06 22.634 -- !sql_test_Double_DateV2_2 -- \N \N @@ -7421,109 +7421,109 @@ -- !sql_test_Double_DateTimeV2_0 -- \N \N \N -1 2.0120301010001523E13 -2.0120301010000477E13 -2 2.0120302020102742E13 -2.0120302020101258E13 -3 2.0120303030204035E13 -2.0120303030201965E13 -4 2.012030404030545E13 -2.012030404030255E13 -5 2.012030505040703E13 -2.012030505040297E13 -6 2.0120306060508855E13 -2.0120306060503145E13 -7 2.0120307070611023E13 -2.0120307070602977E13 -8 2.0120308080713676E13 -2.0120308080702324E13 -9 2.0120309090817016E13 -2.0120309090800984E13 -10 2.0120310100921324E13 -2.0120310100898676E13 -11 2.0120311111027008E13 -2.0120311110994992E13 -12 2.0120312121134633E13 -2.0120312121089367E13 -13 2.0120301010001523E13 -2.0120301010000477E13 -14 2.0120302020102742E13 -2.0120302020101258E13 -15 2.0120303030204035E13 -2.0120303030201965E13 -16 2.012030404030545E13 -2.012030404030255E13 -17 2.012030505040703E13 -2.012030505040297E13 -18 2.0120306060508855E13 -2.0120306060503145E13 -19 2.0120307070611023E13 -2.0120307070602977E13 -20 2.0120308080713676E13 -2.0120308080702324E13 -21 2.0120309090817016E13 -2.0120309090800984E13 -22 2.0120310100921324E13 -2.0120310100898676E13 -23 2.0120311111027008E13 -2.0120311110994992E13 -24 2.0120312121134633E13 -2.0120312121089367E13 +1 20120301010001.52 -20120301010000.48 +2 20120302020102.74 -20120302020101.26 +3 20120303030204.04 -20120303030201.96 +4 20120304040305.45 -20120304040302.55 +5 20120305050407.03 -20120305050402.97 +6 20120306060508.86 -20120306060503.14 +7 20120307070611.02 -20120307070602.98 +8 20120308080713.68 -20120308080702.32 +9 20120309090817.02 -20120309090800.98 +10 20120310100921.32 -20120310100898.68 +11 20120311111027.01 -20120311110994.99 +12 20120312121134.63 -20120312121089.37 +13 20120301010001.52 -20120301010000.48 +14 20120302020102.74 -20120302020101.26 +15 20120303030204.04 -20120303030201.96 +16 20120304040305.45 -20120304040302.55 +17 20120305050407.03 -20120305050402.97 +18 20120306060508.86 -20120306060503.14 +19 20120307070611.02 -20120307070602.98 +20 20120308080713.68 -20120308080702.32 +21 20120309090817.02 -20120309090800.98 +22 20120310100921.32 -20120310100898.68 +23 20120311111027.01 -20120311110994.99 +24 20120312121134.63 -20120312121089.37 -- !sql_test_Double_DateTimeV2_notn_0 -- -1 2.0120301010001523E13 -2.0120301010000477E13 -2 2.0120302020102742E13 -2.0120302020101258E13 -3 2.0120303030204035E13 -2.0120303030201965E13 -4 2.012030404030545E13 -2.012030404030255E13 -5 2.012030505040703E13 -2.012030505040297E13 -6 2.0120306060508855E13 -2.0120306060503145E13 -7 2.0120307070611023E13 -2.0120307070602977E13 -8 2.0120308080713676E13 -2.0120308080702324E13 -9 2.0120309090817016E13 -2.0120309090800984E13 -10 2.0120310100921324E13 -2.0120310100898676E13 -11 2.0120311111027008E13 -2.0120311110994992E13 -12 2.0120312121134633E13 -2.0120312121089367E13 -13 2.0120301010001523E13 -2.0120301010000477E13 -14 2.0120302020102742E13 -2.0120302020101258E13 -15 2.0120303030204035E13 -2.0120303030201965E13 -16 2.012030404030545E13 -2.012030404030255E13 -17 2.012030505040703E13 -2.012030505040297E13 -18 2.0120306060508855E13 -2.0120306060503145E13 -19 2.0120307070611023E13 -2.0120307070602977E13 -20 2.0120308080713676E13 -2.0120308080702324E13 -21 2.0120309090817016E13 -2.0120309090800984E13 -22 2.0120310100921324E13 -2.0120310100898676E13 -23 2.0120311111027008E13 -2.0120311110994992E13 -24 2.0120312121134633E13 -2.0120312121089367E13 +1 20120301010001.52 -20120301010000.48 +2 20120302020102.74 -20120302020101.26 +3 20120303030204.04 -20120303030201.96 +4 20120304040305.45 -20120304040302.55 +5 20120305050407.03 -20120305050402.97 +6 20120306060508.86 -20120306060503.14 +7 20120307070611.02 -20120307070602.98 +8 20120308080713.68 -20120308080702.32 +9 20120309090817.02 -20120309090800.98 +10 20120310100921.32 -20120310100898.68 +11 20120311111027.01 -20120311110994.99 +12 20120312121134.63 -20120312121089.37 +13 20120301010001.52 -20120301010000.48 +14 20120302020102.74 -20120302020101.26 +15 20120303030204.04 -20120303030201.96 +16 20120304040305.45 -20120304040302.55 +17 20120305050407.03 -20120305050402.97 +18 20120306060508.86 -20120306060503.14 +19 20120307070611.02 -20120307070602.98 +20 20120308080713.68 -20120308080702.32 +21 20120309090817.02 -20120309090800.98 +22 20120310100921.32 -20120310100898.68 +23 20120311111027.01 -20120311110994.99 +24 20120312121134.63 -20120312121089.37 -- !sql_test_Double_DateTimeV2_1 -- \N \N \N \N -1 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -2 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -3 2.086073018171447E13 5.153003900804268E-14 1.0368 -4 2.9156332584804527E13 7.202177447702751E-14 1.4491 -5 4.0864339557372555E13 1.0094280354656542E-13 2.031 -6 5.743944974153253E13 1.4188650964925757E-13 2.8548 -7 8.091985097656723E13 1.9988760538726052E-13 4.0218 -8 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -9 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -10 2.2785848783078556E14 5.628541480326291E-13 11.3248 -11 3.2209801245173075E14 7.956437607587075E-13 16.0086 -12 4.55403144549249E14 1.124932847152526E-12 22.634 -13 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -14 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -15 2.086073018171447E13 5.153003900804268E-14 1.0368 -16 2.9156332584804527E13 7.202177447702751E-14 1.4491 -17 4.0864339557372555E13 1.0094280354656542E-13 2.031 -18 5.743944974153253E13 1.4188650964925757E-13 2.8548 -19 8.091985097656723E13 1.9988760538726052E-13 4.0218 -20 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -21 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -22 2.2785848783078556E14 5.628541480326291E-13 11.3248 -23 3.2209801245173075E14 7.956437607587075E-13 16.0086 -24 4.55403144549249E14 1.124932847152526E-12 22.634 +1 10551085849644.52 2.606322836518905e-14 0.5244 +2 14921215978107.64 3.68582936408745e-14 0.7416 +3 20860730181714.47 5.153003900804268e-14 1.0368 +4 29156332584804.53 7.202177447702751e-14 1.4491 +5 40864339557372.55 1.009428035465654e-13 2.031 +6 57439449741532.53 1.418865096492576e-13 2.8548 +7 80919850976567.23 1.998876053872605e-13 4.0218 +8 114172688203977.5 2.82028484714948e-13 5.6745 +9 161246169084652.4 3.983089903753446e-13 8.014099999999999 +10 227858487830785.6 5.628541480326291e-13 11.3248 +11 322098012451730.8 7.956437607587075e-13 16.0086 +12 455403144549249 1.124932847152526e-12 22.634 +13 10551085849644.52 2.606322836518905e-14 0.5244 +14 14921215978107.64 3.68582936408745e-14 0.7416 +15 20860730181714.47 5.153003900804268e-14 1.0368 +16 29156332584804.53 7.202177447702751e-14 1.4491 +17 40864339557372.55 1.009428035465654e-13 2.031 +18 57439449741532.53 1.418865096492576e-13 2.8548 +19 80919850976567.23 1.998876053872605e-13 4.0218 +20 114172688203977.5 2.82028484714948e-13 5.6745 +21 161246169084652.4 3.983089903753446e-13 8.014099999999999 +22 227858487830785.6 5.628541480326291e-13 11.3248 +23 322098012451730.8 7.956437607587075e-13 16.0086 +24 455403144549249 1.124932847152526e-12 22.634 -- !sql_test_Double_DateTimeV2_notn_1 -- -1 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -2 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -3 2.086073018171447E13 5.153003900804268E-14 1.0368 -4 2.9156332584804527E13 7.202177447702751E-14 1.4491 -5 4.0864339557372555E13 1.0094280354656542E-13 2.031 -6 5.743944974153253E13 1.4188650964925757E-13 2.8548 -7 8.091985097656723E13 1.9988760538726052E-13 4.0218 -8 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -9 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -10 2.2785848783078556E14 5.628541480326291E-13 11.3248 -11 3.2209801245173075E14 7.956437607587075E-13 16.0086 -12 4.55403144549249E14 1.124932847152526E-12 22.634 -13 1.0551085849644523E13 2.6063228365189052E-14 0.5244 -14 1.4921215978107645E13 3.6858293640874504E-14 0.7416 -15 2.086073018171447E13 5.153003900804268E-14 1.0368 -16 2.9156332584804527E13 7.202177447702751E-14 1.4491 -17 4.0864339557372555E13 1.0094280354656542E-13 2.031 -18 5.743944974153253E13 1.4188650964925757E-13 2.8548 -19 8.091985097656723E13 1.9988760538726052E-13 4.0218 -20 1.1417268820397755E14 2.8202848471494795E-13 5.6745 -21 1.6124616908465238E14 3.9830899037534455E-13 8.0141 -22 2.2785848783078556E14 5.628541480326291E-13 11.3248 -23 3.2209801245173075E14 7.956437607587075E-13 16.0086 -24 4.55403144549249E14 1.124932847152526E-12 22.634 +1 10551085849644.52 2.606322836518905e-14 0.5244 +2 14921215978107.64 3.68582936408745e-14 0.7416 +3 20860730181714.47 5.153003900804268e-14 1.0368 +4 29156332584804.53 7.202177447702751e-14 1.4491 +5 40864339557372.55 1.009428035465654e-13 2.031 +6 57439449741532.53 1.418865096492576e-13 2.8548 +7 80919850976567.23 1.998876053872605e-13 4.0218 +8 114172688203977.5 2.82028484714948e-13 5.6745 +9 161246169084652.4 3.983089903753446e-13 8.014099999999999 +10 227858487830785.6 5.628541480326291e-13 11.3248 +11 322098012451730.8 7.956437607587075e-13 16.0086 +12 455403144549249 1.124932847152526e-12 22.634 +13 10551085849644.52 2.606322836518905e-14 0.5244 +14 14921215978107.64 3.68582936408745e-14 0.7416 +15 20860730181714.47 5.153003900804268e-14 1.0368 +16 29156332584804.53 7.202177447702751e-14 1.4491 +17 40864339557372.55 1.009428035465654e-13 2.031 +18 57439449741532.53 1.418865096492576e-13 2.8548 +19 80919850976567.23 1.998876053872605e-13 4.0218 +20 114172688203977.5 2.82028484714948e-13 5.6745 +21 161246169084652.4 3.983089903753446e-13 8.014099999999999 +22 227858487830785.6 5.628541480326291e-13 11.3248 +23 322098012451730.8 7.956437607587075e-13 16.0086 +24 455403144549249 1.124932847152526e-12 22.634 -- !sql_test_Double_DateTimeV2_2 -- \N \N @@ -7641,9 +7641,9 @@ 6 2.8548 2.8548 7 4.0218 4.0218 8 6.6745 4.6745 -9 9.0141 7.014099999999999 +9 9.014099999999999 7.014099999999999 10 12.3248 10.3248 -11 17.0086 15.008600000000001 +11 17.0086 15.0086 12 23.634 21.634 13 0.5244 0.5244 14 0.7416 0.7416 @@ -7653,9 +7653,9 @@ 18 2.8548 2.8548 19 4.0218 4.0218 20 6.6745 4.6745 -21 9.0141 7.014099999999999 +21 9.014099999999999 7.014099999999999 22 12.3248 10.3248 -23 17.0086 15.008600000000001 +23 17.0086 15.0086 24 23.634 21.634 -- !sql_test_Double_Boolean_notn_0 -- @@ -7667,9 +7667,9 @@ 6 2.8548 2.8548 7 4.0218 4.0218 8 6.6745 4.6745 -9 9.0141 7.014099999999999 +9 9.014099999999999 7.014099999999999 10 12.3248 10.3248 -11 17.0086 15.008600000000001 +11 17.0086 15.0086 12 23.634 21.634 13 0.5244 0.5244 14 0.7416 0.7416 @@ -7679,61 +7679,61 @@ 18 2.8548 2.8548 19 4.0218 4.0218 20 6.6745 4.6745 -21 9.0141 7.014099999999999 +21 9.014099999999999 7.014099999999999 22 12.3248 10.3248 -23 17.0086 15.008600000000001 +23 17.0086 15.0086 24 23.634 21.634 -- !sql_test_Double_Boolean_1 -- \N \N \N \N -1 0.0 \N \N -2 0.0 \N \N -3 0.0 \N \N -4 0.0 \N \N -5 0.0 \N \N -6 0.0 \N \N -7 0.0 \N \N +1 0 \N \N +2 0 \N \N +3 0 \N \N +4 0 \N \N +5 0 \N \N +6 0 \N \N +7 0 \N \N 8 5.6745 5.6745 0.6745000000000001 -9 8.0141 8.0141 0.014099999999999113 -10 11.3248 11.3248 0.32479999999999976 +9 8.014099999999999 8.014099999999999 0.01409999999999911 +10 11.3248 11.3248 0.3247999999999998 11 16.0086 16.0086 0.008600000000001273 12 22.634 22.634 0.6340000000000003 -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 5.6745 5.6745 0.6745000000000001 -21 8.0141 8.0141 0.014099999999999113 -22 11.3248 11.3248 0.32479999999999976 +21 8.014099999999999 8.014099999999999 0.01409999999999911 +22 11.3248 11.3248 0.3247999999999998 23 16.0086 16.0086 0.008600000000001273 24 22.634 22.634 0.6340000000000003 -- !sql_test_Double_Boolean_notn_1 -- -1 0.0 \N \N -2 0.0 \N \N -3 0.0 \N \N -4 0.0 \N \N -5 0.0 \N \N -6 0.0 \N \N -7 0.0 \N \N +1 0 \N \N +2 0 \N \N +3 0 \N \N +4 0 \N \N +5 0 \N \N +6 0 \N \N +7 0 \N \N 8 5.6745 5.6745 0.6745000000000001 -9 8.0141 8.0141 0.014099999999999113 -10 11.3248 11.3248 0.32479999999999976 +9 8.014099999999999 8.014099999999999 0.01409999999999911 +10 11.3248 11.3248 0.3247999999999998 11 16.0086 16.0086 0.008600000000001273 12 22.634 22.634 0.6340000000000003 -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 5.6745 5.6745 0.6745000000000001 -21 8.0141 8.0141 0.014099999999999113 -22 11.3248 11.3248 0.32479999999999976 +21 8.014099999999999 8.014099999999999 0.01409999999999911 +22 11.3248 11.3248 0.3247999999999998 23 16.0086 16.0086 0.008600000000001273 24 22.634 22.634 0.6340000000000003 @@ -7845,109 +7845,109 @@ -- !sql_test_DecimalV2_TinyInt_0 -- \N \N \N -1 25.395000000 23.395000000 -2 36.484000000 32.484000000 -3 51.756000000 45.756000000 -4 72.943000000 64.943000000 -5 102.494000000 92.494000000 -6 143.874000000 131.874000000 -7 201.980000000 187.980000000 +1 25.395200000 23.395200000 +2 36.483700000 32.483700000 +3 51.755800000 45.755800000 +4 72.942900000 64.942900000 +5 102.494200000 92.494200000 +6 143.873600000 131.873600000 +7 201.979800000 187.979800000 8 283.741000000 267.741000000 -9 398.955000000 380.955000000 +9 398.955300000 380.955300000 10 561.479000000 541.479000000 -11 790.908000000 768.908000000 -12 1114.957000000 1090.957000000 -13 25.395000000 23.395000000 -14 36.484000000 32.484000000 -15 51.756000000 45.756000000 -16 72.943000000 64.943000000 -17 102.494000000 92.494000000 -18 143.874000000 131.874000000 -19 201.980000000 187.980000000 +11 790.908400000 768.908400000 +12 1114.956500000 1090.956500000 +13 25.395200000 23.395200000 +14 36.483700000 32.483700000 +15 51.755800000 45.755800000 +16 72.942900000 64.942900000 +17 102.494200000 92.494200000 +18 143.873600000 131.873600000 +19 201.979800000 187.979800000 20 283.741000000 267.741000000 -21 398.955000000 380.955000000 +21 398.955300000 380.955300000 22 561.479000000 541.479000000 -23 790.908000000 768.908000000 -24 1114.957000000 1090.957000000 +23 790.908400000 768.908400000 +24 1114.956500000 1090.956500000 -- !sql_test_DecimalV2_TinyInt_notn_0 -- -1 25.395000000 23.395000000 -2 36.484000000 32.484000000 -3 51.756000000 45.756000000 -4 72.943000000 64.943000000 -5 102.494000000 92.494000000 -6 143.874000000 131.874000000 -7 201.980000000 187.980000000 +1 25.395200000 23.395200000 +2 36.483700000 32.483700000 +3 51.755800000 45.755800000 +4 72.942900000 64.942900000 +5 102.494200000 92.494200000 +6 143.873600000 131.873600000 +7 201.979800000 187.979800000 8 283.741000000 267.741000000 -9 398.955000000 380.955000000 +9 398.955300000 380.955300000 10 561.479000000 541.479000000 -11 790.908000000 768.908000000 -12 1114.957000000 1090.957000000 -13 25.395000000 23.395000000 -14 36.484000000 32.484000000 -15 51.756000000 45.756000000 -16 72.943000000 64.943000000 -17 102.494000000 92.494000000 -18 143.874000000 131.874000000 -19 201.980000000 187.980000000 +11 790.908400000 768.908400000 +12 1114.956500000 1090.956500000 +13 25.395200000 23.395200000 +14 36.483700000 32.483700000 +15 51.755800000 45.755800000 +16 72.942900000 64.942900000 +17 102.494200000 92.494200000 +18 143.873600000 131.873600000 +19 201.979800000 187.979800000 20 283.741000000 267.741000000 -21 398.955000000 380.955000000 +21 398.955300000 380.955300000 22 561.479000000 541.479000000 -23 790.908000000 768.908000000 -24 1114.957000000 1090.957000000 +23 790.908400000 768.908400000 +24 1114.956500000 1090.956500000 -- !sql_test_DecimalV2_TinyInt_1 -- \N \N \N \N -1 24.395000000 24.395000000 0.395000000 -2 68.968000000 17.242000000 0.484000000 -3 146.268000000 16.252000000 0.756000000 -4 275.772000000 17.235750000 0.943000000 -5 487.470000000 19.498800000 2.494000000 -6 827.244000000 22.979000000 5.874000000 -7 1364.860000000 27.854285714 5.980000000 +1 24.395200000 24.395200000 0.395200000 +2 68.967400000 17.241850000 0.483700000 +3 146.267400000 16.251933333 0.755800000 +4 275.771600000 17.235725000 0.942900000 +5 487.471000000 19.498840000 2.494200000 +6 827.241600000 22.978933333 5.873600000 +7 1364.858600000 27.854257143 5.979800000 8 2205.928000000 34.467625000 3.741000000 -9 3509.595000000 43.328333333 2.955000000 +9 3509.597700000 43.328366667 2.955300000 10 5514.790000000 55.147900000 1.479000000 -11 8578.988000000 70.900727273 9.908000000 -12 13235.484000000 91.913083333 10.957000000 -13 24.395000000 24.395000000 0.395000000 -14 68.968000000 17.242000000 0.484000000 -15 146.268000000 16.252000000 0.756000000 -16 275.772000000 17.235750000 0.943000000 -17 487.470000000 19.498800000 2.494000000 -18 827.244000000 22.979000000 5.874000000 -19 1364.860000000 27.854285714 5.980000000 +11 8578.992400000 70.900763636 9.908400000 +12 13235.478000000 91.913041667 10.956500000 +13 24.395200000 24.395200000 0.395200000 +14 68.967400000 17.241850000 0.483700000 +15 146.267400000 16.251933333 0.755800000 +16 275.771600000 17.235725000 0.942900000 +17 487.471000000 19.498840000 2.494200000 +18 827.241600000 22.978933333 5.873600000 +19 1364.858600000 27.854257143 5.979800000 20 2205.928000000 34.467625000 3.741000000 -21 3509.595000000 43.328333333 2.955000000 +21 3509.597700000 43.328366667 2.955300000 22 5514.790000000 55.147900000 1.479000000 -23 8578.988000000 70.900727273 9.908000000 -24 13235.484000000 91.913083333 10.957000000 +23 8578.992400000 70.900763636 9.908400000 +24 13235.478000000 91.913041667 10.956500000 -- !sql_test_DecimalV2_TinyInt_notn_1 -- -1 24.395000000 24.395000000 0.395000000 -2 68.968000000 17.242000000 0.484000000 -3 146.268000000 16.252000000 0.756000000 -4 275.772000000 17.235750000 0.943000000 -5 487.470000000 19.498800000 2.494000000 -6 827.244000000 22.979000000 5.874000000 -7 1364.860000000 27.854285714 5.980000000 +1 24.395200000 24.395200000 0.395200000 +2 68.967400000 17.241850000 0.483700000 +3 146.267400000 16.251933333 0.755800000 +4 275.771600000 17.235725000 0.942900000 +5 487.471000000 19.498840000 2.494200000 +6 827.241600000 22.978933333 5.873600000 +7 1364.858600000 27.854257143 5.979800000 8 2205.928000000 34.467625000 3.741000000 -9 3509.595000000 43.328333333 2.955000000 +9 3509.597700000 43.328366667 2.955300000 10 5514.790000000 55.147900000 1.479000000 -11 8578.988000000 70.900727273 9.908000000 -12 13235.484000000 91.913083333 10.957000000 -13 24.395000000 24.395000000 0.395000000 -14 68.968000000 17.242000000 0.484000000 -15 146.268000000 16.252000000 0.756000000 -16 275.772000000 17.235750000 0.943000000 -17 487.470000000 19.498800000 2.494000000 -18 827.244000000 22.979000000 5.874000000 -19 1364.860000000 27.854285714 5.980000000 +11 8578.992400000 70.900763636 9.908400000 +12 13235.478000000 91.913041667 10.956500000 +13 24.395200000 24.395200000 0.395200000 +14 68.967400000 17.241850000 0.483700000 +15 146.267400000 16.251933333 0.755800000 +16 275.771600000 17.235725000 0.942900000 +17 487.471000000 19.498840000 2.494200000 +18 827.241600000 22.978933333 5.873600000 +19 1364.858600000 27.854257143 5.979800000 20 2205.928000000 34.467625000 3.741000000 -21 3509.595000000 43.328333333 2.955000000 +21 3509.597700000 43.328366667 2.955300000 22 5514.790000000 55.147900000 1.479000000 -23 8578.988000000 70.900727273 9.908000000 -24 13235.484000000 91.913083333 10.957000000 +23 8578.992400000 70.900763636 9.908400000 +24 13235.478000000 91.913041667 10.956500000 -- !sql_test_DecimalV2_TinyInt_2 -- \N \N @@ -8057,109 +8057,109 @@ -- !sql_test_DecimalV2_SmallInt_0 -- \N \N \N -1 34.395000000 14.395000000 -2 54.484000000 14.484000000 -3 88.756000000 8.756000000 -4 148.943000000 -11.057000000 -5 257.494000000 -62.506000000 -6 457.874000000 -182.126000000 -7 834.980000000 -445.020000000 +1 34.395200000 14.395200000 +2 54.483700000 14.483700000 +3 88.755800000 8.755800000 +4 148.942900000 -11.057100000 +5 257.494200000 -62.505800000 +6 457.873600000 -182.126400000 +7 834.979800000 -445.020200000 8 1555.741000000 -1004.259000000 -9 2949.955000000 -2170.045000000 +9 2949.955300000 -2170.044700000 10 5671.479000000 -4568.521000000 -11 11019.908000000 -9460.092000000 -12 21582.957000000 -19377.043000000 -13 34.395000000 14.395000000 -14 54.484000000 14.484000000 -15 88.756000000 8.756000000 -16 148.943000000 -11.057000000 -17 257.494000000 -62.506000000 -18 457.874000000 -182.126000000 -19 834.980000000 -445.020000000 +11 11019.908400000 -9460.091600000 +12 21582.956500000 -19377.043500000 +13 34.395200000 14.395200000 +14 54.483700000 14.483700000 +15 88.755800000 8.755800000 +16 148.942900000 -11.057100000 +17 257.494200000 -62.505800000 +18 457.873600000 -182.126400000 +19 834.979800000 -445.020200000 20 1555.741000000 -1004.259000000 -21 2949.955000000 -2170.045000000 +21 2949.955300000 -2170.044700000 22 5671.479000000 -4568.521000000 -23 11019.908000000 -9460.092000000 -24 21582.957000000 -19377.043000000 +23 11019.908400000 -9460.091600000 +24 21582.956500000 -19377.043500000 -- !sql_test_DecimalV2_SmallInt_notn_0 -- -1 34.395000000 14.395000000 -2 54.484000000 14.484000000 -3 88.756000000 8.756000000 -4 148.943000000 -11.057000000 -5 257.494000000 -62.506000000 -6 457.874000000 -182.126000000 -7 834.980000000 -445.020000000 +1 34.395200000 14.395200000 +2 54.483700000 14.483700000 +3 88.755800000 8.755800000 +4 148.942900000 -11.057100000 +5 257.494200000 -62.505800000 +6 457.873600000 -182.126400000 +7 834.979800000 -445.020200000 8 1555.741000000 -1004.259000000 -9 2949.955000000 -2170.045000000 +9 2949.955300000 -2170.044700000 10 5671.479000000 -4568.521000000 -11 11019.908000000 -9460.092000000 -12 21582.957000000 -19377.043000000 -13 34.395000000 14.395000000 -14 54.484000000 14.484000000 -15 88.756000000 8.756000000 -16 148.943000000 -11.057000000 -17 257.494000000 -62.506000000 -18 457.874000000 -182.126000000 -19 834.980000000 -445.020000000 +11 11019.908400000 -9460.091600000 +12 21582.956500000 -19377.043500000 +13 34.395200000 14.395200000 +14 54.483700000 14.483700000 +15 88.755800000 8.755800000 +16 148.942900000 -11.057100000 +17 257.494200000 -62.505800000 +18 457.873600000 -182.126400000 +19 834.979800000 -445.020200000 20 1555.741000000 -1004.259000000 -21 2949.955000000 -2170.045000000 +21 2949.955300000 -2170.044700000 22 5671.479000000 -4568.521000000 -23 11019.908000000 -9460.092000000 -24 21582.957000000 -19377.043000000 +23 11019.908400000 -9460.091600000 +24 21582.956500000 -19377.043500000 -- !sql_test_DecimalV2_SmallInt_1 -- \N \N \N \N -1 243.950000000 2.439500000 4.395000000 -2 689.680000000 1.724200000 14.484000000 -3 1950.240000000 1.218900000 8.756000000 -4 5515.440000000 0.861787500 68.943000000 -5 15599.040000000 0.609337500 97.494000000 -6 44119.680000000 0.430856250 137.874000000 -7 124787.200000000 0.304656250 194.980000000 +1 243.952000000 2.439520000 4.395200000 +2 689.674000000 1.724185000 14.483700000 +3 1950.232000000 1.218895000 8.755800000 +4 5515.432000000 0.861786250 68.942900000 +5 15599.072000000 0.609338750 97.494200000 +6 44119.552000000 0.430855000 137.873600000 +7 124787.072000000 0.304655938 194.979800000 8 352948.480000000 0.215422656 275.741000000 -9 998284.800000000 0.152326172 389.955000000 +9 998285.568000000 0.152326289 389.955300000 10 2823572.480000000 0.107710742 551.479000000 -11 7986257.920000000 0.076162891 779.908000000 -12 22588559.360000000 0.053855322 1102.957000000 -13 243.950000000 2.439500000 4.395000000 -14 689.680000000 1.724200000 14.484000000 -15 1950.240000000 1.218900000 8.756000000 -16 5515.440000000 0.861787500 68.943000000 -17 15599.040000000 0.609337500 97.494000000 -18 44119.680000000 0.430856250 137.874000000 -19 124787.200000000 0.304656250 194.980000000 +11 7986262.016000000 0.076162930 779.908400000 +12 22588549.120000000 0.053855298 1102.956500000 +13 243.952000000 2.439520000 4.395200000 +14 689.674000000 1.724185000 14.483700000 +15 1950.232000000 1.218895000 8.755800000 +16 5515.432000000 0.861786250 68.942900000 +17 15599.072000000 0.609338750 97.494200000 +18 44119.552000000 0.430855000 137.873600000 +19 124787.072000000 0.304655938 194.979800000 20 352948.480000000 0.215422656 275.741000000 -21 998284.800000000 0.152326172 389.955000000 +21 998285.568000000 0.152326289 389.955300000 22 2823572.480000000 0.107710742 551.479000000 -23 7986257.920000000 0.076162891 779.908000000 -24 22588559.360000000 0.053855322 1102.957000000 +23 7986262.016000000 0.076162930 779.908400000 +24 22588549.120000000 0.053855298 1102.956500000 -- !sql_test_DecimalV2_SmallInt_notn_1 -- -1 243.950000000 2.439500000 4.395000000 -2 689.680000000 1.724200000 14.484000000 -3 1950.240000000 1.218900000 8.756000000 -4 5515.440000000 0.861787500 68.943000000 -5 15599.040000000 0.609337500 97.494000000 -6 44119.680000000 0.430856250 137.874000000 -7 124787.200000000 0.304656250 194.980000000 +1 243.952000000 2.439520000 4.395200000 +2 689.674000000 1.724185000 14.483700000 +3 1950.232000000 1.218895000 8.755800000 +4 5515.432000000 0.861786250 68.942900000 +5 15599.072000000 0.609338750 97.494200000 +6 44119.552000000 0.430855000 137.873600000 +7 124787.072000000 0.304655938 194.979800000 8 352948.480000000 0.215422656 275.741000000 -9 998284.800000000 0.152326172 389.955000000 +9 998285.568000000 0.152326289 389.955300000 10 2823572.480000000 0.107710742 551.479000000 -11 7986257.920000000 0.076162891 779.908000000 -12 22588559.360000000 0.053855322 1102.957000000 -13 243.950000000 2.439500000 4.395000000 -14 689.680000000 1.724200000 14.484000000 -15 1950.240000000 1.218900000 8.756000000 -16 5515.440000000 0.861787500 68.943000000 -17 15599.040000000 0.609337500 97.494000000 -18 44119.680000000 0.430856250 137.874000000 -19 124787.200000000 0.304656250 194.980000000 +11 7986262.016000000 0.076162930 779.908400000 +12 22588549.120000000 0.053855298 1102.956500000 +13 243.952000000 2.439520000 4.395200000 +14 689.674000000 1.724185000 14.483700000 +15 1950.232000000 1.218895000 8.755800000 +16 5515.432000000 0.861786250 68.942900000 +17 15599.072000000 0.609338750 97.494200000 +18 44119.552000000 0.430855000 137.873600000 +19 124787.072000000 0.304655938 194.979800000 20 352948.480000000 0.215422656 275.741000000 -21 998284.800000000 0.152326172 389.955000000 +21 998285.568000000 0.152326289 389.955300000 22 2823572.480000000 0.107710742 551.479000000 -23 7986257.920000000 0.076162891 779.908000000 -24 22588559.360000000 0.053855322 1102.957000000 +23 7986262.016000000 0.076162930 779.908400000 +24 22588549.120000000 0.053855298 1102.956500000 -- !sql_test_DecimalV2_SmallInt_2 -- \N \N @@ -8269,109 +8269,109 @@ -- !sql_test_DecimalV2_Integer_0 -- \N \N \N -1 23819.395000000 -23770.605000000 -2 47579.484000000 -47510.516000000 -3 95093.756000000 -94996.244000000 -4 190113.943000000 -189976.057000000 -5 380142.494000000 -379947.506000000 -6 760182.874000000 -759907.126000000 -7 1520239.980000000 -1519850.020000000 +1 23819.395200000 -23770.604800000 +2 47579.483700000 -47510.516300000 +3 95093.755800000 -94996.244200000 +4 190113.942900000 -189976.057100000 +5 380142.494200000 -379947.505800000 +6 760182.873600000 -759907.126400000 +7 1520239.979800000 -1519850.020200000 8 3040320.741000000 -3039769.259000000 -9 6080434.955000000 -6079655.045000000 +9 6080434.955300000 -6079655.044700000 10 12160596.479000000 -12159493.521000000 -11 24320824.908000000 -24319265.092000000 -12 48641147.957000000 -48638942.043000000 -13 23819.395000000 -23770.605000000 -14 47579.484000000 -47510.516000000 -15 95093.756000000 -94996.244000000 -16 190113.943000000 -189976.057000000 -17 380142.494000000 -379947.506000000 -18 760182.874000000 -759907.126000000 -19 1520239.980000000 -1519850.020000000 +11 24320824.908400000 -24319265.091600000 +12 48641147.956500000 -48638942.043500000 +13 23819.395200000 -23770.604800000 +14 47579.483700000 -47510.516300000 +15 95093.755800000 -94996.244200000 +16 190113.942900000 -189976.057100000 +17 380142.494200000 -379947.505800000 +18 760182.873600000 -759907.126400000 +19 1520239.979800000 -1519850.020200000 20 3040320.741000000 -3039769.259000000 -21 6080434.955000000 -6079655.045000000 +21 6080434.955300000 -6079655.044700000 22 12160596.479000000 -12159493.521000000 -23 24320824.908000000 -24319265.092000000 -24 48641147.957000000 -48638942.043000000 +23 24320824.908400000 -24319265.091600000 +24 48641147.956500000 -48638942.043500000 -- !sql_test_DecimalV2_Integer_notn_0 -- -1 23819.395000000 -23770.605000000 -2 47579.484000000 -47510.516000000 -3 95093.756000000 -94996.244000000 -4 190113.943000000 -189976.057000000 -5 380142.494000000 -379947.506000000 -6 760182.874000000 -759907.126000000 -7 1520239.980000000 -1519850.020000000 +1 23819.395200000 -23770.604800000 +2 47579.483700000 -47510.516300000 +3 95093.755800000 -94996.244200000 +4 190113.942900000 -189976.057100000 +5 380142.494200000 -379947.505800000 +6 760182.873600000 -759907.126400000 +7 1520239.979800000 -1519850.020200000 8 3040320.741000000 -3039769.259000000 -9 6080434.955000000 -6079655.045000000 +9 6080434.955300000 -6079655.044700000 10 12160596.479000000 -12159493.521000000 -11 24320824.908000000 -24319265.092000000 -12 48641147.957000000 -48638942.043000000 -13 23819.395000000 -23770.605000000 -14 47579.484000000 -47510.516000000 -15 95093.756000000 -94996.244000000 -16 190113.943000000 -189976.057000000 -17 380142.494000000 -379947.506000000 -18 760182.874000000 -759907.126000000 -19 1520239.980000000 -1519850.020000000 +11 24320824.908400000 -24319265.091600000 +12 48641147.956500000 -48638942.043500000 +13 23819.395200000 -23770.604800000 +14 47579.483700000 -47510.516300000 +15 95093.755800000 -94996.244200000 +16 190113.942900000 -189976.057100000 +17 380142.494200000 -379947.505800000 +18 760182.873600000 -759907.126400000 +19 1520239.979800000 -1519850.020200000 20 3040320.741000000 -3039769.259000000 -21 6080434.955000000 -6079655.045000000 +21 6080434.955300000 -6079655.044700000 22 12160596.479000000 -12159493.521000000 -23 24320824.908000000 -24319265.092000000 -24 48641147.957000000 -48638942.043000000 +23 24320824.908400000 -24319265.091600000 +24 48641147.956500000 -48638942.043500000 -- !sql_test_DecimalV2_Integer_1 -- \N \N \N \N -1 580479.025000000 0.001025215 24.395000000 -2 1639541.780000000 0.000725292 34.484000000 -3 4634014.020000000 0.000512978 48.756000000 -4 13102272.435000000 0.000362772 68.943000000 -5 37052107.230000000 0.000256533 97.494000000 -6 104790444.330000000 0.000181402 137.874000000 -7 296378374.100000000 0.000128273 194.980000000 +1 580483.784000000 0.001025224 24.395200000 +2 1639527.516500000 0.000725286 34.483700000 +3 4633995.011000000 0.000512976 48.755800000 +4 13102253.430500000 0.000362771 68.942900000 +5 37052183.239000000 0.000256533 97.494200000 +6 104790140.312000000 0.000181402 137.873600000 +7 296378070.091000000 0.000128272 194.979800000 8 838265048.345000000 0.000090703 275.741000000 -9 2370943947.975000000 0.000064137 389.955000000 +9 2370945771.988500000 0.000064137 389.955300000 10 6706009456.555000000 0.000045352 551.479000000 -11 18967397655.860000000 0.000032069 779.908000000 -12 53647878113.065000000 0.000022676 1102.957000000 -13 580479.025000000 0.001025215 24.395000000 -14 1639541.780000000 0.000725292 34.484000000 -15 4634014.020000000 0.000512978 48.756000000 -16 13102272.435000000 0.000362772 68.943000000 -17 37052107.230000000 0.000256533 97.494000000 -18 104790444.330000000 0.000181402 137.874000000 -19 296378374.100000000 0.000128273 194.980000000 +11 18967407383.878000000 0.000032069 779.908400000 +12 53647853793.042500000 0.000022676 1102.956500000 +13 580483.784000000 0.001025224 24.395200000 +14 1639527.516500000 0.000725286 34.483700000 +15 4633995.011000000 0.000512976 48.755800000 +16 13102253.430500000 0.000362771 68.942900000 +17 37052183.239000000 0.000256533 97.494200000 +18 104790140.312000000 0.000181402 137.873600000 +19 296378070.091000000 0.000128272 194.979800000 20 838265048.345000000 0.000090703 275.741000000 -21 2370943947.975000000 0.000064137 389.955000000 +21 2370945771.988500000 0.000064137 389.955300000 22 6706009456.555000000 0.000045352 551.479000000 -23 18967397655.860000000 0.000032069 779.908000000 -24 53647878113.065000000 0.000022676 1102.957000000 +23 18967407383.878000000 0.000032069 779.908400000 +24 53647853793.042500000 0.000022676 1102.956500000 -- !sql_test_DecimalV2_Integer_notn_1 -- -1 580479.025000000 0.001025215 24.395000000 -2 1639541.780000000 0.000725292 34.484000000 -3 4634014.020000000 0.000512978 48.756000000 -4 13102272.435000000 0.000362772 68.943000000 -5 37052107.230000000 0.000256533 97.494000000 -6 104790444.330000000 0.000181402 137.874000000 -7 296378374.100000000 0.000128273 194.980000000 +1 580483.784000000 0.001025224 24.395200000 +2 1639527.516500000 0.000725286 34.483700000 +3 4633995.011000000 0.000512976 48.755800000 +4 13102253.430500000 0.000362771 68.942900000 +5 37052183.239000000 0.000256533 97.494200000 +6 104790140.312000000 0.000181402 137.873600000 +7 296378070.091000000 0.000128272 194.979800000 8 838265048.345000000 0.000090703 275.741000000 -9 2370943947.975000000 0.000064137 389.955000000 +9 2370945771.988500000 0.000064137 389.955300000 10 6706009456.555000000 0.000045352 551.479000000 -11 18967397655.860000000 0.000032069 779.908000000 -12 53647878113.065000000 0.000022676 1102.957000000 -13 580479.025000000 0.001025215 24.395000000 -14 1639541.780000000 0.000725292 34.484000000 -15 4634014.020000000 0.000512978 48.756000000 -16 13102272.435000000 0.000362772 68.943000000 -17 37052107.230000000 0.000256533 97.494000000 -18 104790444.330000000 0.000181402 137.874000000 -19 296378374.100000000 0.000128273 194.980000000 +11 18967407383.878000000 0.000032069 779.908400000 +12 53647853793.042500000 0.000022676 1102.956500000 +13 580483.784000000 0.001025224 24.395200000 +14 1639527.516500000 0.000725286 34.483700000 +15 4633995.011000000 0.000512976 48.755800000 +16 13102253.430500000 0.000362771 68.942900000 +17 37052183.239000000 0.000256533 97.494200000 +18 104790140.312000000 0.000181402 137.873600000 +19 296378070.091000000 0.000128272 194.979800000 20 838265048.345000000 0.000090703 275.741000000 -21 2370943947.975000000 0.000064137 389.955000000 +21 2370945771.988500000 0.000064137 389.955300000 22 6706009456.555000000 0.000045352 551.479000000 -23 18967397655.860000000 0.000032069 779.908000000 -24 53647878113.065000000 0.000022676 1102.957000000 +23 18967407383.878000000 0.000032069 779.908400000 +24 53647853793.042500000 0.000022676 1102.956500000 -- !sql_test_DecimalV2_Integer_2 -- \N \N @@ -8852,109 +8852,109 @@ -- !sql_test_DecimalV2_Float_0 -- \N \N \N -1 24.495000001 24.294999999 -2 34.684000003 34.283999997 -3 49.056000012 48.455999988 -4 69.343000006 68.542999994 -5 97.994000000 96.994000000 -6 138.474000024 137.273999976 -7 195.679999988 194.280000012 +1 24.495200001 24.295199999 +2 34.683700003 34.283699997 +3 49.055800012 48.455799988 +4 69.342900006 68.542899994 +5 97.994200000 96.994200000 +6 138.473600024 137.273599976 +7 195.679799988 194.279800012 8 276.541000012 274.940999988 -9 390.854999976 389.055000024 +9 390.855299976 389.055300024 10 552.479000000 550.479000000 -11 781.008000024 778.807999976 -12 1104.157000048 1101.756999952 -13 24.495000001 24.294999999 -14 34.684000003 34.283999997 -15 49.056000012 48.455999988 -16 69.343000006 68.542999994 -17 97.994000000 96.994000000 -18 138.474000024 137.273999976 -19 195.679999988 194.280000012 +11 781.008400024 778.808399976 +12 1104.156500048 1101.756499952 +13 24.495200001 24.295199999 +14 34.683700003 34.283699997 +15 49.055800012 48.455799988 +16 69.342900006 68.542899994 +17 97.994200000 96.994200000 +18 138.473600024 137.273599976 +19 195.679799988 194.279800012 20 276.541000012 274.940999988 -21 390.854999976 389.055000024 +21 390.855299976 389.055300024 22 552.479000000 550.479000000 -23 781.008000024 778.807999976 -24 1104.157000048 1101.756999952 +23 781.008400024 778.808399976 +24 1104.156500048 1101.756499952 -- !sql_test_DecimalV2_Float_notn_0 -- -1 24.495000001 24.294999999 -2 34.684000003 34.283999997 -3 49.056000012 48.455999988 -4 69.343000006 68.542999994 -5 97.994000000 96.994000000 -6 138.474000024 137.273999976 -7 195.679999988 194.280000012 +1 24.495200001 24.295199999 +2 34.683700003 34.283699997 +3 49.055800012 48.455799988 +4 69.342900006 68.542899994 +5 97.994200000 96.994200000 +6 138.473600024 137.273599976 +7 195.679799988 194.279800012 8 276.541000012 274.940999988 -9 390.854999976 389.055000024 +9 390.855299976 389.055300024 10 552.479000000 550.479000000 -11 781.008000024 778.807999976 -12 1104.157000048 1101.756999952 -13 24.495000001 24.294999999 -14 34.684000003 34.283999997 -15 49.056000012 48.455999988 -16 69.343000006 68.542999994 -17 97.994000000 96.994000000 -18 138.474000024 137.273999976 -19 195.679999988 194.280000012 +11 781.008400024 778.808399976 +12 1104.156500048 1101.756499952 +13 24.495200001 24.295199999 +14 34.683700003 34.283699997 +15 49.055800012 48.455799988 +16 69.342900006 68.542899994 +17 97.994200000 96.994200000 +18 138.473600024 137.273599976 +19 195.679799988 194.279800012 20 276.541000012 274.940999988 -21 390.854999976 389.055000024 +21 390.855299976 389.055300024 22 552.479000000 550.479000000 -23 781.008000024 778.807999976 -24 1104.157000048 1101.756999952 +23 781.008400024 778.808399976 +24 1104.156500048 1101.756499952 -- !sql_test_DecimalV2_Float_1 -- \N \N \N \N -1 2.439500025 243.9499963648618 0.094999757 -2 6.896800104 172.41999743074183 0.083999484 -3 14.626800586 162.51999354203568 0.155998056 -4 27.577200414 172.35749743167315 0.142998968 -5 48.747000000 194.988 0.494000000 -6 82.724403309 229.78999086896613 0.473994504 -7 136.485997661 278.5428618864138 0.380003336 -8 220.592803309 344.67624486392367 0.540995872 -9 350.959490642 433.2833448114221 0.255010392 +1 2.439520025 243.951996364832 0.095199757 +2 6.896740104 172.4184974307642 0.083699484 +3 14.626740586 162.5193268753955 0.155798056 +4 27.577160414 172.3572474316769 0.142898968 +5 48.747100000 194.9884 0.494200000 +6 82.724163309 229.789324202326 0.473594504 +7 136.485857661 278.5425761721232 0.379803336 +8 220.592803309 344.6762448639237 0.540995872 +9 350.959760642 433.2836781447643 0.255310392 10 551.479000000 551.479 0.479000000 -11 857.898818718 709.0072573599543 0.007982984 -12 1323.548452942 919.130796810357 0.156955888 -13 2.439500025 243.9499963648618 0.094999757 -14 6.896800104 172.41999743074183 0.083999484 -15 14.626800586 162.51999354203568 0.155998056 -16 27.577200414 172.35749743167315 0.142998968 -17 48.747000000 194.988 0.494000000 -18 82.724403309 229.78999086896613 0.473994504 -19 136.485997661 278.5428618864138 0.380003336 -20 220.592803309 344.67624486392367 0.540995872 -21 350.959490642 433.2833448114221 0.255010392 +11 857.899258718 709.00762099631 0.008382984 +12 1323.547852942 919.1303801437068 0.156455888 +13 2.439520025 243.951996364832 0.095199757 +14 6.896740104 172.4184974307642 0.083699484 +15 14.626740586 162.5193268753955 0.155798056 +16 27.577160414 172.3572474316769 0.142898968 +17 48.747100000 194.9884 0.494200000 +18 82.724163309 229.789324202326 0.473594504 +19 136.485857661 278.5425761721232 0.379803336 +20 220.592803309 344.6762448639237 0.540995872 +21 350.959760642 433.2836781447643 0.255310392 22 551.479000000 551.479 0.479000000 -23 857.898818718 709.0072573599543 0.007982984 -24 1323.548452942 919.130796810357 0.156955888 +23 857.899258718 709.00762099631 0.008382984 +24 1323.547852942 919.1303801437068 0.156455888 -- !sql_test_DecimalV2_Float_notn_1 -- -1 2.439500025 243.9499963648618 0.094999757 -2 6.896800104 172.41999743074183 0.083999484 -3 14.626800586 162.51999354203568 0.155998056 -4 27.577200414 172.35749743167315 0.142998968 -5 48.747000000 194.988 0.494000000 -6 82.724403309 229.78999086896613 0.473994504 -7 136.485997661 278.5428618864138 0.380003336 -8 220.592803309 344.67624486392367 0.540995872 -9 350.959490642 433.2833448114221 0.255010392 +1 2.439520025 243.951996364832 0.095199757 +2 6.896740104 172.4184974307642 0.083699484 +3 14.626740586 162.5193268753955 0.155798056 +4 27.577160414 172.3572474316769 0.142898968 +5 48.747100000 194.9884 0.494200000 +6 82.724163309 229.789324202326 0.473594504 +7 136.485857661 278.5425761721232 0.379803336 +8 220.592803309 344.6762448639237 0.540995872 +9 350.959760642 433.2836781447643 0.255310392 10 551.479000000 551.479 0.479000000 -11 857.898818718 709.0072573599543 0.007982984 -12 1323.548452942 919.130796810357 0.156955888 -13 2.439500025 243.9499963648618 0.094999757 -14 6.896800104 172.41999743074183 0.083999484 -15 14.626800586 162.51999354203568 0.155998056 -16 27.577200414 172.35749743167315 0.142998968 -17 48.747000000 194.988 0.494000000 -18 82.724403309 229.78999086896613 0.473994504 -19 136.485997661 278.5428618864138 0.380003336 -20 220.592803309 344.67624486392367 0.540995872 -21 350.959490642 433.2833448114221 0.255010392 +11 857.899258718 709.00762099631 0.008382984 +12 1323.547852942 919.1303801437068 0.156455888 +13 2.439520025 243.951996364832 0.095199757 +14 6.896740104 172.4184974307642 0.083699484 +15 14.626740586 162.5193268753955 0.155798056 +16 27.577160414 172.3572474316769 0.142898968 +17 48.747100000 194.9884 0.494200000 +18 82.724163309 229.789324202326 0.473594504 +19 136.485857661 278.5425761721232 0.379803336 +20 220.592803309 344.6762448639237 0.540995872 +21 350.959760642 433.2836781447643 0.255310392 22 551.479000000 551.479 0.479000000 -23 857.898818718 709.0072573599543 0.007982984 -24 1323.548452942 919.130796810357 0.156955888 +23 857.899258718 709.00762099631 0.008382984 +24 1323.547852942 919.1303801437068 0.156455888 -- !sql_test_DecimalV2_Float_2 -- \N \N @@ -9064,109 +9064,109 @@ -- !sql_test_DecimalV2_Double_0 -- \N \N \N -1 24.919400000 23.870600000 -2 35.225600000 33.742400000 -3 49.792800000 47.719200000 -4 70.392100000 67.493900000 -5 99.525000000 95.463000000 -6 140.728800000 135.019200000 -7 199.001800000 190.958200000 +1 24.919600000 23.870800000 +2 35.225300000 33.742100000 +3 49.792600000 47.719000000 +4 70.392000000 67.493800000 +5 99.525200000 95.463200000 +6 140.728400000 135.018800000 +7 199.001600000 190.958000000 8 281.415500000 270.066500000 -9 397.969100000 381.940900000 +9 397.969400000 381.941200000 10 562.803800000 540.154200000 -11 795.916600000 763.899400000 -12 1125.591000000 1080.323000000 -13 24.919400000 23.870600000 -14 35.225600000 33.742400000 -15 49.792800000 47.719200000 -16 70.392100000 67.493900000 -17 99.525000000 95.463000000 -18 140.728800000 135.019200000 -19 199.001800000 190.958200000 +11 795.917000000 763.899800000 +12 1125.590500000 1080.322500000 +13 24.919600000 23.870800000 +14 35.225300000 33.742100000 +15 49.792600000 47.719000000 +16 70.392000000 67.493800000 +17 99.525200000 95.463200000 +18 140.728400000 135.018800000 +19 199.001600000 190.958000000 20 281.415500000 270.066500000 -21 397.969100000 381.940900000 +21 397.969400000 381.941200000 22 562.803800000 540.154200000 -23 795.916600000 763.899400000 -24 1125.591000000 1080.323000000 +23 795.917000000 763.899800000 +24 1125.590500000 1080.322500000 -- !sql_test_DecimalV2_Double_notn_0 -- -1 24.919400000 23.870600000 -2 35.225600000 33.742400000 -3 49.792800000 47.719200000 -4 70.392100000 67.493900000 -5 99.525000000 95.463000000 -6 140.728800000 135.019200000 -7 199.001800000 190.958200000 +1 24.919600000 23.870800000 +2 35.225300000 33.742100000 +3 49.792600000 47.719000000 +4 70.392000000 67.493800000 +5 99.525200000 95.463200000 +6 140.728400000 135.018800000 +7 199.001600000 190.958000000 8 281.415500000 270.066500000 -9 397.969100000 381.940900000 +9 397.969400000 381.941200000 10 562.803800000 540.154200000 -11 795.916600000 763.899400000 -12 1125.591000000 1080.323000000 -13 24.919400000 23.870600000 -14 35.225600000 33.742400000 -15 49.792800000 47.719200000 -16 70.392100000 67.493900000 -17 99.525000000 95.463000000 -18 140.728800000 135.019200000 -19 199.001800000 190.958200000 +11 795.917000000 763.899800000 +12 1125.590500000 1080.322500000 +13 24.919600000 23.870800000 +14 35.225300000 33.742100000 +15 49.792600000 47.719000000 +16 70.392000000 67.493800000 +17 99.525200000 95.463200000 +18 140.728400000 135.018800000 +19 199.001600000 190.958000000 20 281.415500000 270.066500000 -21 397.969100000 381.940900000 +21 397.969400000 381.941200000 22 562.803800000 540.154200000 -23 795.916600000 763.899400000 -24 1125.591000000 1080.323000000 +23 795.917000000 763.899800000 +24 1125.590500000 1080.322500000 -- !sql_test_DecimalV2_Double_1 -- \N \N \N \N -1 12.792738000 46.519832189168575 0.272600000 -2 25.573334400 46.49946062567422 0.370400000 -3 50.550220800 47.02546296296297 0.026400000 -4 99.905301300 47.57642674763646 0.835300000 -5 198.010314000 48.002954209748886 0.006000000 -6 393.602695200 48.29550231189575 0.843600000 -7 784.170564000 48.48077975036053 1.933600000 -8 1564.692304500 48.593003788880075 3.365000000 -9 3125.138365500 48.65861419248575 5.278200000 +1 12.792842880 46.52021357742181 0.272800000 +2 25.573111920 46.49905609492988 0.370100000 +3 50.550013440 47.0252700617284 0.026200000 +4 99.905156390 47.57635773928645 0.835200000 +5 198.010720200 48.00305268340719 0.006200000 +6 393.601553280 48.29536219700154 0.843200000 +7 784.169759640 48.48073002138347 1.933400000 +8 1564.692304500 48.59300378888008 3.365000000 +9 3125.140769730 48.65865162650829 5.278500000 10 6245.389379200 48.69657742300085 7.888600000 -11 12485.235208800 48.718064040578184 11.495200000 -12 24964.328738000 48.730096315277905 16.525000000 -13 12.792738000 46.519832189168575 0.272600000 -14 25.573334400 46.49946062567422 0.370400000 -15 50.550220800 47.02546296296297 0.026400000 -16 99.905301300 47.57642674763646 0.835300000 -17 198.010314000 48.002954209748886 0.006000000 -18 393.602695200 48.29550231189575 0.843600000 -19 784.170564000 48.48077975036053 1.933600000 -20 1564.692304500 48.593003788880075 3.365000000 -21 3125.138365500 48.65861419248575 5.278200000 +11 12485.241612240 48.7180890271479 11.495600000 +12 24964.317421000 48.73007422461783 16.524500000 +13 12.792842880 46.52021357742181 0.272800000 +14 25.573111920 46.49905609492988 0.370100000 +15 50.550013440 47.0252700617284 0.026200000 +16 99.905156390 47.57635773928645 0.835200000 +17 198.010720200 48.00305268340719 0.006200000 +18 393.601553280 48.29536219700154 0.843200000 +19 784.169759640 48.48073002138347 1.933400000 +20 1564.692304500 48.59300378888008 3.365000000 +21 3125.140769730 48.65865162650829 5.278500000 22 6245.389379200 48.69657742300085 7.888600000 -23 12485.235208800 48.718064040578184 11.495200000 -24 24964.328738000 48.730096315277905 16.525000000 +23 12485.241612240 48.7180890271479 11.495600000 +24 24964.317421000 48.73007422461783 16.524500000 -- !sql_test_DecimalV2_Double_notn_1 -- -1 12.792738000 46.519832189168575 0.272600000 -2 25.573334400 46.49946062567422 0.370400000 -3 50.550220800 47.02546296296297 0.026400000 -4 99.905301300 47.57642674763646 0.835300000 -5 198.010314000 48.002954209748886 0.006000000 -6 393.602695200 48.29550231189575 0.843600000 -7 784.170564000 48.48077975036053 1.933600000 -8 1564.692304500 48.593003788880075 3.365000000 -9 3125.138365500 48.65861419248575 5.278200000 +1 12.792842880 46.52021357742181 0.272800000 +2 25.573111920 46.49905609492988 0.370100000 +3 50.550013440 47.0252700617284 0.026200000 +4 99.905156390 47.57635773928645 0.835200000 +5 198.010720200 48.00305268340719 0.006200000 +6 393.601553280 48.29536219700154 0.843200000 +7 784.169759640 48.48073002138347 1.933400000 +8 1564.692304500 48.59300378888008 3.365000000 +9 3125.140769730 48.65865162650829 5.278500000 10 6245.389379200 48.69657742300085 7.888600000 -11 12485.235208800 48.718064040578184 11.495200000 -12 24964.328738000 48.730096315277905 16.525000000 -13 12.792738000 46.519832189168575 0.272600000 -14 25.573334400 46.49946062567422 0.370400000 -15 50.550220800 47.02546296296297 0.026400000 -16 99.905301300 47.57642674763646 0.835300000 -17 198.010314000 48.002954209748886 0.006000000 -18 393.602695200 48.29550231189575 0.843600000 -19 784.170564000 48.48077975036053 1.933600000 -20 1564.692304500 48.593003788880075 3.365000000 -21 3125.138365500 48.65861419248575 5.278200000 +11 12485.241612240 48.7180890271479 11.495600000 +12 24964.317421000 48.73007422461783 16.524500000 +13 12.792842880 46.52021357742181 0.272800000 +14 25.573111920 46.49905609492988 0.370100000 +15 50.550013440 47.0252700617284 0.026200000 +16 99.905156390 47.57635773928645 0.835200000 +17 198.010720200 48.00305268340719 0.006200000 +18 393.601553280 48.29536219700154 0.843200000 +19 784.169759640 48.48073002138347 1.933400000 +20 1564.692304500 48.59300378888008 3.365000000 +21 3125.140769730 48.65865162650829 5.278500000 22 6245.389379200 48.69657742300085 7.888600000 -23 12485.235208800 48.718064040578184 11.495200000 -24 24964.328738000 48.730096315277905 16.525000000 +23 12485.241612240 48.7180890271479 11.495600000 +24 24964.317421000 48.73007422461783 16.524500000 -- !sql_test_DecimalV2_Double_2 -- \N \N @@ -9276,109 +9276,109 @@ -- !sql_test_DecimalV2_DecimalV2_0 -- \N \N \N -1 48.790000000 0E-9 -2 68.968000000 0E-9 -3 97.512000000 0E-9 -4 137.886000000 0E-9 -5 194.988000000 0E-9 -6 275.748000000 0E-9 -7 389.960000000 0E-9 +1 48.790400000 0E-9 +2 68.967400000 0E-9 +3 97.511600000 0E-9 +4 137.885800000 0E-9 +5 194.988400000 0E-9 +6 275.747200000 0E-9 +7 389.959600000 0E-9 8 551.482000000 0E-9 -9 779.910000000 0E-9 +9 779.910600000 0E-9 10 1102.958000000 0E-9 -11 1559.816000000 0E-9 -12 2205.914000000 0E-9 -13 48.790000000 0E-9 -14 68.968000000 0E-9 -15 97.512000000 0E-9 -16 137.886000000 0E-9 -17 194.988000000 0E-9 -18 275.748000000 0E-9 -19 389.960000000 0E-9 +11 1559.816800000 0E-9 +12 2205.913000000 0E-9 +13 48.790400000 0E-9 +14 68.967400000 0E-9 +15 97.511600000 0E-9 +16 137.885800000 0E-9 +17 194.988400000 0E-9 +18 275.747200000 0E-9 +19 389.959600000 0E-9 20 551.482000000 0E-9 -21 779.910000000 0E-9 +21 779.910600000 0E-9 22 1102.958000000 0E-9 -23 1559.816000000 0E-9 -24 2205.914000000 0E-9 +23 1559.816800000 0E-9 +24 2205.913000000 0E-9 -- !sql_test_DecimalV2_DecimalV2_notn_0 -- -1 48.790000000 0E-9 -2 68.968000000 0E-9 -3 97.512000000 0E-9 -4 137.886000000 0E-9 -5 194.988000000 0E-9 -6 275.748000000 0E-9 -7 389.960000000 0E-9 +1 48.790400000 0E-9 +2 68.967400000 0E-9 +3 97.511600000 0E-9 +4 137.885800000 0E-9 +5 194.988400000 0E-9 +6 275.747200000 0E-9 +7 389.959600000 0E-9 8 551.482000000 0E-9 -9 779.910000000 0E-9 +9 779.910600000 0E-9 10 1102.958000000 0E-9 -11 1559.816000000 0E-9 -12 2205.914000000 0E-9 -13 48.790000000 0E-9 -14 68.968000000 0E-9 -15 97.512000000 0E-9 -16 137.886000000 0E-9 -17 194.988000000 0E-9 -18 275.748000000 0E-9 -19 389.960000000 0E-9 +11 1559.816800000 0E-9 +12 2205.913000000 0E-9 +13 48.790400000 0E-9 +14 68.967400000 0E-9 +15 97.511600000 0E-9 +16 137.885800000 0E-9 +17 194.988400000 0E-9 +18 275.747200000 0E-9 +19 389.959600000 0E-9 20 551.482000000 0E-9 -21 779.910000000 0E-9 +21 779.910600000 0E-9 22 1102.958000000 0E-9 -23 1559.816000000 0E-9 -24 2205.914000000 0E-9 +23 1559.816800000 0E-9 +24 2205.913000000 0E-9 -- !sql_test_DecimalV2_DecimalV2_1 -- \N \N \N \N -1 595.116025000 1.000000000 0E-9 -2 1189.146256000 1.000000000 0E-9 -3 2377.147536000 1.000000000 0E-9 -4 4753.137249000 1.000000000 0E-9 -5 9505.080036000 1.000000000 0E-9 -6 19009.239876000 1.000000000 0E-9 -7 38017.200400000 1.000000000 0E-9 +1 595.125783040 1.000000000 0E-9 +2 1189.125565690 1.000000000 0E-9 +3 2377.128033640 1.000000000 0E-9 +4 4753.123460410 1.000000000 0E-9 +5 9505.119033640 1.000000000 0E-9 +6 19009.129576960 1.000000000 0E-9 +7 38017.122408040 1.000000000 0E-9 8 76033.099081000 1.000000000 0E-9 -9 152064.902025000 1.000000000 0E-9 +9 152065.135998090 1.000000000 0E-9 10 304129.087441000 1.000000000 0E-9 -11 608256.488464000 1.000000000 0E-9 -12 1216514.143849000 1.000000000 0E-9 -13 595.116025000 1.000000000 0E-9 -14 1189.146256000 1.000000000 0E-9 -15 2377.147536000 1.000000000 0E-9 -16 4753.137249000 1.000000000 0E-9 -17 9505.080036000 1.000000000 0E-9 -18 19009.239876000 1.000000000 0E-9 -19 38017.200400000 1.000000000 0E-9 +11 608257.112390560 1.000000000 0E-9 +12 1216513.040892250 1.000000000 0E-9 +13 595.125783040 1.000000000 0E-9 +14 1189.125565690 1.000000000 0E-9 +15 2377.128033640 1.000000000 0E-9 +16 4753.123460410 1.000000000 0E-9 +17 9505.119033640 1.000000000 0E-9 +18 19009.129576960 1.000000000 0E-9 +19 38017.122408040 1.000000000 0E-9 20 76033.099081000 1.000000000 0E-9 -21 152064.902025000 1.000000000 0E-9 +21 152065.135998090 1.000000000 0E-9 22 304129.087441000 1.000000000 0E-9 -23 608256.488464000 1.000000000 0E-9 -24 1216514.143849000 1.000000000 0E-9 +23 608257.112390560 1.000000000 0E-9 +24 1216513.040892250 1.000000000 0E-9 -- !sql_test_DecimalV2_DecimalV2_notn_1 -- -1 595.116025000 1.000000000 0E-9 -2 1189.146256000 1.000000000 0E-9 -3 2377.147536000 1.000000000 0E-9 -4 4753.137249000 1.000000000 0E-9 -5 9505.080036000 1.000000000 0E-9 -6 19009.239876000 1.000000000 0E-9 -7 38017.200400000 1.000000000 0E-9 +1 595.125783040 1.000000000 0E-9 +2 1189.125565690 1.000000000 0E-9 +3 2377.128033640 1.000000000 0E-9 +4 4753.123460410 1.000000000 0E-9 +5 9505.119033640 1.000000000 0E-9 +6 19009.129576960 1.000000000 0E-9 +7 38017.122408040 1.000000000 0E-9 8 76033.099081000 1.000000000 0E-9 -9 152064.902025000 1.000000000 0E-9 +9 152065.135998090 1.000000000 0E-9 10 304129.087441000 1.000000000 0E-9 -11 608256.488464000 1.000000000 0E-9 -12 1216514.143849000 1.000000000 0E-9 -13 595.116025000 1.000000000 0E-9 -14 1189.146256000 1.000000000 0E-9 -15 2377.147536000 1.000000000 0E-9 -16 4753.137249000 1.000000000 0E-9 -17 9505.080036000 1.000000000 0E-9 -18 19009.239876000 1.000000000 0E-9 -19 38017.200400000 1.000000000 0E-9 +11 608257.112390560 1.000000000 0E-9 +12 1216513.040892250 1.000000000 0E-9 +13 595.125783040 1.000000000 0E-9 +14 1189.125565690 1.000000000 0E-9 +15 2377.128033640 1.000000000 0E-9 +16 4753.123460410 1.000000000 0E-9 +17 9505.119033640 1.000000000 0E-9 +18 19009.129576960 1.000000000 0E-9 +19 38017.122408040 1.000000000 0E-9 20 76033.099081000 1.000000000 0E-9 -21 152064.902025000 1.000000000 0E-9 +21 152065.135998090 1.000000000 0E-9 22 304129.087441000 1.000000000 0E-9 -23 608256.488464000 1.000000000 0E-9 -24 1216514.143849000 1.000000000 0E-9 +23 608257.112390560 1.000000000 0E-9 +24 1216513.040892250 1.000000000 0E-9 -- !sql_test_DecimalV2_DecimalV2_2 -- \N \N @@ -9647,56 +9647,56 @@ -- !sql_test_DecimalV2_Decimal64V3_0 -- \N \N \N -1 1258.40734 -1209.61734 -2 2379.60745 -2310.63945 -3 3504.99056 -3407.47856 -4 4636.28867 -4498.40267 -5 5775.95078 -5580.96278 -6 6927.44189 -6651.69389 -7 8095.65900 -7705.69900 +1 1258.40754 -1209.61714 +2 2379.60715 -2310.63975 +3 3504.99036 -3407.47876 +4 4636.28857 -4498.40277 +5 5775.95098 -5580.96258 +6 6927.44149 -6651.69429 +7 8095.65880 -7705.69920 8 9287.53111 -8736.04911 -9 10512.85622 -9732.94622 +9 10512.85652 -9732.94592 10 11785.49133 -10682.53333 -11 13125.03144 -11565.21544 -12 14559.19155 -12353.27755 -13 14591.74066 -14542.95066 -14 15712.94077 -15643.97277 -15 16838.32388 -16740.81188 -16 17969.62199 -17831.73599 -17 19109.28410 -18914.29610 -18 20260.77521 -19985.02721 -19 21428.99232 -21039.03232 +11 13125.03184 -11565.21504 +12 14559.19105 -12353.27805 +13 14591.74086 -14542.95046 +14 15712.94047 -15643.97307 +15 16838.32368 -16740.81208 +16 17969.62189 -17831.73609 +17 19109.28430 -18914.29590 +18 20260.77481 -19985.02761 +19 21428.99212 -21039.03252 20 22620.86443 -22069.38243 -21 23846.18954 -23066.27954 +21 23846.18984 -23066.27924 22 25118.82465 -24015.86665 -23 26458.36476 -24898.54876 -24 27892.52487 -25686.61087 +23 26458.36516 -24898.54836 +24 27892.52437 -25686.61137 -- !sql_test_DecimalV2_Decimal64V3_notn_0 -- -1 1258.40734 -1209.61734 -2 2379.60745 -2310.63945 -3 3504.99056 -3407.47856 -4 4636.28867 -4498.40267 -5 5775.95078 -5580.96278 -6 6927.44189 -6651.69389 -7 8095.65900 -7705.69900 +1 1258.40754 -1209.61714 +2 2379.60715 -2310.63975 +3 3504.99036 -3407.47876 +4 4636.28857 -4498.40277 +5 5775.95098 -5580.96258 +6 6927.44149 -6651.69429 +7 8095.65880 -7705.69920 8 9287.53111 -8736.04911 -9 10512.85622 -9732.94622 +9 10512.85652 -9732.94592 10 11785.49133 -10682.53333 -11 13125.03144 -11565.21544 -12 14559.19155 -12353.27755 -13 14591.74066 -14542.95066 -14 15712.94077 -15643.97277 -15 16838.32388 -16740.81188 -16 17969.62199 -17831.73599 -17 19109.28410 -18914.29610 -18 20260.77521 -19985.02721 -19 21428.99232 -21039.03232 +11 13125.03184 -11565.21504 +12 14559.19105 -12353.27805 +13 14591.74086 -14542.95046 +14 15712.94047 -15643.97307 +15 16838.32368 -16740.81208 +16 17969.62189 -17831.73609 +17 19109.28430 -18914.29590 +18 20260.77481 -19985.02761 +19 21428.99212 -21039.03252 20 22620.86443 -22069.38243 -21 23846.18954 -23066.27954 +21 23846.18984 -23066.27924 22 25118.82465 -24015.86665 -23 26458.36476 -24898.54876 -24 27892.52487 -25686.61087 +23 26458.36516 -24898.54836 +24 27892.52437 -25686.61137 -- !sql_test_DecimalV2_Decimal64V3_2 -- \N \N @@ -9806,56 +9806,56 @@ -- !sql_test_DecimalV2_Decimal128V3_0 -- \N \N \N -1 12345702.40734500 -12345653.61734500 -2 23456823.60745600 -23456754.63945600 -3 34567948.99056700 -34567851.47856700 -4 45679080.28867800 -45678942.40267800 -5 56790219.95078900 -56790024.96278900 -6 67901371.44190000 -67901095.69390000 -7 79012539.65901100 -79012149.69901100 +1 12345702.40754500 -12345653.61714500 +2 23456823.60715600 -23456754.63975600 +3 34567948.99036700 -34567851.47876700 +4 45679080.28857800 -45678942.40277800 +5 56790219.95098900 -56790024.96258900 +6 67901371.44150000 -67901095.69430000 +7 79012539.65881100 -79012149.69921100 8 90123731.53112200 -90123180.04912200 -9 101234956.85623300 -101234176.94623300 +9 101234956.85653300 -101234176.94593300 10 112346229.49134400 -112345126.53334400 -11 123457569.03145500 -123456009.21545500 -12 134569003.19156600 -134566797.27756600 -13 145679035.74067700 -145678986.95067700 -14 156790156.94078800 -156790087.97278800 -15 167901282.32389900 -167901184.81189900 -16 179012413.62201000 -179012275.73601000 -17 190123553.28412100 -190123358.29612100 -18 201234704.77523200 -201234429.02723200 -19 212345872.99234300 -212345483.03234300 +11 123457569.03185500 -123456009.21505500 +12 134569003.19106600 -134566797.27806600 +13 145679035.74087700 -145678986.95047700 +14 156790156.94048800 -156790087.97308800 +15 167901282.32369900 -167901184.81209900 +16 179012413.62191000 -179012275.73611000 +17 190123553.28432100 -190123358.29592100 +18 201234704.77483200 -201234429.02763200 +19 212345872.99214300 -212345483.03254300 20 223457064.86445400 -223456513.38245400 -21 234568290.18956500 -234567510.27956500 +21 234568290.18986500 -234567510.27926500 22 245679562.82467600 -245678459.86667600 -23 256790902.36478700 -256789342.54878700 -24 267902336.52489800 -267900130.61089800 +23 256790902.36518700 -256789342.54838700 +24 267902336.52439800 -267900130.61139800 -- !sql_test_DecimalV2_Decimal128V3_notn_0 -- -1 12345702.40734500 -12345653.61734500 -2 23456823.60745600 -23456754.63945600 -3 34567948.99056700 -34567851.47856700 -4 45679080.28867800 -45678942.40267800 -5 56790219.95078900 -56790024.96278900 -6 67901371.44190000 -67901095.69390000 -7 79012539.65901100 -79012149.69901100 +1 12345702.40754500 -12345653.61714500 +2 23456823.60715600 -23456754.63975600 +3 34567948.99036700 -34567851.47876700 +4 45679080.28857800 -45678942.40277800 +5 56790219.95098900 -56790024.96258900 +6 67901371.44150000 -67901095.69430000 +7 79012539.65881100 -79012149.69921100 8 90123731.53112200 -90123180.04912200 -9 101234956.85623300 -101234176.94623300 +9 101234956.85653300 -101234176.94593300 10 112346229.49134400 -112345126.53334400 -11 123457569.03145500 -123456009.21545500 -12 134569003.19156600 -134566797.27756600 -13 145679035.74067700 -145678986.95067700 -14 156790156.94078800 -156790087.97278800 -15 167901282.32389900 -167901184.81189900 -16 179012413.62201000 -179012275.73601000 -17 190123553.28412100 -190123358.29612100 -18 201234704.77523200 -201234429.02723200 -19 212345872.99234300 -212345483.03234300 +11 123457569.03185500 -123456009.21505500 +12 134569003.19106600 -134566797.27806600 +13 145679035.74087700 -145678986.95047700 +14 156790156.94048800 -156790087.97308800 +15 167901282.32369900 -167901184.81209900 +16 179012413.62191000 -179012275.73611000 +17 190123553.28432100 -190123358.29592100 +18 201234704.77483200 -201234429.02763200 +19 212345872.99214300 -212345483.03254300 20 223457064.86445400 -223456513.38245400 -21 234568290.18956500 -234567510.27956500 +21 234568290.18986500 -234567510.27926500 22 245679562.82467600 -245678459.86667600 -23 256790902.36478700 -256789342.54878700 -24 267902336.52489800 -267900130.61089800 +23 256790902.36518700 -256789342.54838700 +24 267902336.52439800 -267900130.61139800 -- !sql_test_DecimalV2_Decimal128V3_2 -- \N \N @@ -9977,18 +9977,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 178.684000000 -129.894000000 -14 252.578000000 -183.610000000 -15 357.115000000 -259.603000000 -16 504.976000000 -367.090000000 -17 714.102000000 -519.114000000 -18 1009.863000000 -734.115000000 -19 1428.141000000 -1038.181000000 +13 178.684200000 -129.893800000 +14 252.577700000 -183.610300000 +15 357.114800000 -259.603200000 +16 504.975900000 -367.090100000 +17 714.102200000 -519.113800000 +18 1009.862600000 -734.115400000 +19 1428.140800000 -1038.181200000 20 2019.681000000 -1468.199000000 -21 2856.249000000 -2076.339000000 +21 2856.249300000 -2076.338700000 22 4039.339000000 -2936.381000000 -23 5712.482000000 -4152.666000000 -24 8078.667000000 -5872.753000000 +23 5712.482400000 -4152.665600000 +24 8078.666500000 -5872.753500000 -- !sql_test_DecimalV2_Char_notn_0 -- 1 \N \N @@ -10003,18 +10003,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 178.684000000 -129.894000000 -14 252.578000000 -183.610000000 -15 357.115000000 -259.603000000 -16 504.976000000 -367.090000000 -17 714.102000000 -519.114000000 -18 1009.863000000 -734.115000000 -19 1428.141000000 -1038.181000000 +13 178.684200000 -129.893800000 +14 252.577700000 -183.610300000 +15 357.114800000 -259.603200000 +16 504.975900000 -367.090100000 +17 714.102200000 -519.113800000 +18 1009.862600000 -734.115400000 +19 1428.140800000 -1038.181200000 20 2019.681000000 -1468.199000000 -21 2856.249000000 -2076.339000000 +21 2856.249300000 -2076.338700000 22 4039.339000000 -2936.381000000 -23 5712.482000000 -4152.666000000 -24 8078.667000000 -5872.753000000 +23 5712.482400000 -4152.665600000 +24 8078.666500000 -5872.753500000 -- !sql_test_DecimalV2_Char_1 -- \N \N \N \N @@ -10030,18 +10030,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3763.880155000 0.1581123735327859 24.395000000 -14 7520.753496000 0.15811530807816815 34.484000000 -15 15034.351404000 0.158114405611641 48.756000000 -16 30061.423119000 0.1581141794313733 68.943000000 -17 60115.580352000 0.15811342052000624 97.494000000 -18 120224.611386000 0.15811437988323246 137.874000000 -19 240441.731780000 0.15811398511629868 194.980000000 -20 480875.759540000 0.15811381125497437 275.741000000 -21 961743.676770000 0.15811375286158097 389.955000000 +13 3763.911012800 0.1581136698014765 24.395200000 +14 7520.688067800 0.1581139325245078 34.483700000 +15 15034.289732200 0.1581137570169835 48.755800000 +16 30061.379515700 0.1581139500909335 68.942900000 +17 60115.703673600 0.1581137448751881 97.494200000 +18 120224.262590400 0.1581139211618495 137.873600000 +19 240441.485147800 0.1581138229314745 194.979800000 +20 480875.759540000 0.1581138112549744 275.741000000 +21 961744.416658200 0.1581138745015801 389.955300000 22 1923481.544940000 0.1581138577809889 551.479000000 -23 3846953.923192000 0.1581137961640312 779.908000000 -24 7693908.174470000 0.15811394108986757 1102.957000000 +23 3846955.896221600 0.1581138772575941 779.908400000 +24 7693904.686615000 0.1581138694125759 1102.956500000 -- !sql_test_DecimalV2_Char_notn_1 -- 1 \N \N \N @@ -10056,18 +10056,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3763.880155000 0.1581123735327859 24.395000000 -14 7520.753496000 0.15811530807816815 34.484000000 -15 15034.351404000 0.158114405611641 48.756000000 -16 30061.423119000 0.1581141794313733 68.943000000 -17 60115.580352000 0.15811342052000624 97.494000000 -18 120224.611386000 0.15811437988323246 137.874000000 -19 240441.731780000 0.15811398511629868 194.980000000 -20 480875.759540000 0.15811381125497437 275.741000000 -21 961743.676770000 0.15811375286158097 389.955000000 +13 3763.911012800 0.1581136698014765 24.395200000 +14 7520.688067800 0.1581139325245078 34.483700000 +15 15034.289732200 0.1581137570169835 48.755800000 +16 30061.379515700 0.1581139500909335 68.942900000 +17 60115.703673600 0.1581137448751881 97.494200000 +18 120224.262590400 0.1581139211618495 137.873600000 +19 240441.485147800 0.1581138229314745 194.979800000 +20 480875.759540000 0.1581138112549744 275.741000000 +21 961744.416658200 0.1581138745015801 389.955300000 22 1923481.544940000 0.1581138577809889 551.479000000 -23 3846953.923192000 0.1581137961640312 779.908000000 -24 7693908.174470000 0.15811394108986757 1102.957000000 +23 3846955.896221600 0.1581138772575941 779.908400000 +24 7693904.686615000 0.1581138694125759 1102.956500000 -- !sql_test_DecimalV2_Char_2 -- \N \N @@ -10189,18 +10189,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2343.516000000 -2294.726000000 -14 3312.566000000 -3243.598000000 -15 4683.497000000 -4585.985000000 -16 6622.631000000 -6484.745000000 -17 9365.224000000 -9170.236000000 -18 13244.011000000 -12968.263000000 -19 18729.565000000 -18339.605000000 +13 2343.516200000 -2294.725800000 +14 3312.565700000 -3243.598300000 +15 4683.496800000 -4585.985200000 +16 6622.630900000 -6484.745100000 +17 9365.224200000 -9170.235800000 +18 13244.010600000 -12968.263400000 +19 18729.564800000 -18339.605200000 20 26487.395000000 -25935.913000000 -21 37458.686000000 -36678.776000000 +21 37458.686300000 -36678.775700000 22 52974.478000000 -51871.520000000 -23 74917.151000000 -73357.335000000 -24 105948.800000000 -103742.886000000 +23 74917.151400000 -73357.334600000 +24 105948.799500000 -103742.886500000 -- !sql_test_DecimalV2_Varchar_notn_0 -- 1 \N \N @@ -10215,18 +10215,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2343.516000000 -2294.726000000 -14 3312.566000000 -3243.598000000 -15 4683.497000000 -4585.985000000 -16 6622.631000000 -6484.745000000 -17 9365.224000000 -9170.236000000 -18 13244.011000000 -12968.263000000 -19 18729.565000000 -18339.605000000 +13 2343.516200000 -2294.725800000 +14 3312.565700000 -3243.598300000 +15 4683.496800000 -4585.985200000 +16 6622.630900000 -6484.745100000 +17 9365.224200000 -9170.235800000 +18 13244.010600000 -12968.263400000 +19 18729.564800000 -18339.605200000 20 26487.395000000 -25935.913000000 -21 37458.686000000 -36678.776000000 +21 37458.686300000 -36678.775700000 22 52974.478000000 -51871.520000000 -23 74917.151000000 -73357.335000000 -24 105948.800000000 -103742.886000000 +23 74917.151400000 -73357.334600000 +24 105948.799500000 -103742.886500000 -- !sql_test_DecimalV2_Varchar_1 -- \N \N \N \N @@ -10242,18 +10242,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 56574.956795000 0.01051907166551465 24.395000000 -14 113041.379688000 0.010519566014517026 34.484000000 -15 225971.432196000 0.010519681682320543 48.756000000 -16 451830.911784000 0.010519725687277147 68.943000000 -17 903548.068620000 0.010519728131915798 97.494000000 -18 1806995.532738000 0.010519804577046614 137.874000000 -19 3613873.383300000 0.01051979313267602 194.980000000 +13 56575.420619200 0.01051915790508559 24.395200000 +14 113040.396263400 0.01051947449758731 34.483700000 +15 225970.505247800 0.01051963852996316 48.755800000 +16 451830.256415200 0.01051971042869297 68.942900000 +17 903549.922166000 0.01051974971217332 97.494200000 +18 1806990.290283200 0.0105197740569933 137.873600000 +19 3613869.676383000 0.01051978234203787 194.979800000 20 7227627.685614000 0.01051978635152135 275.741000000 -21 14455136.997105000 0.01051978283259818 389.955000000 -22 28910183.065521000 0.010519791132132673 551.479000000 -23 57820228.913644000 0.010519786930841223 779.908000000 -24 115640456.457751000 0.010519797146368503 1102.957000000 +21 14455148.117724300 0.01051979092567264 389.955300000 +22 28910183.065521000 0.01051979113213267 551.479000000 +23 57820258.568541200 0.01051979232624013 779.908400000 +24 115640404.034829500 0.01051979237746221 1102.956500000 -- !sql_test_DecimalV2_Varchar_notn_1 -- 1 \N \N \N @@ -10268,18 +10268,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 56574.956795000 0.01051907166551465 24.395000000 -14 113041.379688000 0.010519566014517026 34.484000000 -15 225971.432196000 0.010519681682320543 48.756000000 -16 451830.911784000 0.010519725687277147 68.943000000 -17 903548.068620000 0.010519728131915798 97.494000000 -18 1806995.532738000 0.010519804577046614 137.874000000 -19 3613873.383300000 0.01051979313267602 194.980000000 +13 56575.420619200 0.01051915790508559 24.395200000 +14 113040.396263400 0.01051947449758731 34.483700000 +15 225970.505247800 0.01051963852996316 48.755800000 +16 451830.256415200 0.01051971042869297 68.942900000 +17 903549.922166000 0.01051974971217332 97.494200000 +18 1806990.290283200 0.0105197740569933 137.873600000 +19 3613869.676383000 0.01051978234203787 194.979800000 20 7227627.685614000 0.01051978635152135 275.741000000 -21 14455136.997105000 0.01051978283259818 389.955000000 -22 28910183.065521000 0.010519791132132673 551.479000000 -23 57820228.913644000 0.010519786930841223 779.908000000 -24 115640456.457751000 0.010519797146368503 1102.957000000 +21 14455148.117724300 0.01051979092567264 389.955300000 +22 28910183.065521000 0.01051979113213267 551.479000000 +23 57820258.568541200 0.01051979232624013 779.908400000 +24 115640404.034829500 0.01051979237746221 1102.956500000 -- !sql_test_DecimalV2_Varchar_2 -- \N \N @@ -10401,18 +10401,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 10628.412000000 -10579.622000000 -14 15023.277000000 -14954.309000000 -15 21240.769000000 -21143.257000000 -16 30035.198000000 -29897.312000000 -17 42473.506000000 -42278.518000000 -18 60064.716000000 -59788.968000000 -19 84942.997000000 -84553.037000000 +13 10628.412200000 -10579.621800000 +14 15023.276700000 -14954.309300000 +15 21240.768800000 -21143.257200000 +16 30035.197900000 -29897.312100000 +17 42473.506200000 -42278.517800000 +18 60064.715600000 -59788.968400000 +19 84942.996800000 -84553.037200000 20 120126.592000000 -119575.110000000 -21 169883.986000000 -169104.076000000 +21 169883.986300000 -169104.075700000 22 240251.764000000 -239148.806000000 -23 339766.967000000 -338207.151000000 -24 480502.818000000 -478296.904000000 +23 339766.967400000 -338207.150600000 +24 480502.817500000 -478296.904500000 -- !sql_test_DecimalV2_String_notn_0 -- 1 \N \N @@ -10427,18 +10427,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 10628.412000000 -10579.622000000 -14 15023.277000000 -14954.309000000 -15 21240.769000000 -21143.257000000 -16 30035.198000000 -29897.312000000 -17 42473.506000000 -42278.518000000 -18 60064.716000000 -59788.968000000 -19 84942.997000000 -84553.037000000 +13 10628.412200000 -10579.621800000 +14 15023.276700000 -14954.309300000 +15 21240.768800000 -21143.257200000 +16 30035.197900000 -29897.312100000 +17 42473.506200000 -42278.517800000 +18 60064.715600000 -59788.968400000 +19 84942.996800000 -84553.037200000 20 120126.592000000 -119575.110000000 -21 169883.986000000 -169104.076000000 +21 169883.986300000 -169104.075700000 22 240251.764000000 -239148.806000000 -23 339766.967000000 -338207.151000000 -24 480502.818000000 -478296.904000000 +23 339766.967400000 -338207.150600000 +24 480502.817500000 -478296.904500000 -- !sql_test_DecimalV2_String_1 -- \N \N \N \N @@ -10454,18 +10454,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 258684.994715000 0.002300543275251256 24.395000000 -14 516873.537812000 0.0023006522273007575 34.484000000 -15 1033237.785828000 0.00230067809037301 48.756000000 -16 2065963.518465000 0.0023006878904287503 68.943000000 -17 4131406.913928000 0.0023006884177774914 97.494000000 -18 8262353.413908000 0.002300705249911217 137.874000000 -19 16524168.354660000 0.0023007027999251 194.980000000 -20 33047793.505591000 0.0023007012273947055 275.741000000 -21 66095044.858605000 0.0023007004889747415 389.955000000 -22 132189673.471515000 0.0023007023124732625 551.479000000 -23 264378719.210572000 0.002300701396391654 779.908000000 -24 528757432.488977000 0.0023007036291151535 1102.957000000 +13 258687.115518400 0.002300562136028261 24.395200000 +14 516869.041174100 0.002300632212346918 34.483700000 +15 1033233.547425400 0.002300668652855206 48.755800000 +16 2065960.521839500 0.00230068455334175 68.942900000 +17 4131415.389130400 0.002300693137428789 97.494200000 +18 8262329.443171200 0.00230069857510596 137.873600000 +19 16524151.405056600 0.002300700439987876 194.979800000 +20 33047793.505591000 0.002300701227394706 275.741000000 +21 66095095.706814300 0.002300702258948577 389.955300000 +22 132189673.471515000 0.002300702312473262 551.479000000 +23 264378854.805395600 0.002300702576377702 779.908400000 +24 528757192.789046500 0.002300702586144471 1102.956500000 -- !sql_test_DecimalV2_String_notn_1 -- 1 \N \N \N @@ -10480,18 +10480,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 258684.994715000 0.002300543275251256 24.395000000 -14 516873.537812000 0.0023006522273007575 34.484000000 -15 1033237.785828000 0.00230067809037301 48.756000000 -16 2065963.518465000 0.0023006878904287503 68.943000000 -17 4131406.913928000 0.0023006884177774914 97.494000000 -18 8262353.413908000 0.002300705249911217 137.874000000 -19 16524168.354660000 0.0023007027999251 194.980000000 -20 33047793.505591000 0.0023007012273947055 275.741000000 -21 66095044.858605000 0.0023007004889747415 389.955000000 -22 132189673.471515000 0.0023007023124732625 551.479000000 -23 264378719.210572000 0.002300701396391654 779.908000000 -24 528757432.488977000 0.0023007036291151535 1102.957000000 +13 258687.115518400 0.002300562136028261 24.395200000 +14 516869.041174100 0.002300632212346918 34.483700000 +15 1033233.547425400 0.002300668652855206 48.755800000 +16 2065960.521839500 0.00230068455334175 68.942900000 +17 4131415.389130400 0.002300693137428789 97.494200000 +18 8262329.443171200 0.00230069857510596 137.873600000 +19 16524151.405056600 0.002300700439987876 194.979800000 +20 33047793.505591000 0.002300701227394706 275.741000000 +21 66095095.706814300 0.002300702258948577 389.955300000 +22 132189673.471515000 0.002300702312473262 551.479000000 +23 264378854.805395600 0.002300702576377702 779.908400000 +24 528757192.789046500 0.002300702586144471 1102.956500000 -- !sql_test_DecimalV2_String_2 -- \N \N @@ -11449,56 +11449,56 @@ -- !sql_test_DecimalV2_Boolean_0 -- \N \N \N -1 24.395000000 24.395000000 -2 34.484000000 34.484000000 -3 48.756000000 48.756000000 -4 68.943000000 68.943000000 -5 97.494000000 97.494000000 -6 137.874000000 137.874000000 -7 194.980000000 194.980000000 +1 24.395200000 24.395200000 +2 34.483700000 34.483700000 +3 48.755800000 48.755800000 +4 68.942900000 68.942900000 +5 97.494200000 97.494200000 +6 137.873600000 137.873600000 +7 194.979800000 194.979800000 8 276.741000000 274.741000000 -9 390.955000000 388.955000000 +9 390.955300000 388.955300000 10 552.479000000 550.479000000 -11 780.908000000 778.908000000 -12 1103.957000000 1101.957000000 -13 24.395000000 24.395000000 -14 34.484000000 34.484000000 -15 48.756000000 48.756000000 -16 68.943000000 68.943000000 -17 97.494000000 97.494000000 -18 137.874000000 137.874000000 -19 194.980000000 194.980000000 +11 780.908400000 778.908400000 +12 1103.956500000 1101.956500000 +13 24.395200000 24.395200000 +14 34.483700000 34.483700000 +15 48.755800000 48.755800000 +16 68.942900000 68.942900000 +17 97.494200000 97.494200000 +18 137.873600000 137.873600000 +19 194.979800000 194.979800000 20 276.741000000 274.741000000 -21 390.955000000 388.955000000 +21 390.955300000 388.955300000 22 552.479000000 550.479000000 -23 780.908000000 778.908000000 -24 1103.957000000 1101.957000000 +23 780.908400000 778.908400000 +24 1103.956500000 1101.956500000 -- !sql_test_DecimalV2_Boolean_notn_0 -- -1 24.395000000 24.395000000 -2 34.484000000 34.484000000 -3 48.756000000 48.756000000 -4 68.943000000 68.943000000 -5 97.494000000 97.494000000 -6 137.874000000 137.874000000 -7 194.980000000 194.980000000 +1 24.395200000 24.395200000 +2 34.483700000 34.483700000 +3 48.755800000 48.755800000 +4 68.942900000 68.942900000 +5 97.494200000 97.494200000 +6 137.873600000 137.873600000 +7 194.979800000 194.979800000 8 276.741000000 274.741000000 -9 390.955000000 388.955000000 +9 390.955300000 388.955300000 10 552.479000000 550.479000000 -11 780.908000000 778.908000000 -12 1103.957000000 1101.957000000 -13 24.395000000 24.395000000 -14 34.484000000 34.484000000 -15 48.756000000 48.756000000 -16 68.943000000 68.943000000 -17 97.494000000 97.494000000 -18 137.874000000 137.874000000 -19 194.980000000 194.980000000 +11 780.908400000 778.908400000 +12 1103.956500000 1101.956500000 +13 24.395200000 24.395200000 +14 34.483700000 34.483700000 +15 48.755800000 48.755800000 +16 68.942900000 68.942900000 +17 97.494200000 97.494200000 +18 137.873600000 137.873600000 +19 194.979800000 194.979800000 20 276.741000000 274.741000000 -21 390.955000000 388.955000000 +21 390.955300000 388.955300000 22 552.479000000 550.479000000 -23 780.908000000 778.908000000 -24 1103.957000000 1101.957000000 +23 780.908400000 778.908400000 +24 1103.956500000 1101.956500000 -- !sql_test_DecimalV2_Boolean_1 -- \N \N \N \N @@ -11510,10 +11510,10 @@ 6 0E-9 \N \N 7 0E-9 \N \N 8 275.741000000 275.741000000 0.741000000 -9 389.955000000 389.955000000 0.955000000 +9 389.955300000 389.955300000 0.955300000 10 551.479000000 551.479000000 0.479000000 -11 779.908000000 779.908000000 0.908000000 -12 1102.957000000 1102.957000000 0.957000000 +11 779.908400000 779.908400000 0.908400000 +12 1102.956500000 1102.956500000 0.956500000 13 0E-9 \N \N 14 0E-9 \N \N 15 0E-9 \N \N @@ -11522,10 +11522,10 @@ 18 0E-9 \N \N 19 0E-9 \N \N 20 275.741000000 275.741000000 0.741000000 -21 389.955000000 389.955000000 0.955000000 +21 389.955300000 389.955300000 0.955300000 22 551.479000000 551.479000000 0.479000000 -23 779.908000000 779.908000000 0.908000000 -24 1102.957000000 1102.957000000 0.957000000 +23 779.908400000 779.908400000 0.908400000 +24 1102.956500000 1102.956500000 0.956500000 -- !sql_test_DecimalV2_Boolean_notn_1 -- 1 0E-9 \N \N @@ -11536,10 +11536,10 @@ 6 0E-9 \N \N 7 0E-9 \N \N 8 275.741000000 275.741000000 0.741000000 -9 389.955000000 389.955000000 0.955000000 +9 389.955300000 389.955300000 0.955300000 10 551.479000000 551.479000000 0.479000000 -11 779.908000000 779.908000000 0.908000000 -12 1102.957000000 1102.957000000 0.957000000 +11 779.908400000 779.908400000 0.908400000 +12 1102.956500000 1102.956500000 0.956500000 13 0E-9 \N \N 14 0E-9 \N \N 15 0E-9 \N \N @@ -11548,10 +11548,10 @@ 18 0E-9 \N \N 19 0E-9 \N \N 20 275.741000000 275.741000000 0.741000000 -21 389.955000000 389.955000000 0.955000000 +21 389.955300000 389.955300000 0.955300000 22 551.479000000 551.479000000 0.479000000 -23 779.908000000 779.908000000 0.908000000 -24 1102.957000000 1102.957000000 0.957000000 +23 779.908400000 779.908400000 0.908400000 +24 1102.956500000 1102.956500000 0.956500000 -- !sql_test_DecimalV2_Boolean_2 -- \N \N @@ -12456,55 +12456,55 @@ -- !sql_test_Decimal32V3_Float_0 -- \N \N \N -1 12.112000001490117 11.911999998509884 -2 23.323000002980233 22.92299999701977 +1 12.11200000149012 11.91199999850988 +2 23.32300000298023 22.92299999701977 3 34.53400001192093 33.93399998807907 -4 45.74500000596046 44.944999994039534 +4 45.74500000596046 44.94499999403953 5 56.956 55.956 6 68.16700002384185 66.96699997615814 7 79.37799998807907 77.97800001192093 8 90.58900001192093 88.98899998807907 -9 101.79999997615815 100.00000002384186 +9 101.7999999761581 100.0000000238419 10 113.011 111.011 -11 124.22200002384186 122.02199997615814 -12 135.43300004768372 133.0329999523163 -13 145.4440000014901 145.24399999850988 -14 156.65500000298024 156.25499999701978 -15 167.86600001192093 167.26599998807907 -16 179.07700000596046 178.27699999403953 +11 124.2220000238419 122.0219999761581 +12 135.4330000476837 133.0329999523163 +13 145.4440000014901 145.2439999985099 +14 156.6550000029802 156.2549999970198 +15 167.8660000119209 167.2659999880791 +16 179.0770000059605 178.2769999940395 17 190.288 189.288 -18 201.49900002384186 200.29899997615814 -19 212.70999998807906 211.31000001192092 -20 223.92100001192094 222.32099998807908 -21 235.13199997615814 233.33200002384186 +18 201.4990000238419 200.2989999761581 +19 212.7099999880791 211.3100000119209 +20 223.9210000119209 222.3209999880791 +21 235.1319999761581 233.3320000238419 22 246.343 244.343 -23 257.55400002384187 255.35399997615815 +23 257.5540000238419 255.3539999761581 24 268.7650000476837 266.3649999523163 -- !sql_test_Decimal32V3_Float_notn_0 -- -1 12.112000001490117 11.911999998509884 -2 23.323000002980233 22.92299999701977 +1 12.11200000149012 11.91199999850988 +2 23.32300000298023 22.92299999701977 3 34.53400001192093 33.93399998807907 -4 45.74500000596046 44.944999994039534 +4 45.74500000596046 44.94499999403953 5 56.956 55.956 6 68.16700002384185 66.96699997615814 7 79.37799998807907 77.97800001192093 8 90.58900001192093 88.98899998807907 -9 101.79999997615815 100.00000002384186 +9 101.7999999761581 100.0000000238419 10 113.011 111.011 -11 124.22200002384186 122.02199997615814 -12 135.43300004768372 133.0329999523163 -13 145.4440000014901 145.24399999850988 -14 156.65500000298024 156.25499999701978 -15 167.86600001192093 167.26599998807907 -16 179.07700000596046 178.27699999403953 +11 124.2220000238419 122.0219999761581 +12 135.4330000476837 133.0329999523163 +13 145.4440000014901 145.2439999985099 +14 156.6550000029802 156.2549999970198 +15 167.8660000119209 167.2659999880791 +16 179.0770000059605 178.2769999940395 17 190.288 189.288 -18 201.49900002384186 200.29899997615814 -19 212.70999998807906 211.31000001192092 -20 223.92100001192094 222.32099998807908 -21 235.13199997615814 233.33200002384186 +18 201.4990000238419 200.2989999761581 +19 212.7099999880791 211.3100000119209 +20 223.9210000119209 222.3209999880791 +21 235.1319999761581 233.3320000238419 22 246.343 244.343 -23 257.55400002384187 255.35399997615815 +23 257.5540000238419 255.3539999761581 24 268.7650000476837 266.3649999523163 -- !sql_test_Decimal32V3_Float_2 -- @@ -12616,108 +12616,108 @@ -- !sql_test_Decimal32V3_Double_0 -- \N \N \N 1 12.5364 11.4876 -2 23.864600000000003 22.3814 +2 23.8646 22.3814 3 35.2708 33.1972 4 46.7941 43.8959 -5 58.487 54.425000000000004 +5 58.487 54.425 6 70.42179999999999 64.7122 7 82.6998 74.6562 -8 95.4635 84.1145 -9 108.9141 92.8859 -10 123.33579999999999 100.6862 -11 139.13060000000002 107.1134 -12 156.86700000000002 111.599 -13 145.8684 144.81959999999998 -14 157.19660000000002 155.7134 +8 95.4635 84.11450000000001 +9 108.9141 92.88590000000001 +10 123.3358 100.6862 +11 139.1306 107.1134 +12 156.867 111.599 +13 145.8684 144.8196 +14 157.1966 155.7134 15 168.6028 166.5292 -16 180.12609999999998 177.2279 -17 191.81900000000002 187.757 +16 180.1261 177.2279 +17 191.819 187.757 18 203.7538 198.0442 -19 216.0318 207.98819999999998 -20 228.7955 217.44650000000001 +19 216.0318 207.9882 +20 228.7955 217.4465 21 242.2461 226.2179 -22 256.6678 234.01819999999998 +22 256.6678 234.0182 23 272.4626 240.4454 -24 290.199 244.93099999999998 +24 290.199 244.931 -- !sql_test_Decimal32V3_Double_notn_0 -- 1 12.5364 11.4876 -2 23.864600000000003 22.3814 +2 23.8646 22.3814 3 35.2708 33.1972 4 46.7941 43.8959 -5 58.487 54.425000000000004 +5 58.487 54.425 6 70.42179999999999 64.7122 7 82.6998 74.6562 -8 95.4635 84.1145 -9 108.9141 92.8859 -10 123.33579999999999 100.6862 -11 139.13060000000002 107.1134 -12 156.86700000000002 111.599 -13 145.8684 144.81959999999998 -14 157.19660000000002 155.7134 +8 95.4635 84.11450000000001 +9 108.9141 92.88590000000001 +10 123.3358 100.6862 +11 139.1306 107.1134 +12 156.867 111.599 +13 145.8684 144.8196 +14 157.1966 155.7134 15 168.6028 166.5292 -16 180.12609999999998 177.2279 -17 191.81900000000002 187.757 +16 180.1261 177.2279 +17 191.819 187.757 18 203.7538 198.0442 -19 216.0318 207.98819999999998 -20 228.7955 217.44650000000001 +19 216.0318 207.9882 +20 228.7955 217.4465 21 242.2461 226.2179 -22 256.6678 234.01819999999998 +22 256.6678 234.0182 23 272.4626 240.4454 -24 290.199 244.93099999999998 +24 290.199 244.931 -- !sql_test_Decimal32V3_Double_1 -- \N \N \N \N -1 6.2990928 22.90617848970252 0.47520000000000095 -2 17.1480168 31.17988133764833 0.13339999999999996 -3 35.4938112 33.01890432098766 0.019600000000003615 -4 65.7094395 31.291836312193773 0.42289999999999717 -5 114.66213600000002 27.797144263909402 1.6189999999999993 -6 192.89027159999998 23.667857643267478 1.906599999999993 -7 316.4271804 19.562882291511265 2.2638000000000007 -8 509.5076805 15.823244338708257 4.6715 +1 6.2990928 22.90617848970252 0.475200000000001 +2 17.1480168 31.17988133764833 0.1334 +3 35.4938112 33.01890432098766 0.01960000000000361 +4 65.7094395 31.29183631219377 0.4228999999999972 +5 114.662136 27.7971442639094 1.618999999999999 +6 192.8902716 23.66785764326748 1.906599999999993 +7 316.4271804 19.56288229151127 2.263800000000001 +8 509.5076805 15.82324433870826 4.6715 9 808.6226899999999 12.59030957936637 4.730800000000016 -10 1268.5021728 9.89077069793727 10.087799999999998 -11 1971.0108492000002 7.690991092287895 11.061799999999991 -12 3038.229722 5.930591146063445 21.063000000000002 +10 1268.5021728 9.89077069793727 10.0878 +11 1971.0108492 7.690991092287895 11.06179999999999 +12 3038.229722 5.930591146063445 21.063 13 76.2183936 277.162471395881 0.08520000000000039 -14 116.02702800000002 210.96952535059333 0.7190000000000047 -15 173.73242879999998 161.6184413580247 0.6412000000000115 -16 258.9208407 123.3020495479953 0.43769999999998577 -17 385.45942800000006 93.44559330379124 0.904999999999998 -18 573.5264652 70.37235533137172 1.0630000000000006 -19 852.6618179999999 52.71520214829181 2.8764000000000003 -20 1266.1001145 39.31994008282668 1.8155000000000054 -21 1877.1586711999998 29.22748655494691 1.823100000000025 -22 2778.4604064 21.6642236507488 7.5221999999999944 -23 4105.4695044 16.01976437664755 0.31639999999998736 -24 6056.06621 11.82137492268269 18.590999999999994 +14 116.027028 210.9695253505933 0.7190000000000047 +15 173.7324288 161.6184413580247 0.6412000000000115 +16 258.9208407 123.3020495479953 0.4376999999999858 +17 385.4594280000001 93.44559330379124 0.904999999999998 +18 573.5264652 70.37235533137172 1.063000000000001 +19 852.6618179999999 52.71520214829181 2.8764 +20 1266.1001145 39.31994008282668 1.815500000000005 +21 1877.1586712 29.22748655494691 1.823100000000025 +22 2778.4604064 21.6642236507488 7.522199999999994 +23 4105.4695044 16.01976437664755 0.3163999999999874 +24 6056.06621 11.82137492268269 18.59099999999999 -- !sql_test_Decimal32V3_Double_notn_1 -- -1 6.2990928 22.90617848970252 0.47520000000000095 -2 17.1480168 31.17988133764833 0.13339999999999996 -3 35.4938112 33.01890432098766 0.019600000000003615 -4 65.7094395 31.291836312193773 0.42289999999999717 -5 114.66213600000002 27.797144263909402 1.6189999999999993 -6 192.89027159999998 23.667857643267478 1.906599999999993 -7 316.4271804 19.562882291511265 2.2638000000000007 -8 509.5076805 15.823244338708257 4.6715 +1 6.2990928 22.90617848970252 0.475200000000001 +2 17.1480168 31.17988133764833 0.1334 +3 35.4938112 33.01890432098766 0.01960000000000361 +4 65.7094395 31.29183631219377 0.4228999999999972 +5 114.662136 27.7971442639094 1.618999999999999 +6 192.8902716 23.66785764326748 1.906599999999993 +7 316.4271804 19.56288229151127 2.263800000000001 +8 509.5076805 15.82324433870826 4.6715 9 808.6226899999999 12.59030957936637 4.730800000000016 -10 1268.5021728 9.89077069793727 10.087799999999998 -11 1971.0108492000002 7.690991092287895 11.061799999999991 -12 3038.229722 5.930591146063445 21.063000000000002 +10 1268.5021728 9.89077069793727 10.0878 +11 1971.0108492 7.690991092287895 11.06179999999999 +12 3038.229722 5.930591146063445 21.063 13 76.2183936 277.162471395881 0.08520000000000039 -14 116.02702800000002 210.96952535059333 0.7190000000000047 -15 173.73242879999998 161.6184413580247 0.6412000000000115 -16 258.9208407 123.3020495479953 0.43769999999998577 -17 385.45942800000006 93.44559330379124 0.904999999999998 -18 573.5264652 70.37235533137172 1.0630000000000006 -19 852.6618179999999 52.71520214829181 2.8764000000000003 -20 1266.1001145 39.31994008282668 1.8155000000000054 -21 1877.1586711999998 29.22748655494691 1.823100000000025 -22 2778.4604064 21.6642236507488 7.5221999999999944 -23 4105.4695044 16.01976437664755 0.31639999999998736 -24 6056.06621 11.82137492268269 18.590999999999994 +14 116.027028 210.9695253505933 0.7190000000000047 +15 173.7324288 161.6184413580247 0.6412000000000115 +16 258.9208407 123.3020495479953 0.4376999999999858 +17 385.4594280000001 93.44559330379124 0.904999999999998 +18 573.5264652 70.37235533137172 1.063000000000001 +19 852.6618179999999 52.71520214829181 2.8764 +20 1266.1001145 39.31994008282668 1.815500000000005 +21 1877.1586712 29.22748655494691 1.823100000000025 +22 2778.4604064 21.6642236507488 7.522199999999994 +23 4105.4695044 16.01976437664755 0.3163999999999874 +24 6056.06621 11.82137492268269 18.59099999999999 -- !sql_test_Decimal32V3_Double_2 -- \N \N @@ -13477,14 +13477,14 @@ 12 \N \N 13 299.633 -8.944999999999993 14 374.549 -61.63899999999998 -15 475.92499999999995 -140.79299999999998 +15 475.925 -140.793 16 614.71 -257.356 -17 806.396 -426.81999999999994 +17 806.396 -426.8199999999999 18 1072.888 -671.09 -19 1445.171 -1021.1510000000001 -20 1967.0610000000001 -1520.819 +19 1445.171 -1021.151 +20 1967.061 -1520.819 21 2700.526 -2232.062 -22 3733.203 -3242.5170000000003 +22 3733.203 -3242.517 23 5189.027999999999 -4676.12 24 7243.275 -6708.145 @@ -13503,14 +13503,14 @@ 12 \N \N 13 299.633 -8.944999999999993 14 374.549 -61.63899999999998 -15 475.92499999999995 -140.79299999999998 +15 475.925 -140.793 16 614.71 -257.356 -17 806.396 -426.81999999999994 +17 806.396 -426.8199999999999 18 1072.888 -671.09 -19 1445.171 -1021.1510000000001 -20 1967.0610000000001 -1520.819 +19 1445.171 -1021.151 +20 1967.061 -1520.819 21 2700.526 -2232.062 -22 3733.203 -3242.5170000000003 +22 3733.203 -3242.517 23 5189.027999999999 -4676.12 24 7243.275 -6708.145 @@ -13531,15 +13531,15 @@ 13 22424.980416 0.9420243828140697 145.344 14 34121.89677 0.7173741597659725 156.455 15 51670.484194 0.543412061914846 167.566 -16 77909.068341 0.40977861767343293 178.677 -17 117024.79910399999 0.30779360631065444 189.788 -18 175181.718111 0.23039166778480002 200.899 -19 261442.46361 0.17192402289725348 212.01 -20 389109.63674000005 0.1279407548424831 223.121 +16 77909.06834100001 0.4097786176734329 178.677 +17 117024.799104 0.3077936063106544 189.788 +18 175181.718111 0.2303916677848 200.899 +19 261442.46361 0.1719240228972535 212.01 +20 389109.63674 0.1279407548424831 223.121 21 577684.976208 0.09497326758285915 234.232 22 855722.03598 0.07034198620357468 245.343 23 1264978.332596 0.05199192145926245 256.454 -24 1866455.8461499999 0.03835666907024518 267.565 +24 1866455.84615 0.03835666907024518 267.565 -- !sql_test_Decimal32V3_Char_notn_1 -- 1 \N \N \N @@ -13557,15 +13557,15 @@ 13 22424.980416 0.9420243828140697 145.344 14 34121.89677 0.7173741597659725 156.455 15 51670.484194 0.543412061914846 167.566 -16 77909.068341 0.40977861767343293 178.677 -17 117024.79910399999 0.30779360631065444 189.788 -18 175181.718111 0.23039166778480002 200.899 -19 261442.46361 0.17192402289725348 212.01 -20 389109.63674000005 0.1279407548424831 223.121 +16 77909.06834100001 0.4097786176734329 178.677 +17 117024.799104 0.3077936063106544 189.788 +18 175181.718111 0.2303916677848 200.899 +19 261442.46361 0.1719240228972535 212.01 +20 389109.63674 0.1279407548424831 223.121 21 577684.976208 0.09497326758285915 234.232 22 855722.03598 0.07034198620357468 245.343 23 1264978.332596 0.05199192145926245 256.454 -24 1866455.8461499999 0.03835666907024518 267.565 +24 1866455.84615 0.03835666907024518 267.565 -- !sql_test_Decimal32V3_Char_2 -- \N \N @@ -13691,14 +13691,14 @@ 14 3434.537 -3121.627 15 4802.307 -4467.175 16 6732.365 -6375.011 -17 9457.518 -9077.942 -18 13307.036 -12905.238000000001 -19 18746.594999999998 -18322.575 -20 26434.774999999998 -25988.533 -21 37302.963 -36834.498999999996 -22 52668.342000000004 -52177.656 +17 9457.518 -9077.941999999999 +18 13307.036 -12905.238 +19 18746.595 -18322.575 +20 26434.775 -25988.533 +21 37302.963 -36834.499 +22 52668.342 -52177.656 23 74393.697 -73880.789 -24 105113.408 -104578.27799999999 +24 105113.408 -104578.278 -- !sql_test_Decimal32V3_Varchar_notn_0 -- 1 \N \N @@ -13717,14 +13717,14 @@ 14 3434.537 -3121.627 15 4802.307 -4467.175 16 6732.365 -6375.011 -17 9457.518 -9077.942 -18 13307.036 -12905.238000000001 -19 18746.594999999998 -18322.575 -20 26434.774999999998 -25988.533 -21 37302.963 -36834.498999999996 -22 52668.342000000004 -52177.656 +17 9457.518 -9077.941999999999 +18 13307.036 -12905.238 +19 18746.595 -18322.575 +20 26434.775 -25988.533 +21 37302.963 -36834.499 +22 52668.342 -52177.656 23 74393.697 -73880.789 -24 105113.408 -104578.27799999999 +24 105113.408 -104578.278 -- !sql_test_Decimal32V3_Varchar_1 -- \N \N \N \N @@ -13741,17 +13741,17 @@ 11 \N \N \N 12 \N \N \N 13 337070.322624 0.06267202099416115 145.344 -14 512872.31931000005 0.04772760412948792 156.455 +14 512872.31931 0.04772760412948792 156.455 15 776625.010406 0.03615433958445574 167.566 -16 1170993.310776 0.027263580445086796 178.677 -17 1758903.94124 0.020478369568384062 189.788 -18 2633009.8171630003 0.015328620477567112 200.899 -19 3929517.3658499997 0.011438615971169573 212.01 +16 1170993.310776 0.0272635804450868 178.677 +17 1758903.94124 0.02047836956838406 189.788 +18 2633009.817163 0.01532862047756711 200.899 +19 3929517.36585 0.01143861597116957 212.01 20 5848370.452134 0.008512282361120746 223.121 -21 8682682.999592 0.0063188567205065636 234.232 -22 1.2861615843657E7 0.004680064183279556 245.343 -23 1.9012792516322E7 0.0034591790795349647 256.454 -24 2.8053077982295E7 0.0025519848221354853 267.565 +21 8682682.999592001 0.006318856720506564 234.232 +22 12861615.843657 0.004680064183279556 245.343 +23 19012792.516322 0.003459179079534965 256.454 +24 28053077.982295 0.002551984822135485 267.565 -- !sql_test_Decimal32V3_Varchar_notn_1 -- 1 \N \N \N @@ -13767,17 +13767,17 @@ 11 \N \N \N 12 \N \N \N 13 337070.322624 0.06267202099416115 145.344 -14 512872.31931000005 0.04772760412948792 156.455 +14 512872.31931 0.04772760412948792 156.455 15 776625.010406 0.03615433958445574 167.566 -16 1170993.310776 0.027263580445086796 178.677 -17 1758903.94124 0.020478369568384062 189.788 -18 2633009.8171630003 0.015328620477567112 200.899 -19 3929517.3658499997 0.011438615971169573 212.01 +16 1170993.310776 0.0272635804450868 178.677 +17 1758903.94124 0.02047836956838406 189.788 +18 2633009.817163 0.01532862047756711 200.899 +19 3929517.36585 0.01143861597116957 212.01 20 5848370.452134 0.008512282361120746 223.121 -21 8682682.999592 0.0063188567205065636 234.232 -22 1.2861615843657E7 0.004680064183279556 245.343 -23 1.9012792516322E7 0.0034591790795349647 256.454 -24 2.8053077982295E7 0.0025519848221354853 267.565 +21 8682682.999592001 0.006318856720506564 234.232 +22 12861615.843657 0.004680064183279556 245.343 +23 19012792.516322 0.003459179079534965 256.454 +24 28053077.982295 0.002551984822135485 267.565 -- !sql_test_Decimal32V3_Varchar_2 -- \N \N @@ -13899,17 +13899,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 10749.360999999999 -10458.673 +13 10749.361 -10458.673 14 15145.248 -14832.338 -15 21359.578999999998 -21024.447 +15 21359.579 -21024.447 16 30144.932 -29787.578 17 42565.8 -42186.224 -18 60127.740999999995 -59725.943 +18 60127.74099999999 -59725.943 19 84960.027 -84536.00700000001 20 120073.972 -119627.73 -21 169728.26299999998 -169259.799 +21 169728.263 -169259.799 22 239945.628 -239454.942 -23 339243.51300000004 -338730.605 +23 339243.513 -338730.605 24 479667.426 -479132.296 -- !sql_test_Decimal32V3_String_notn_0 -- @@ -13925,17 +13925,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 10749.360999999999 -10458.673 +13 10749.361 -10458.673 14 15145.248 -14832.338 -15 21359.578999999998 -21024.447 +15 21359.579 -21024.447 16 30144.932 -29787.578 17 42565.8 -42186.224 -18 60127.740999999995 -59725.943 +18 60127.74099999999 -59725.943 19 84960.027 -84536.00700000001 20 120073.972 -119627.73 -21 169728.26299999998 -169259.799 +21 169728.263 -169259.799 22 239945.628 -239454.942 -23 339243.51300000004 -338730.605 +23 339243.513 -338730.605 24 479667.426 -479132.296 -- !sql_test_Decimal32V3_String_1 -- @@ -13952,18 +13952,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1541230.246848 0.013706503865469096 145.344 -14 2345071.608815 0.010438132009695511 156.455 +13 1541230.246848 0.0137065038654691 145.344 +14 2345071.608815 0.01043813200969551 156.455 15 3551060.850358 0.00790703554211674 167.566 16 5354280.544635 0.005962606939038595 178.677 17 8042458.565456001 0.004478665901831442 189.788 -18 1.2039242630958E7 0.00335240425317256 200.899 -19 1.7967427084170002E7 0.0025016514545703173 212.01 -20 2.6741241725971E7 0.001861655533843477 223.121 -21 3.9700925869192E7 0.0013819483707954295 234.232 -22 5.8808787022755E7 0.001023540710433448 245.343 -23 8.6934587228786E7 7.56530354747259E-4 256.454 -24 1.2827062380846499E8 5.581249010833568E-4 267.565 +18 12039242.630958 0.00335240425317256 200.899 +19 17967427.08417 0.002501651454570317 212.01 +20 26741241.725971 0.001861655533843477 223.121 +21 39700925.869192 0.00138194837079543 234.232 +22 58808787.022755 0.001023540710433448 245.343 +23 86934587.22878601 0.000756530354747259 256.454 +24 128270623.808465 0.0005581249010833568 267.565 -- !sql_test_Decimal32V3_String_notn_1 -- 1 \N \N \N @@ -13978,18 +13978,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1541230.246848 0.013706503865469096 145.344 -14 2345071.608815 0.010438132009695511 156.455 +13 1541230.246848 0.0137065038654691 145.344 +14 2345071.608815 0.01043813200969551 156.455 15 3551060.850358 0.00790703554211674 167.566 16 5354280.544635 0.005962606939038595 178.677 17 8042458.565456001 0.004478665901831442 189.788 -18 1.2039242630958E7 0.00335240425317256 200.899 -19 1.7967427084170002E7 0.0025016514545703173 212.01 -20 2.6741241725971E7 0.001861655533843477 223.121 -21 3.9700925869192E7 0.0013819483707954295 234.232 -22 5.8808787022755E7 0.001023540710433448 245.343 -23 8.6934587228786E7 7.56530354747259E-4 256.454 -24 1.2827062380846499E8 5.581249010833568E-4 267.565 +18 12039242.630958 0.00335240425317256 200.899 +19 17967427.08417 0.002501651454570317 212.01 +20 26741241.725971 0.001861655533843477 223.121 +21 39700925.869192 0.00138194837079543 234.232 +22 58808787.022755 0.001023540710433448 245.343 +23 86934587.22878601 0.000756530354747259 256.454 +24 128270623.808465 0.0005581249010833568 267.565 -- !sql_test_Decimal32V3_String_2 -- \N \N @@ -15689,56 +15689,56 @@ -- !sql_test_Decimal64V3_Float_0 -- \N \N \N -1 1234.11234000149 1233.9123399985099 -2 2345.3234500029803 2344.92344999702 +1 1234.11234000149 1233.91233999851 +2 2345.32345000298 2344.92344999702 3 3456.534560011921 3455.934559988079 4 4567.74567000596 4566.945669994039 5 5678.95678 5677.95678 6 6790.167890023842 6788.967889976158 7 7901.378999988079 7899.979000011921 -8 9012.59011001192 9010.990109988079 -9 10123.801219976158 10122.001220023842 +8 9012.590110011921 9010.990109988079 +9 10123.80121997616 10122.00122002384 10 11235.01233 11233.01233 -11 12346.223440023841 12344.023439976158 -12 13457.434550047683 13455.034549952316 -13 14567.445660001491 14567.24565999851 -14 15678.656770002981 15678.25676999702 -15 16789.86788001192 16789.267879988078 +11 12346.22344002384 12344.02343997616 +12 13457.43455004768 13455.03454995232 +13 14567.44566000149 14567.24565999851 +14 15678.65677000298 15678.25676999702 +15 16789.86788001192 16789.26787998808 16 17901.07899000596 17900.27898999404 17 19012.2901 19011.2901 -18 20123.501210023842 20122.301209976158 -19 21234.71231998808 21233.312320011923 +18 20123.50121002384 20122.30120997616 +19 21234.71231998808 21233.31232001192 20 22345.92343001192 22344.32342998808 -21 23457.13453997616 23455.334540023843 +21 23457.13453997616 23455.33454002384 22 24568.34565 24566.34565 -23 25679.556760023843 25677.35675997616 -24 26790.767870047683 26788.367869952315 +23 25679.55676002384 25677.35675997616 +24 26790.76787004768 26788.36786995232 -- !sql_test_Decimal64V3_Float_notn_0 -- -1 1234.11234000149 1233.9123399985099 -2 2345.3234500029803 2344.92344999702 +1 1234.11234000149 1233.91233999851 +2 2345.32345000298 2344.92344999702 3 3456.534560011921 3455.934559988079 4 4567.74567000596 4566.945669994039 5 5678.95678 5677.95678 6 6790.167890023842 6788.967889976158 7 7901.378999988079 7899.979000011921 -8 9012.59011001192 9010.990109988079 -9 10123.801219976158 10122.001220023842 +8 9012.590110011921 9010.990109988079 +9 10123.80121997616 10122.00122002384 10 11235.01233 11233.01233 -11 12346.223440023841 12344.023439976158 -12 13457.434550047683 13455.034549952316 -13 14567.445660001491 14567.24565999851 -14 15678.656770002981 15678.25676999702 -15 16789.86788001192 16789.267879988078 +11 12346.22344002384 12344.02343997616 +12 13457.43455004768 13455.03454995232 +13 14567.44566000149 14567.24565999851 +14 15678.65677000298 15678.25676999702 +15 16789.86788001192 16789.26787998808 16 17901.07899000596 17900.27898999404 17 19012.2901 19011.2901 -18 20123.501210023842 20122.301209976158 -19 21234.71231998808 21233.312320011923 +18 20123.50121002384 20122.30120997616 +19 21234.71231998808 21233.31232001192 20 22345.92343001192 22344.32342998808 -21 23457.13453997616 23455.334540023843 +21 23457.13453997616 23455.33454002384 22 24568.34565 24566.34565 -23 25679.556760023843 25677.35675997616 -24 26790.767870047683 26788.367869952315 +23 25679.55676002384 25677.35675997616 +24 26790.76787004768 26788.36786995232 -- !sql_test_Decimal64V3_Float_2 -- \N \N @@ -15850,107 +15850,107 @@ \N \N \N 1 1234.53674 1233.48794 2 2345.86505 2344.38185 -3 3457.2713599999997 3455.19776 -4 4568.7947699999995 4565.89657 -5 5680.48778 5676.4257800000005 +3 3457.27136 3455.19776 +4 4568.79477 4565.89657 +5 5680.48778 5676.42578 6 6792.42269 6786.71309 -7 7904.7008000000005 7896.6572 -8 9017.464609999999 9006.11561 +7 7904.700800000001 7896.6572 +8 9017.464609999999 9006.115610000001 9 10130.91532 10114.88712 10 11245.33713 11222.68753 -11 12361.132039999999 12329.11484 +11 12361.13204 12329.11484 12 13478.86855 13433.60055 -13 14567.870060000001 14566.82126 -14 15679.19837 15677.715170000001 -15 16790.60468 16788.531079999997 -16 17902.128090000002 17899.22989 -17 19013.821099999997 19009.7591 +13 14567.87006 14566.82126 +14 15679.19837 15677.71517 +15 16790.60468 16788.53108 +16 17902.12809 17899.22989 +17 19013.8211 19009.7591 18 20125.75601 20120.04641 -19 21238.03412 21229.990520000003 +19 21238.03412 21229.99052 20 22350.79793 22339.44893 21 23464.24864 23448.22044 -22 24578.670449999998 24556.02085 -23 25694.465360000002 25662.44816 -24 26812.201869999997 26766.93387 +22 24578.67045 24556.02085 +23 25694.46536 25662.44816 +24 26812.20187 26766.93387 -- !sql_test_Decimal64V3_Double_notn_0 -- 1 1234.53674 1233.48794 2 2345.86505 2344.38185 -3 3457.2713599999997 3455.19776 -4 4568.7947699999995 4565.89657 -5 5680.48778 5676.4257800000005 +3 3457.27136 3455.19776 +4 4568.79477 4565.89657 +5 5680.48778 5676.42578 6 6792.42269 6786.71309 -7 7904.7008000000005 7896.6572 -8 9017.464609999999 9006.11561 +7 7904.700800000001 7896.6572 +8 9017.464609999999 9006.115610000001 9 10130.91532 10114.88712 10 11245.33713 11222.68753 -11 12361.132039999999 12329.11484 +11 12361.13204 12329.11484 12 13478.86855 13433.60055 -13 14567.870060000001 14566.82126 -14 15679.19837 15677.715170000001 -15 16790.60468 16788.531079999997 -16 17902.128090000002 17899.22989 -17 19013.821099999997 19009.7591 +13 14567.87006 14566.82126 +14 15679.19837 15677.71517 +15 16790.60468 16788.53108 +16 17902.12809 17899.22989 +17 19013.8211 19009.7591 18 20125.75601 20120.04641 -19 21238.03412 21229.990520000003 +19 21238.03412 21229.99052 20 22350.79793 22339.44893 21 23464.24864 23448.22044 -22 24578.670449999998 24556.02085 -23 25694.465360000002 25662.44816 -24 26812.201869999997 26766.93387 +22 24578.67045 24556.02085 +23 25694.46536 25662.44816 +24 26812.20187 26766.93387 -- !sql_test_Decimal64V3_Double_1 -- \N \N \N \N 1 647.1160710959999 2353.189054157132 0.09914000000004819 -2 1739.1435505200002 3162.2484492988133 0.1842499999999312 -3 3583.4239918079998 3333.5595679012345 0.5801600000000611 -4 6618.540610397 3151.8498861362223 1.2315699999995275 -5 11532.945720180001 2795.8920630231414 1.8117800000000481 +2 1739.14355052 3162.248449298813 0.1842499999999312 +3 3583.423991808 3333.559567901234 0.5801600000000611 +4 6618.540610397 3151.849886136222 1.231569999999528 +5 11532.94572018 2795.892063023141 1.811780000000048 6 19382.858412372 2378.298966652655 0.8534900000002512 -7 31774.950802199997 1964.4634243373614 1.8638000000004418 -8 51137.402979195 1588.1205586395276 0.6841099999997553 -9 81125.94266720199 1263.1363746396976 1.0929200000008592 -10 127222.94283478399 991.9832871220684 11.135529999999807 -11 197628.143101584 771.1557188011443 2.4928399999984094 -12 304568.41280469997 594.5142065034903 11.638549999999015 -13 7639.1160641040005 27779.072578184594 0.03806000000149368 -14 11627.143540632002 21141.392624056094 0.2911699999999069 +7 31774.9508022 1964.463424337361 1.863800000000442 +8 51137.402979195 1588.120558639528 0.6841099999997553 +9 81125.94266720199 1263.136374639698 1.092920000000859 +10 127222.942834784 991.9832871220684 11.13552999999981 +11 197628.143101584 771.1557188011443 2.492839999998409 +12 304568.4128047 594.5142065034903 11.63854999999901 +13 7639.116064104001 27779.07257818459 0.03806000000149368 +14 11627.143540632 21141.39262405609 0.2911699999999069 15 17407.423977984 16193.6418595679 0.6654799999996039 -16 25939.873924409003 12352.96321164861 1.3957899999996641 +16 25939.873924409 12352.96321164861 1.395789999999664 17 38612.9456931 9360.802609551944 1.63009999999705 18 57446.858374308 7048.795435757321 2.270809999999962 -19 85398.950748576 5279.728559351534 2.9301200000025895 -20 126797.402903535 3937.8136276323903 4.616929999999252 -21 187980.60922701398 2926.870707877367 6.977940000003883 -22 278220.27601712 2169.3403547965527 3.854449999999826 -23 411076.14288813603 1604.0413752607972 0.6623599999988983 -24 606355.07916958 1183.5984744190155 13.545869999998544 +19 85398.950748576 5279.728559351534 2.93012000000259 +20 126797.402903535 3937.81362763239 4.616929999999252 +21 187980.609227014 2926.870707877367 6.977940000003883 +22 278220.27601712 2169.340354796553 3.854449999999826 +23 411076.142888136 1604.041375260797 0.6623599999988983 +24 606355.07916958 1183.598474419015 13.54586999999854 -- !sql_test_Decimal64V3_Double_notn_1 -- 1 647.1160710959999 2353.189054157132 0.09914000000004819 -2 1739.1435505200002 3162.2484492988133 0.1842499999999312 -3 3583.4239918079998 3333.5595679012345 0.5801600000000611 -4 6618.540610397 3151.8498861362223 1.2315699999995275 -5 11532.945720180001 2795.8920630231414 1.8117800000000481 +2 1739.14355052 3162.248449298813 0.1842499999999312 +3 3583.423991808 3333.559567901234 0.5801600000000611 +4 6618.540610397 3151.849886136222 1.231569999999528 +5 11532.94572018 2795.892063023141 1.811780000000048 6 19382.858412372 2378.298966652655 0.8534900000002512 -7 31774.950802199997 1964.4634243373614 1.8638000000004418 -8 51137.402979195 1588.1205586395276 0.6841099999997553 -9 81125.94266720199 1263.1363746396976 1.0929200000008592 -10 127222.94283478399 991.9832871220684 11.135529999999807 -11 197628.143101584 771.1557188011443 2.4928399999984094 -12 304568.41280469997 594.5142065034903 11.638549999999015 -13 7639.1160641040005 27779.072578184594 0.03806000000149368 -14 11627.143540632002 21141.392624056094 0.2911699999999069 +7 31774.9508022 1964.463424337361 1.863800000000442 +8 51137.402979195 1588.120558639528 0.6841099999997553 +9 81125.94266720199 1263.136374639698 1.092920000000859 +10 127222.942834784 991.9832871220684 11.13552999999981 +11 197628.143101584 771.1557188011443 2.492839999998409 +12 304568.4128047 594.5142065034903 11.63854999999901 +13 7639.116064104001 27779.07257818459 0.03806000000149368 +14 11627.143540632 21141.39262405609 0.2911699999999069 15 17407.423977984 16193.6418595679 0.6654799999996039 -16 25939.873924409003 12352.96321164861 1.3957899999996641 +16 25939.873924409 12352.96321164861 1.395789999999664 17 38612.9456931 9360.802609551944 1.63009999999705 18 57446.858374308 7048.795435757321 2.270809999999962 -19 85398.950748576 5279.728559351534 2.9301200000025895 -20 126797.402903535 3937.8136276323903 4.616929999999252 -21 187980.60922701398 2926.870707877367 6.977940000003883 -22 278220.27601712 2169.3403547965527 3.854449999999826 -23 411076.14288813603 1604.0413752607972 0.6623599999988983 -24 606355.07916958 1183.5984744190155 13.545869999998544 +19 85398.950748576 5279.728559351534 2.93012000000259 +20 126797.402903535 3937.81362763239 4.616929999999252 +21 187980.609227014 2926.870707877367 6.977940000003883 +22 278220.27601712 2169.340354796553 3.854449999999826 +23 411076.142888136 1604.041375260797 0.6623599999988983 +24 606355.07916958 1183.598474419015 13.54586999999854 -- !sql_test_Decimal64V3_Double_2 -- \N \N @@ -16060,56 +16060,56 @@ -- !sql_test_Decimal64V3_DecimalV2_0 -- \N \N \N -1 1258.40734 1209.61734 -2 2379.60745 2310.63945 -3 3504.99056 3407.47856 -4 4636.28867 4498.40267 -5 5775.95078 5580.96278 -6 6927.44189 6651.69389 -7 8095.65900 7705.69900 +1 1258.40754 1209.61714 +2 2379.60715 2310.63975 +3 3504.99036 3407.47876 +4 4636.28857 4498.40277 +5 5775.95098 5580.96258 +6 6927.44149 6651.69429 +7 8095.65880 7705.69920 8 9287.53111 8736.04911 -9 10512.85622 9732.94622 +9 10512.85652 9732.94592 10 11785.49133 10682.53333 -11 13125.03144 11565.21544 -12 14559.19155 12353.27755 -13 14591.74066 14542.95066 -14 15712.94077 15643.97277 -15 16838.32388 16740.81188 -16 17969.62199 17831.73599 -17 19109.28410 18914.29610 -18 20260.77521 19985.02721 -19 21428.99232 21039.03232 +11 13125.03184 11565.21504 +12 14559.19105 12353.27805 +13 14591.74086 14542.95046 +14 15712.94047 15643.97307 +15 16838.32368 16740.81208 +16 17969.62189 17831.73609 +17 19109.28430 18914.29590 +18 20260.77481 19985.02761 +19 21428.99212 21039.03252 20 22620.86443 22069.38243 -21 23846.18954 23066.27954 +21 23846.18984 23066.27924 22 25118.82465 24015.86665 -23 26458.36476 24898.54876 -24 27892.52487 25686.61087 +23 26458.36516 24898.54836 +24 27892.52437 25686.61137 -- !sql_test_Decimal64V3_DecimalV2_notn_0 -- -1 1258.40734 1209.61734 -2 2379.60745 2310.63945 -3 3504.99056 3407.47856 -4 4636.28867 4498.40267 -5 5775.95078 5580.96278 -6 6927.44189 6651.69389 -7 8095.65900 7705.69900 +1 1258.40754 1209.61714 +2 2379.60715 2310.63975 +3 3504.99036 3407.47876 +4 4636.28857 4498.40277 +5 5775.95098 5580.96258 +6 6927.44149 6651.69429 +7 8095.65880 7705.69920 8 9287.53111 8736.04911 -9 10512.85622 9732.94622 +9 10512.85652 9732.94592 10 11785.49133 10682.53333 -11 13125.03144 11565.21544 -12 14559.19155 12353.27755 -13 14591.74066 14542.95066 -14 15712.94077 15643.97277 -15 16838.32388 16740.81188 -16 17969.62199 17831.73599 -17 19109.28410 18914.29610 -18 20260.77521 19985.02721 -19 21428.99232 21039.03232 +11 13125.03184 11565.21504 +12 14559.19105 12353.27805 +13 14591.74086 14542.95046 +14 15712.94047 15643.97307 +15 16838.32368 16740.81208 +16 17969.62189 17831.73609 +17 19109.28430 18914.29590 +18 20260.77481 19985.02761 +19 21428.99212 21039.03252 20 22620.86443 22069.38243 -21 23846.18954 23066.27954 +21 23846.18984 23066.27924 22 25118.82465 24015.86665 -23 26458.36476 24898.54876 -24 27892.52487 25686.61087 +23 26458.36516 24898.54836 +24 27892.52437 25686.61137 -- !sql_test_Decimal64V3_DecimalV2_2 -- \N \N @@ -16708,15 +16708,15 @@ 10 \N \N 11 \N \N 12 \N \N -13 14721.634660000002 14413.05666 -14 15896.55077 15460.362770000002 +13 14721.63466 14413.05666 +14 15896.55077 15460.36277 15 17097.92688 16481.20888 16 18336.71199 17464.64599 -17 19628.3981 18395.182099999998 +17 19628.3981 18395.1821 18 20994.89021 19250.91221 19 22467.17332 20000.85132 20 24089.06343 20601.18343 -21 25922.52854 20989.940540000003 +21 25922.52854 20989.94054 22 28055.20565 21079.48565 23 30611.03076 20745.88276 24 33765.27787 19813.85787 @@ -16734,15 +16734,15 @@ 10 \N \N 11 \N \N 12 \N \N -13 14721.634660000002 14413.05666 -14 15896.55077 15460.362770000002 +13 14721.63466 14413.05666 +14 15896.55077 15460.36277 15 17097.92688 16481.20888 16 18336.71199 17464.64599 -17 19628.3981 18395.182099999998 +17 19628.3981 18395.1821 18 20994.89021 19250.91221 19 22467.17332 20000.85132 20 24089.06343 20601.18343 -21 25922.52854 20989.940540000003 +21 25922.52854 20989.94054 22 28055.20565 21079.48565 23 30611.03076 20745.88276 24 33765.27787 19813.85787 @@ -16761,18 +16761,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2247581.1945357397 94.4159704191485 64.17966000000206 +13 2247581.19453574 94.41597041914849 64.17966000000206 14 3419377.35079638 71.8885286619531 193.7827700000011 -15 5177214.361908919 54.44812014567436 138.18187999999975 -16 7805286.762046671 41.05349592806049 23.325989999999706 -17 1.1722821869980797E7 30.83286318049717 513.5500999999999 -18 1.754694850320669E7 23.077012680205826 67.15420999999924 -19 2.6184955866543524E7 17.21917277630415 270.27532000000065 -20 3.89685545545142E7 12.813011588701446 1417.843429999999 -21 5.784997050859476E7 9.510721163008142 1259.5885400000025 -22 8.5687462198809E7 7.043673097544052 152.3256499999984 -23 1.2666088817450024E8 5.205893872043279 1015.5867600000029 -24 1.868762564864377E8 3.8404073377476986 5862.437869999999 +15 5177214.361908919 54.44812014567436 138.1818799999998 +16 7805286.762046671 41.05349592806049 23.32598999999971 +17 11722821.8699808 30.83286318049717 513.5500999999999 +18 17546948.50320669 23.07701268020583 67.15420999999924 +19 26184955.86654352 17.21917277630415 270.2753200000006 +20 38968554.5545142 12.81301158870145 1417.843429999999 +21 57849970.50859476 9.510721163008142 1259.588540000002 +22 85687462.198809 7.043673097544052 152.3256499999984 +23 126660888.1745002 5.205893872043279 1015.586760000003 +24 186876256.4864377 3.840407337747699 5862.437869999999 -- !sql_test_Decimal64V3_Char_notn_1 -- 1 \N \N \N @@ -16787,18 +16787,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2247581.1945357397 94.4159704191485 64.17966000000206 +13 2247581.19453574 94.41597041914849 64.17966000000206 14 3419377.35079638 71.8885286619531 193.7827700000011 -15 5177214.361908919 54.44812014567436 138.18187999999975 -16 7805286.762046671 41.05349592806049 23.325989999999706 -17 1.1722821869980797E7 30.83286318049717 513.5500999999999 -18 1.754694850320669E7 23.077012680205826 67.15420999999924 -19 2.6184955866543524E7 17.21917277630415 270.27532000000065 -20 3.89685545545142E7 12.813011588701446 1417.843429999999 -21 5.784997050859476E7 9.510721163008142 1259.5885400000025 -22 8.5687462198809E7 7.043673097544052 152.3256499999984 -23 1.2666088817450024E8 5.205893872043279 1015.5867600000029 -24 1.868762564864377E8 3.8404073377476986 5862.437869999999 +15 5177214.361908919 54.44812014567436 138.1818799999998 +16 7805286.762046671 41.05349592806049 23.32598999999971 +17 11722821.8699808 30.83286318049717 513.5500999999999 +18 17546948.50320669 23.07701268020583 67.15420999999924 +19 26184955.86654352 17.21917277630415 270.2753200000006 +20 38968554.5545142 12.81301158870145 1417.843429999999 +21 57849970.50859476 9.510721163008142 1259.588540000002 +22 85687462.198809 7.043673097544052 152.3256499999984 +23 126660888.1745002 5.205893872043279 1015.586760000003 +24 186876256.4864377 3.840407337747699 5862.437869999999 -- !sql_test_Decimal64V3_Char_2 -- \N \N @@ -16920,18 +16920,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 16886.466660000002 12248.22466 +13 16886.46666 12248.22466 14 18956.53877 12400.37477 -15 21424.308879999997 12154.826879999999 -16 24454.366990000002 11346.99099 -17 28279.520099999998 9744.060099999999 +15 21424.30888 12154.82688 +16 24454.36699 11346.99099 +17 28279.5201 9744.060099999999 18 33229.03821 7016.764209999999 -19 39768.59732 2699.4273200000025 +19 39768.59732 2699.427320000003 20 48556.77743 -3866.530569999999 -21 60524.965540000005 -13612.496459999998 -22 76990.34465 -27855.653350000004 +21 60524.96554 -13612.49646 +22 76990.34465 -27855.65335 23 99815.69976 -48458.78624 -24 131635.41087 -78056.27513 +24 131635.41087 -78056.27512999999 -- !sql_test_Decimal64V3_Varchar_notn_0 -- 1 \N \N @@ -16946,18 +16946,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 16886.466660000002 12248.22466 +13 16886.46666 12248.22466 14 18956.53877 12400.37477 -15 21424.308879999997 12154.826879999999 -16 24454.366990000002 11346.99099 -17 28279.520099999998 9744.060099999999 +15 21424.30888 12154.82688 +16 24454.36699 11346.99099 +17 28279.5201 9744.060099999999 18 33229.03821 7016.764209999999 -19 39768.59732 2699.4273200000025 +19 39768.59732 2699.427320000003 20 48556.77743 -3866.530569999999 -21 60524.965540000005 -13612.496459999998 -22 76990.34465 -27855.653350000004 +21 60524.96554 -13612.49646 +22 76990.34465 -27855.65335 23 99815.69976 -48458.78624 -24 131635.41087 -78056.27513 +24 131635.41087 -78056.27512999999 -- !sql_test_Decimal64V3_Varchar_1 -- \N \N \N \N @@ -16973,18 +16973,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378343723436486E7 6.281408197329937 652.6196600000003 -14 5.139526692551514E7 4.782814087628071 2566.128770000001 -15 7.781529862571907E7 3.6225471671448304 2885.3448799999987 -16 1.1731546508861512E8 2.7313901714576585 4793.30299 -17 1.7619613746347296E8 2.051396631105999 476.3300999999992 -18 2.6373350009572577E8 1.5353800444783996 7016.764209999999 -19 3.935636062360872E8 1.1456427171150583 2699.4273200000025 -20 5.857026439344531E8 0.8524881119672952 22345.12343 -21 8.694928484361688E8 0.6327768420235373 23456.23454 -22 1.2878939364426043E9 0.46863678382841084 24567.34565 -23 1.9037299886811128E9 0.34636379397059586 25678.45676 -24 2.808774826935864E9 0.2555138773599255 26789.56787 +13 33783437.23436486 6.281408197329937 652.6196600000003 +14 51395266.92551514 4.782814087628071 2566.128770000001 +15 77815298.62571907 3.62254716714483 2885.344879999999 +16 117315465.0886151 2.731390171457659 4793.30299 +17 176196137.463473 2.051396631105999 476.3300999999992 +18 263733500.0957258 1.5353800444784 7016.764209999999 +19 393563606.2360872 1.145642717115058 2699.427320000003 +20 585702643.9344531 0.8524881119672952 22345.12343 +21 869492848.4361688 0.6327768420235373 23456.23454 +22 1287893936.442604 0.4686367838284108 24567.34565 +23 1903729988.681113 0.3463637939705959 25678.45676 +24 2808774826.935864 0.2555138773599255 26789.56787 -- !sql_test_Decimal64V3_Varchar_notn_1 -- 1 \N \N \N @@ -16999,18 +16999,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378343723436486E7 6.281408197329937 652.6196600000003 -14 5.139526692551514E7 4.782814087628071 2566.128770000001 -15 7.781529862571907E7 3.6225471671448304 2885.3448799999987 -16 1.1731546508861512E8 2.7313901714576585 4793.30299 -17 1.7619613746347296E8 2.051396631105999 476.3300999999992 -18 2.6373350009572577E8 1.5353800444783996 7016.764209999999 -19 3.935636062360872E8 1.1456427171150583 2699.4273200000025 -20 5.857026439344531E8 0.8524881119672952 22345.12343 -21 8.694928484361688E8 0.6327768420235373 23456.23454 -22 1.2878939364426043E9 0.46863678382841084 24567.34565 -23 1.9037299886811128E9 0.34636379397059586 25678.45676 -24 2.808774826935864E9 0.2555138773599255 26789.56787 +13 33783437.23436486 6.281408197329937 652.6196600000003 +14 51395266.92551514 4.782814087628071 2566.128770000001 +15 77815298.62571907 3.62254716714483 2885.344879999999 +16 117315465.0886151 2.731390171457659 4793.30299 +17 176196137.463473 2.051396631105999 476.3300999999992 +18 263733500.0957258 1.5353800444784 7016.764209999999 +19 393563606.2360872 1.145642717115058 2699.427320000003 +20 585702643.9344531 0.8524881119672952 22345.12343 +21 869492848.4361688 0.6327768420235373 23456.23454 +22 1287893936.442604 0.4686367838284108 24567.34565 +23 1903729988.681113 0.3463637939705959 25678.45676 +24 2808774826.935864 0.2555138773599255 26789.56787 -- !sql_test_Decimal64V3_Varchar_2 -- \N \N @@ -17133,17 +17133,17 @@ 11 \N \N 12 \N \N 13 25171.36266 3963.328660000001 -14 30667.249770000002 689.663770000001 -15 37981.580879999994 -4402.44512 -16 47866.933990000005 -12065.57601 -17 61387.8021 -23364.221900000004 +14 30667.24977 689.663770000001 +15 37981.58087999999 -4402.44512 +16 47866.93399 -12065.57601 +17 61387.8021 -23364.2219 18 80049.74321 -39803.94078999999 -19 105982.02932 -63514.004680000005 +19 105982.02932 -63514.00468000001 20 142195.97443 -97505.72756999999 -21 192950.26554 -146037.79645999998 +21 192950.26554 -146037.79646 22 264267.63065 -215132.93935 -23 364665.51576 -313308.60224000004 -24 506189.42886999995 -452610.29313 +23 364665.51576 -313308.60224 +24 506189.4288699999 -452610.29313 -- !sql_test_Decimal64V3_String_notn_0 -- 1 \N \N @@ -17159,17 +17159,17 @@ 11 \N \N 12 \N \N 13 25171.36266 3963.328660000001 -14 30667.249770000002 689.663770000001 -15 37981.580879999994 -4402.44512 -16 47866.933990000005 -12065.57601 -17 61387.8021 -23364.221900000004 +14 30667.24977 689.663770000001 +15 37981.58087999999 -4402.44512 +16 47866.93399 -12065.57601 +17 61387.8021 -23364.2219 18 80049.74321 -39803.94078999999 -19 105982.02932 -63514.004680000005 +19 105982.02932 -63514.00468000001 20 142195.97443 -97505.72756999999 -21 192950.26554 -146037.79645999998 +21 192950.26554 -146037.79646 22 264267.63065 -215132.93935 -23 364665.51576 -313308.60224000004 -24 506189.42886999995 -452610.29313 +23 364665.51576 -313308.60224 +24 506189.4288699999 -452610.29313 -- !sql_test_Decimal64V3_String_1 -- \N \N \N \N @@ -17185,18 +17185,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447238102351624E8 1.373757290279712 3963.328660000001 -14 2.350011430849786E8 1.0460119617370125 689.663770000001 -15 3.558047407773424E8 0.7922592289840517 16789.56788 -16 5.364163112874825E8 0.5973612314918898 17900.67899 -17 8.056438454190812E8 0.4486450990244197 19011.7901 -18 1.2059019213932788E9 0.335791116942221 20122.90121 -19 1.7995404370735698E9 0.25055468047116664 21234.01232 -20 2.6780820587855387E9 0.1864410911024737 22345.12343 -21 3.975691744266031E9 0.13838973798434237 23456.23454 -22 5.88879975399851E9 0.10249193341593231 24567.34565 -23 8.70466453673107E9 0.07575055176368842 25678.45676 -24 1.2842915113128065E10 0.055881467746191106 26789.56787 +13 154472381.0235162 1.373757290279712 3963.328660000001 +14 235001143.0849786 1.046011961737012 689.663770000001 +15 355804740.7773424 0.7922592289840517 16789.56788 +16 536416311.2874825 0.5973612314918898 17900.67899 +17 805643845.4190812 0.4486450990244197 19011.7901 +18 1205901921.393279 0.335791116942221 20122.90121 +19 1799540437.07357 0.2505546804711666 21234.01232 +20 2678082058.785539 0.1864410911024737 22345.12343 +21 3975691744.266031 0.1383897379843424 23456.23454 +22 5888799753.99851 0.1024919334159323 24567.34565 +23 8704664536.73107 0.07575055176368842 25678.45676 +24 12842915113.12807 0.05588146774619111 26789.56787 -- !sql_test_Decimal64V3_String_notn_1 -- 1 \N \N \N @@ -17211,18 +17211,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447238102351624E8 1.373757290279712 3963.328660000001 -14 2.350011430849786E8 1.0460119617370125 689.663770000001 -15 3.558047407773424E8 0.7922592289840517 16789.56788 -16 5.364163112874825E8 0.5973612314918898 17900.67899 -17 8.056438454190812E8 0.4486450990244197 19011.7901 -18 1.2059019213932788E9 0.335791116942221 20122.90121 -19 1.7995404370735698E9 0.25055468047116664 21234.01232 -20 2.6780820587855387E9 0.1864410911024737 22345.12343 -21 3.975691744266031E9 0.13838973798434237 23456.23454 -22 5.88879975399851E9 0.10249193341593231 24567.34565 -23 8.70466453673107E9 0.07575055176368842 25678.45676 -24 1.2842915113128065E10 0.055881467746191106 26789.56787 +13 154472381.0235162 1.373757290279712 3963.328660000001 +14 235001143.0849786 1.046011961737012 689.663770000001 +15 355804740.7773424 0.7922592289840517 16789.56788 +16 536416311.2874825 0.5973612314918898 17900.67899 +17 805643845.4190812 0.4486450990244197 19011.7901 +18 1205901921.393279 0.335791116942221 20122.90121 +19 1799540437.07357 0.2505546804711666 21234.01232 +20 2678082058.785539 0.1864410911024737 22345.12343 +21 3975691744.266031 0.1383897379843424 23456.23454 +22 5888799753.99851 0.1024919334159323 24567.34565 +23 8704664536.73107 0.07575055176368842 25678.45676 +24 12842915113.12807 0.05588146774619111 26789.56787 -- !sql_test_Decimal64V3_String_2 -- \N \N @@ -18922,56 +18922,56 @@ -- !sql_test_Decimal128V3_Float_0 -- \N \N \N -1 1.2345678112345E7 1.2345677912344998E7 -2 2.3456789323456004E7 2.3456788923456E7 -3 3.456790053456701E7 3.456789993456699E7 -4 4.567901174567801E7 4.5679010945677996E7 -5 5.6790122956789E7 5.6790121956789E7 -6 6.790123416790003E7 6.790123296789998E7 -7 7.901234537901099E7 7.901234397901101E7 -8 9.012345659012201E7 9.012345499012199E7 -9 1.0123456780123298E8 1.0123456600123303E8 -10 1.12345679012344E8 1.12345677012344E8 -11 1.2345679022345503E8 1.2345678802345498E8 -12 1.3456790143456605E8 1.3456789903456596E8 -13 1.4567901144567698E8 1.45679011245677E8 -14 1.56790122656788E8 1.5679012225678802E8 -15 1.67901233867899E8 1.6790123326789898E8 -16 1.7901234507901E8 1.7901234427901E8 -17 1.90123456290121E8 1.90123455290121E8 -18 2.0123456750123203E8 2.0123456630123198E8 -19 2.1234567871234298E8 2.12345677312343E8 -20 2.2345678992345402E8 2.23456788323454E8 -21 2.3456790113456497E8 2.34567899334565E8 -22 2.45679012345676E8 2.45679010345676E8 -23 2.56790123556787E8 2.5679012135678697E8 -24 2.6790123476789805E8 2.6790123236789796E8 +1 12345678.112345 12345677.912345 +2 23456789.323456 23456788.923456 +3 34567900.53456701 34567899.93456699 +4 45679011.74567801 45679010.945678 +5 56790122.956789 56790121.956789 +6 67901234.16790003 67901232.96789998 +7 79012345.37901099 79012343.97901101 +8 90123456.59012201 90123454.99012199 +9 101234567.801233 101234566.001233 +10 112345679.012344 112345677.012344 +11 123456790.223455 123456788.023455 +12 134567901.4345661 134567899.034566 +13 145679011.445677 145679011.245677 +14 156790122.656788 156790122.256788 +15 167901233.867899 167901233.267899 +16 179012345.07901 179012344.27901 +17 190123456.290121 190123455.290121 +18 201234567.501232 201234566.301232 +19 212345678.712343 212345677.312343 +20 223456789.923454 223456788.323454 +21 234567901.134565 234567899.334565 +22 245679012.345676 245679010.345676 +23 256790123.556787 256790121.356787 +24 267901234.7678981 267901232.367898 -- !sql_test_Decimal128V3_Float_notn_0 -- -1 1.2345678112345E7 1.2345677912344998E7 -2 2.3456789323456004E7 2.3456788923456E7 -3 3.456790053456701E7 3.456789993456699E7 -4 4.567901174567801E7 4.5679010945677996E7 -5 5.6790122956789E7 5.6790121956789E7 -6 6.790123416790003E7 6.790123296789998E7 -7 7.901234537901099E7 7.901234397901101E7 -8 9.012345659012201E7 9.012345499012199E7 -9 1.0123456780123298E8 1.0123456600123303E8 -10 1.12345679012344E8 1.12345677012344E8 -11 1.2345679022345503E8 1.2345678802345498E8 -12 1.3456790143456605E8 1.3456789903456596E8 -13 1.4567901144567698E8 1.45679011245677E8 -14 1.56790122656788E8 1.5679012225678802E8 -15 1.67901233867899E8 1.6790123326789898E8 -16 1.7901234507901E8 1.7901234427901E8 -17 1.90123456290121E8 1.90123455290121E8 -18 2.0123456750123203E8 2.0123456630123198E8 -19 2.1234567871234298E8 2.12345677312343E8 -20 2.2345678992345402E8 2.23456788323454E8 -21 2.3456790113456497E8 2.34567899334565E8 -22 2.45679012345676E8 2.45679010345676E8 -23 2.56790123556787E8 2.5679012135678697E8 -24 2.6790123476789805E8 2.6790123236789796E8 +1 12345678.112345 12345677.912345 +2 23456789.323456 23456788.923456 +3 34567900.53456701 34567899.93456699 +4 45679011.74567801 45679010.945678 +5 56790122.956789 56790121.956789 +6 67901234.16790003 67901232.96789998 +7 79012345.37901099 79012343.97901101 +8 90123456.59012201 90123454.99012199 +9 101234567.801233 101234566.001233 +10 112345679.012344 112345677.012344 +11 123456790.223455 123456788.023455 +12 134567901.4345661 134567899.034566 +13 145679011.445677 145679011.245677 +14 156790122.656788 156790122.256788 +15 167901233.867899 167901233.267899 +16 179012345.07901 179012344.27901 +17 190123456.290121 190123455.290121 +18 201234567.501232 201234566.301232 +19 212345678.712343 212345677.312343 +20 223456789.923454 223456788.323454 +21 234567901.134565 234567899.334565 +22 245679012.345676 245679010.345676 +23 256790123.556787 256790121.356787 +24 267901234.7678981 267901232.367898 -- !sql_test_Decimal128V3_Float_2 -- \N \N @@ -19081,109 +19081,109 @@ -- !sql_test_Decimal128V3_Double_0 -- \N \N \N -1 1.2345678536744999E7 1.2345677487945E7 -2 2.3456789865056E7 2.3456788381856002E7 -3 3.4567901271367E7 3.4567899197767004E7 -4 4.5679012794778004E7 4.5679009896578E7 -5 5.6790124487789005E7 5.6790120425789E7 -6 6.79012364227E7 6.79012307131E7 -7 7.9012348700811E7 7.9012340657211E7 -8 9.0123461464622E7 9.0123450115622E7 -9 1.01234574915333E8 1.01234558887133E8 -10 1.12345689337144E8 1.12345666687544E8 -11 1.23456805132055E8 1.23456773114855E8 -12 1.34567922868566E8 1.34567877600566E8 -13 1.4567901187007698E8 1.45679010821277E8 -14 1.56790123198388E8 1.56790121715188E8 -15 1.67901234604699E8 1.67901232531099E8 -16 1.7901234612811E8 1.7901234322991002E8 -17 1.9012345782112098E8 1.90123453759121E8 -18 2.01234569756032E8 2.0123456404643202E8 -19 2.12345682034143E8 2.1234567399054298E8 -20 2.23456794797954E8 2.2345678344895402E8 -21 2.3456790824866498E8 2.34567892220465E8 -22 2.4567902267047602E8 2.45679000020876E8 -23 2.56790138465387E8 2.56790106448187E8 -24 2.67901256201898E8 2.67901210933898E8 +1 12345678.536745 12345677.487945 +2 23456789.865056 23456788.381856 +3 34567901.271367 34567899.197767 +4 45679012.794778 45679009.896578 +5 56790124.48778901 56790120.425789 +6 67901236.4227 67901230.7131 +7 79012348.700811 79012340.65721101 +8 90123461.46462201 90123450.115622 +9 101234574.915333 101234558.887133 +10 112345689.337144 112345666.687544 +11 123456805.132055 123456773.114855 +12 134567922.868566 134567877.600566 +13 145679011.870077 145679010.821277 +14 156790123.198388 156790121.715188 +15 167901234.604699 167901232.531099 +16 179012346.12811 179012343.22991 +17 190123457.821121 190123453.759121 +18 201234569.756032 201234564.046432 +19 212345682.034143 212345673.990543 +20 223456794.797954 223456783.448954 +21 234567908.248665 234567892.220465 +22 245679022.670476 245679000.020876 +23 256790138.465387 256790106.448187 +24 267901256.201898 267901210.933898 -- !sql_test_Decimal128V3_Double_notn_0 -- -1 1.2345678536744999E7 1.2345677487945E7 -2 2.3456789865056E7 2.3456788381856002E7 -3 3.4567901271367E7 3.4567899197767004E7 -4 4.5679012794778004E7 4.5679009896578E7 -5 5.6790124487789005E7 5.6790120425789E7 -6 6.79012364227E7 6.79012307131E7 -7 7.9012348700811E7 7.9012340657211E7 -8 9.0123461464622E7 9.0123450115622E7 -9 1.01234574915333E8 1.01234558887133E8 -10 1.12345689337144E8 1.12345666687544E8 -11 1.23456805132055E8 1.23456773114855E8 -12 1.34567922868566E8 1.34567877600566E8 -13 1.4567901187007698E8 1.45679010821277E8 -14 1.56790123198388E8 1.56790121715188E8 -15 1.67901234604699E8 1.67901232531099E8 -16 1.7901234612811E8 1.7901234322991002E8 -17 1.9012345782112098E8 1.90123453759121E8 -18 2.01234569756032E8 2.0123456404643202E8 -19 2.12345682034143E8 2.1234567399054298E8 -20 2.23456794797954E8 2.2345678344895402E8 -21 2.3456790824866498E8 2.34567892220465E8 -22 2.4567902267047602E8 2.45679000020876E8 -23 2.56790138465387E8 2.56790106448187E8 -24 2.67901256201898E8 2.67901210933898E8 +1 12345678.536745 12345677.487945 +2 23456789.865056 23456788.381856 +3 34567901.271367 34567899.197767 +4 45679012.794778 45679009.896578 +5 56790124.48778901 56790120.425789 +6 67901236.4227 67901230.7131 +7 79012348.700811 79012340.65721101 +8 90123461.46462201 90123450.115622 +9 101234574.915333 101234558.887133 +10 112345689.337144 112345666.687544 +11 123456805.132055 123456773.114855 +12 134567922.868566 134567877.600566 +13 145679011.870077 145679010.821277 +14 156790123.198388 156790121.715188 +15 167901234.604699 167901232.531099 +16 179012346.12811 179012343.22991 +17 190123457.821121 190123453.759121 +18 201234569.756032 201234564.046432 +19 212345682.034143 212345673.990543 +20 223456794.797954 223456783.448954 +21 234567908.248665 234567892.220465 +22 245679022.670476 245679000.020876 +23 256790138.465387 256790106.448187 +24 267901256.201898 267901210.933898 -- !sql_test_Decimal128V3_Double_1 -- \N \N \N \N -1 6474073.5496737175 2.3542482861069795E7 0.45154499977414275 -2 1.739555481395497E7 3.1629974546192016E7 0.40505600011306697 -3 3.5839998963199064E7 3.334095315834009E7 0.1641670033335063 -4 6.619345534102199E7 3.1522332030693535E7 0.044477999917583944 -5 1.1534073870973846E8 2.796165556710438E7 1.1517889979482212 -6 1.9384444158964092E8 2.378493539578955E7 1.1299000019013148 -7 3.177718478300464E8 1.96460153858996E7 1.5520110057286312 -8 5.114055498810473E8 1.588218447266226E7 2.682122000783309 -9 8.113039426031713E8 1.2632056862434087E7 6.911633013745018 -10 1.2722923343541934E9 9920323.362208959 4.101944005148486 -11 1.976370354361742E9 7711904.171723636 2.749054993084428 -12 3.045809853909167E9 5945387.480541045 10.876566001056446 -13 7.6394073549673E7 2.7780131835560066E8 0.18647699467973666 -14 1.16275554813954E8 2.1142141647355446E8 0.35118799563302616 -15 1.7407999896319765E8 1.6194177620360628E8 0.21109899781401253 -16 2.5940678867435342E8 1.2353346537782761E8 0.5475099970464234 -17 3.8614073870973575E8 9.361076109804085E7 0.19912097611392676 -18 5.744844415896372E8 7.04899001335407E7 0.3812320038651329 -19 8.54011847830041E8 5.279866676919364E7 3.0935429989737226 -20 1.2680055498810399E9 3.9379115186087586E7 1.0559540006088621 -21 1.8798506092698271E9 2.926940021144795E7 1.6945650157600767 -22 2.7822656676875114E9 2.1693894050727256E7 0.5744760101891941 -23 4.1108503543617206E9 1.6040760744648937E7 11.92078696974113 -24 6.063676520575804E9 1.183623016558708E7 3.7478980012102454 +1 6474073.549673717 23542482.86106979 0.4515449997741428 +2 17395554.81395497 31629974.54619202 0.405056000113067 +3 35839998.96319906 33340953.15834009 0.1641670033335063 +4 66193455.34102199 31522332.03069353 0.04447799991758394 +5 115340738.7097385 27961655.56710438 1.151788997948221 +6 193844441.5896409 23784935.39578955 1.129900001901315 +7 317771847.8300464 19646015.3858996 1.552011005728631 +8 511405549.8810473 15882184.47266226 2.682122000783309 +9 811303942.6031713 12632056.86243409 6.911633013745018 +10 1272292334.354193 9920323.362208959 4.101944005148486 +11 1976370354.361742 7711904.171723636 2.749054993084428 +12 3045809853.909167 5945387.480541045 10.87656600105645 +13 76394073.54967301 277801318.3556007 0.1864769946797367 +14 116275554.813954 211421416.4735545 0.3511879956330262 +15 174079998.9631976 161941776.2036063 0.2110989978140125 +16 259406788.6743534 123533465.3778276 0.5475099970464234 +17 386140738.7097358 93610761.09804085 0.1991209761139268 +18 574484441.5896372 70489900.1335407 0.3812320038651329 +19 854011847.8300411 52798666.76919364 3.093542998973723 +20 1268005549.88104 39379115.18608759 1.055954000608862 +21 1879850609.269827 29269400.21144795 1.694565015760077 +22 2782265667.687511 21693894.05072726 0.5744760101891941 +23 4110850354.361721 16040760.74464894 11.92078696974113 +24 6063676520.575804 11836230.16558708 3.747898001210245 -- !sql_test_Decimal128V3_Double_notn_1 -- -1 6474073.5496737175 2.3542482861069795E7 0.45154499977414275 -2 1.739555481395497E7 3.1629974546192016E7 0.40505600011306697 -3 3.5839998963199064E7 3.334095315834009E7 0.1641670033335063 -4 6.619345534102199E7 3.1522332030693535E7 0.044477999917583944 -5 1.1534073870973846E8 2.796165556710438E7 1.1517889979482212 -6 1.9384444158964092E8 2.378493539578955E7 1.1299000019013148 -7 3.177718478300464E8 1.96460153858996E7 1.5520110057286312 -8 5.114055498810473E8 1.588218447266226E7 2.682122000783309 -9 8.113039426031713E8 1.2632056862434087E7 6.911633013745018 -10 1.2722923343541934E9 9920323.362208959 4.101944005148486 -11 1.976370354361742E9 7711904.171723636 2.749054993084428 -12 3.045809853909167E9 5945387.480541045 10.876566001056446 -13 7.6394073549673E7 2.7780131835560066E8 0.18647699467973666 -14 1.16275554813954E8 2.1142141647355446E8 0.35118799563302616 -15 1.7407999896319765E8 1.6194177620360628E8 0.21109899781401253 -16 2.5940678867435342E8 1.2353346537782761E8 0.5475099970464234 -17 3.8614073870973575E8 9.361076109804085E7 0.19912097611392676 -18 5.744844415896372E8 7.04899001335407E7 0.3812320038651329 -19 8.54011847830041E8 5.279866676919364E7 3.0935429989737226 -20 1.2680055498810399E9 3.9379115186087586E7 1.0559540006088621 -21 1.8798506092698271E9 2.926940021144795E7 1.6945650157600767 -22 2.7822656676875114E9 2.1693894050727256E7 0.5744760101891941 -23 4.1108503543617206E9 1.6040760744648937E7 11.92078696974113 -24 6.063676520575804E9 1.183623016558708E7 3.7478980012102454 +1 6474073.549673717 23542482.86106979 0.4515449997741428 +2 17395554.81395497 31629974.54619202 0.405056000113067 +3 35839998.96319906 33340953.15834009 0.1641670033335063 +4 66193455.34102199 31522332.03069353 0.04447799991758394 +5 115340738.7097385 27961655.56710438 1.151788997948221 +6 193844441.5896409 23784935.39578955 1.129900001901315 +7 317771847.8300464 19646015.3858996 1.552011005728631 +8 511405549.8810473 15882184.47266226 2.682122000783309 +9 811303942.6031713 12632056.86243409 6.911633013745018 +10 1272292334.354193 9920323.362208959 4.101944005148486 +11 1976370354.361742 7711904.171723636 2.749054993084428 +12 3045809853.909167 5945387.480541045 10.87656600105645 +13 76394073.54967301 277801318.3556007 0.1864769946797367 +14 116275554.813954 211421416.4735545 0.3511879956330262 +15 174079998.9631976 161941776.2036063 0.2110989978140125 +16 259406788.6743534 123533465.3778276 0.5475099970464234 +17 386140738.7097358 93610761.09804085 0.1991209761139268 +18 574484441.5896372 70489900.1335407 0.3812320038651329 +19 854011847.8300411 52798666.76919364 3.093542998973723 +20 1268005549.88104 39379115.18608759 1.055954000608862 +21 1879850609.269827 29269400.21144795 1.694565015760077 +22 2782265667.687511 21693894.05072726 0.5744760101891941 +23 4110850354.361721 16040760.74464894 11.92078696974113 +24 6063676520.575804 11836230.16558708 3.747898001210245 -- !sql_test_Decimal128V3_Double_2 -- \N \N @@ -19293,56 +19293,56 @@ -- !sql_test_Decimal128V3_DecimalV2_0 -- \N \N \N -1 12345702.40734500 12345653.61734500 -2 23456823.60745600 23456754.63945600 -3 34567948.99056700 34567851.47856700 -4 45679080.28867800 45678942.40267800 -5 56790219.95078900 56790024.96278900 -6 67901371.44190000 67901095.69390000 -7 79012539.65901100 79012149.69901100 +1 12345702.40754500 12345653.61714500 +2 23456823.60715600 23456754.63975600 +3 34567948.99036700 34567851.47876700 +4 45679080.28857800 45678942.40277800 +5 56790219.95098900 56790024.96258900 +6 67901371.44150000 67901095.69430000 +7 79012539.65881100 79012149.69921100 8 90123731.53112200 90123180.04912200 -9 101234956.85623300 101234176.94623300 +9 101234956.85653300 101234176.94593300 10 112346229.49134400 112345126.53334400 -11 123457569.03145500 123456009.21545500 -12 134569003.19156600 134566797.27756600 -13 145679035.74067700 145678986.95067700 -14 156790156.94078800 156790087.97278800 -15 167901282.32389900 167901184.81189900 -16 179012413.62201000 179012275.73601000 -17 190123553.28412100 190123358.29612100 -18 201234704.77523200 201234429.02723200 -19 212345872.99234300 212345483.03234300 +11 123457569.03185500 123456009.21505500 +12 134569003.19106600 134566797.27806600 +13 145679035.74087700 145678986.95047700 +14 156790156.94048800 156790087.97308800 +15 167901282.32369900 167901184.81209900 +16 179012413.62191000 179012275.73611000 +17 190123553.28432100 190123358.29592100 +18 201234704.77483200 201234429.02763200 +19 212345872.99214300 212345483.03254300 20 223457064.86445400 223456513.38245400 -21 234568290.18956500 234567510.27956500 +21 234568290.18986500 234567510.27926500 22 245679562.82467600 245678459.86667600 -23 256790902.36478700 256789342.54878700 -24 267902336.52489800 267900130.61089800 +23 256790902.36518700 256789342.54838700 +24 267902336.52439800 267900130.61139800 -- !sql_test_Decimal128V3_DecimalV2_notn_0 -- -1 12345702.40734500 12345653.61734500 -2 23456823.60745600 23456754.63945600 -3 34567948.99056700 34567851.47856700 -4 45679080.28867800 45678942.40267800 -5 56790219.95078900 56790024.96278900 -6 67901371.44190000 67901095.69390000 -7 79012539.65901100 79012149.69901100 +1 12345702.40754500 12345653.61714500 +2 23456823.60715600 23456754.63975600 +3 34567948.99036700 34567851.47876700 +4 45679080.28857800 45678942.40277800 +5 56790219.95098900 56790024.96258900 +6 67901371.44150000 67901095.69430000 +7 79012539.65881100 79012149.69921100 8 90123731.53112200 90123180.04912200 -9 101234956.85623300 101234176.94623300 +9 101234956.85653300 101234176.94593300 10 112346229.49134400 112345126.53334400 -11 123457569.03145500 123456009.21545500 -12 134569003.19156600 134566797.27756600 -13 145679035.74067700 145678986.95067700 -14 156790156.94078800 156790087.97278800 -15 167901282.32389900 167901184.81189900 -16 179012413.62201000 179012275.73601000 -17 190123553.28412100 190123358.29612100 -18 201234704.77523200 201234429.02723200 -19 212345872.99234300 212345483.03234300 +11 123457569.03185500 123456009.21505500 +12 134569003.19106600 134566797.27806600 +13 145679035.74087700 145678986.95047700 +14 156790156.94048800 156790087.97308800 +15 167901282.32369900 167901184.81209900 +16 179012413.62191000 179012275.73611000 +17 190123553.28432100 190123358.29592100 +18 201234704.77483200 201234429.02763200 +19 212345872.99214300 212345483.03254300 20 223457064.86445400 223456513.38245400 -21 234568290.18956500 234567510.27956500 +21 234568290.18986500 234567510.27926500 22 245679562.82467600 245678459.86667600 -23 256790902.36478700 256789342.54878700 -24 267902336.52489800 267900130.61089800 +23 256790902.36518700 256789342.54838700 +24 267902336.52439800 267900130.61139800 -- !sql_test_Decimal128V3_DecimalV2_2 -- \N \N @@ -19941,18 +19941,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.45679165634677E8 1.4567885705667698E8 -14 1.5679034055078802E8 1.56789904362788E8 -15 1.67901541926899E8 1.67900925208899E8 -16 1.7901278071201E8 1.7901190864601E8 -17 1.90124072398121E8 1.9012283918212098E8 -18 2.01235438890232E8 2.01233694912232E8 -19 2.12346911173343E8 2.1234444485134298E8 -20 2.23458533063454E8 2.23455045183454E8 -21 2.34570366528565E8 2.34565433940565E8 -22 2.4568249920567602E8 2.45675523485676E8 -23 2.56795055030787E8 2.56785189882787E8 -24 2.67908209277898E8 2.67894257857898E8 +13 145679165.634677 145678857.056677 +14 156790340.550788 156789904.362788 +15 167901541.926899 167900925.208899 +16 179012780.71201 179011908.64601 +17 190124072.398121 190122839.182121 +18 201235438.890232 201233694.912232 +19 212346911.173343 212344444.851343 +20 223458533.063454 223455045.183454 +21 234570366.528565 234565433.940565 +22 245682499.205676 245675523.485676 +23 256795055.030787 256785189.882787 +24 267908209.277898 267894257.857898 -- !sql_test_Decimal128V3_Char_notn_0 -- 1 \N \N @@ -19967,18 +19967,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.45679165634677E8 1.4567885705667698E8 -14 1.5679034055078802E8 1.56789904362788E8 -15 1.67901541926899E8 1.67900925208899E8 -16 1.7901278071201E8 1.7901190864601E8 -17 1.90124072398121E8 1.9012283918212098E8 -18 2.01235438890232E8 2.01233694912232E8 -19 2.12346911173343E8 2.1234444485134298E8 -20 2.23458533063454E8 2.23455045183454E8 -21 2.34570366528565E8 2.34565433940565E8 -22 2.4568249920567602E8 2.45675523485676E8 -23 2.56795055030787E8 2.56785189882787E8 -24 2.67908209277898E8 2.67894257857898E8 +13 145679165.634677 145678857.056677 +14 156790340.550788 156789904.362788 +15 167901541.926899 167900925.208899 +16 179012780.71201 179011908.64601 +17 190124072.398121 190122839.182121 +18 201235438.890232 201233694.912232 +19 212346911.173343 212344444.851343 +20 223458533.063454 223455045.183454 +21 234570366.528565 234565433.940565 +22 245682499.205676 245675523.485676 +23 256795055.030787 256785189.882787 +24 267908209.277898 267894257.857898 -- !sql_test_Decimal128V3_Char_1 -- \N \N \N \N @@ -19994,18 +19994,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.2476668981513157E10 944195.7064060108 108.99067700038563 -14 3.419498496709072E10 718910.7561729713 164.91678800769466 -15 5.177385648176376E10 544499.215420659 66.42689899937096 -16 7.805528968742278E10 410547.69863521797 304.6280099974575 -17 1.1723164382783492E11 308337.64042977226 394.89412100534923 -18 1.754743287576384E11 230776.4970673162 433.4372319966096 -19 2.618564086433789E11 172196.23229435814 286.4563429794216 -20 3.8969523282395636E11 128133.30110178905 525.103453997534 -21 5.785134049411062E11 95109.46393032015 1144.1885650022614 -22 8.568939965121295E11 70438.32359833135 1128.6656759959178 -23 1.2666362814871636E12 52060.06487825363 320.0167870102414 -24 1.8688013140119219E12 38404.86969324957 6066.72789800385 +13 22476668981.51316 944195.7064060108 108.9906770003856 +14 34194984967.09072 718910.7561729713 164.9167880076947 +15 51773856481.76376 544499.215420659 66.42689899937096 +16 78055289687.42278 410547.698635218 304.6280099974575 +17 117231643827.8349 308337.6404297723 394.8941210053492 +18 175474328757.6384 230776.4970673162 433.4372319966096 +19 261856408643.3789 172196.2322943581 286.4563429794216 +20 389695232823.9564 128133.3011017891 525.103453997534 +21 578513404941.1062 95109.46393032015 1144.188565002261 +22 856893996512.1295 70438.32359833135 1128.665675995918 +23 1266636281487.164 52060.06487825363 320.0167870102414 +24 1868801314011.922 38404.86969324957 6066.72789800385 -- !sql_test_Decimal128V3_Char_notn_1 -- 1 \N \N \N @@ -20020,18 +20020,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.2476668981513157E10 944195.7064060108 108.99067700038563 -14 3.419498496709072E10 718910.7561729713 164.91678800769466 -15 5.177385648176376E10 544499.215420659 66.42689899937096 -16 7.805528968742278E10 410547.69863521797 304.6280099974575 -17 1.1723164382783492E11 308337.64042977226 394.89412100534923 -18 1.754743287576384E11 230776.4970673162 433.4372319966096 -19 2.618564086433789E11 172196.23229435814 286.4563429794216 -20 3.8969523282395636E11 128133.30110178905 525.103453997534 -21 5.785134049411062E11 95109.46393032015 1144.1885650022614 -22 8.568939965121295E11 70438.32359833135 1128.6656759959178 -23 1.2666362814871636E12 52060.06487825363 320.0167870102414 -24 1.8688013140119219E12 38404.86969324957 6066.72789800385 +13 22476668981.51316 944195.7064060108 108.9906770003856 +14 34194984967.09072 718910.7561729713 164.9167880076947 +15 51773856481.76376 544499.215420659 66.42689899937096 +16 78055289687.42278 410547.698635218 304.6280099974575 +17 117231643827.8349 308337.6404297723 394.8941210053492 +18 175474328757.6384 230776.4970673162 433.4372319966096 +19 261856408643.3789 172196.2322943581 286.4563429794216 +20 389695232823.9564 128133.3011017891 525.103453997534 +21 578513404941.1062 95109.46393032015 1144.188565002261 +22 856893996512.1295 70438.32359833135 1128.665675995918 +23 1266636281487.164 52060.06487825363 320.0167870102414 +24 1868801314011.922 38404.86969324957 6066.72789800385 -- !sql_test_Decimal128V3_Char_2 -- \N \N @@ -20153,18 +20153,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568133046667698E8 1.45676692224677E8 -14 1.56793400538788E8 1.5678684437478802E8 -15 1.67905868308899E8 1.67896598826899E8 -16 1.7901889836701E8 1.7900579099101E8 -17 1.9013272352012098E8 1.90114188060121E8 -18 2.01247673038232E8 2.01221460764232E8 -19 2.12364212597343E8 2.1232714342734298E8 -20 2.2348300077745402E8 2.23430577469454E8 -21 2.34604968965565E8 2.3453083150356498E8 -22 2.4573143434467602E8 2.45626588346676E8 -23 2.56864259699787E8 2.56715985213787E8 -24 2.68006079410898E8 2.67796387724898E8 +13 145681330.466677 145676692.224677 +14 156793400.538788 156786844.374788 +15 167905868.308899 167896598.826899 +16 179018898.36701 179005790.99101 +17 190132723.520121 190114188.060121 +18 201247673.038232 201221460.764232 +19 212364212.597343 212327143.427343 +20 223483000.777454 223430577.469454 +21 234604968.965565 234530831.503565 +22 245731434.344676 245626588.346676 +23 256864259.699787 256715985.213787 +24 268006079.410898 267796387.724898 -- !sql_test_Decimal128V3_Varchar_notn_0 -- 1 \N \N @@ -20179,18 +20179,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568133046667698E8 1.45676692224677E8 -14 1.56793400538788E8 1.5678684437478802E8 -15 1.67905868308899E8 1.67896598826899E8 -16 1.7901889836701E8 1.7900579099101E8 -17 1.9013272352012098E8 1.90114188060121E8 -18 2.01247673038232E8 2.01221460764232E8 -19 2.12364212597343E8 2.1232714342734298E8 -20 2.2348300077745402E8 2.23430577469454E8 -21 2.34604968965565E8 2.3453083150356498E8 -22 2.4573143434467602E8 2.45626588346676E8 -23 2.56864259699787E8 2.56715985213787E8 -24 2.68006079410898E8 2.67796387724898E8 +13 145681330.466677 145676692.224677 +14 156793400.538788 156786844.374788 +15 167905868.308899 167896598.826899 +16 179018898.36701 179005790.99101 +17 190132723.520121 190114188.060121 +18 201247673.038232 201221460.764232 +19 212364212.597343 212327143.427343 +20 223483000.777454 223430577.469454 +21 234604968.965565 234530831.503565 +22 245731434.344676 245626588.346676 +23 256864259.699787 256715985.213787 +24 268006079.410898 267796387.724898 -- !sql_test_Decimal128V3_Varchar_1 -- \N \N \N \N @@ -20206,18 +20206,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378472544709978E11 62816.47716771871 1106.6096769824217 -14 5.139708782033925E11 47829.83539056924 2738.4787880091867 -15 7.781787311677178E11 36226.670178096036 3106.101898989251 -16 1.1731910551746917E12 27314.749295207523 4910.647010001023 -17 1.7620128549297778E12 20514.565680066316 5242.57012099804 -18 2.6374078029432124E12 15354.224276858391 2939.403231994558 -19 3.935739018502402E12 11456.72687100051 13472.252342999447 -20 5.857172040454939E12 8525.093041570517 2438.7734540161873 -21 8.695134395029927E12 6327.918272534471 34039.19756499128 -22 1.2879230566095363E13 4686.473800281361 24838.031675988794 -23 1.9037711708578574E13 3463.7128663765793 52849.947786982506 -24 2.8088330674166164E13 2555.191754888155 20104.702898021904 +13 337847254470.9978 62816.47716771871 1106.609676982422 +14 513970878203.3925 47829.83539056924 2738.478788009187 +15 778178731167.7178 36226.67017809604 3106.101898989251 +16 1173191055174.692 27314.74929520752 4910.647010001023 +17 1762012854929.778 20514.56568006632 5242.57012099804 +18 2637407802943.212 15354.22427685839 2939.403231994558 +19 3935739018502.402 11456.72687100051 13472.25234299945 +20 5857172040454.939 8525.093041570517 2438.773454016187 +21 8695134395029.927 6327.918272534471 34039.19756499128 +22 12879230566095.36 4686.473800281361 24838.03167598879 +23 19037711708578.57 3463.712866376579 52849.94778698251 +24 28088330674166.16 2555.191754888155 20104.7028980219 -- !sql_test_Decimal128V3_Varchar_notn_1 -- 1 \N \N \N @@ -20232,18 +20232,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378472544709978E11 62816.47716771871 1106.6096769824217 -14 5.139708782033925E11 47829.83539056924 2738.4787880091867 -15 7.781787311677178E11 36226.670178096036 3106.101898989251 -16 1.1731910551746917E12 27314.749295207523 4910.647010001023 -17 1.7620128549297778E12 20514.565680066316 5242.57012099804 -18 2.6374078029432124E12 15354.224276858391 2939.403231994558 -19 3.935739018502402E12 11456.72687100051 13472.252342999447 -20 5.857172040454939E12 8525.093041570517 2438.7734540161873 -21 8.695134395029927E12 6327.918272534471 34039.19756499128 -22 1.2879230566095363E13 4686.473800281361 24838.031675988794 -23 1.9037711708578574E13 3463.7128663765793 52849.947786982506 -24 2.8088330674166164E13 2555.191754888155 20104.702898021904 +13 337847254470.9978 62816.47716771871 1106.609676982422 +14 513970878203.3925 47829.83539056924 2738.478788009187 +15 778178731167.7178 36226.67017809604 3106.101898989251 +16 1173191055174.692 27314.74929520752 4910.647010001023 +17 1762012854929.778 20514.56568006632 5242.57012099804 +18 2637407802943.212 15354.22427685839 2939.403231994558 +19 3935739018502.402 11456.72687100051 13472.25234299945 +20 5857172040454.939 8525.093041570517 2438.773454016187 +21 8695134395029.927 6327.918272534471 34039.19756499128 +22 12879230566095.36 4686.473800281361 24838.03167598879 +23 19037711708578.57 3463.712866376579 52849.94778698251 +24 28088330674166.16 2555.191754888155 20104.7028980219 -- !sql_test_Decimal128V3_Varchar_2 -- \N \N @@ -20365,18 +20365,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568961536267698E8 1.45668407328677E8 -14 1.5680511124978802E8 1.56775133663788E8 -15 1.67922425580899E8 1.6788004155489898E8 -16 1.7904231093401E8 1.7898237842401E8 -17 1.9016583180212098E8 1.90081079778121E8 -18 2.01294493743232E8 2.01174640059232E8 -19 2.1243042602934298E8 2.12260929995343E8 -20 2.2357663997445402E8 2.23336938272454E8 -21 2.3473739426556498E8 2.34398406203565E8 -22 2.45918711630676E8 2.45439311060676E8 -23 2.5712910951578698E8 2.56451135397787E8 -24 2.68380633428898E8 2.67421833706898E8 +13 145689615.362677 145668407.328677 +14 156805111.249788 156775133.663788 +15 167922425.580899 167880041.554899 +16 179042310.93401 178982378.42401 +17 190165831.802121 190081079.778121 +18 201294493.743232 201174640.059232 +19 212430426.029343 212260929.995343 +20 223576639.974454 223336938.272454 +21 234737394.265565 234398406.203565 +22 245918711.630676 245439311.060676 +23 257129109.515787 256451135.397787 +24 268380633.428898 267421833.706898 -- !sql_test_Decimal128V3_String_notn_0 -- 1 \N \N @@ -20391,18 +20391,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568961536267698E8 1.45668407328677E8 -14 1.5680511124978802E8 1.56775133663788E8 -15 1.67922425580899E8 1.6788004155489898E8 -16 1.7904231093401E8 1.7898237842401E8 -17 1.9016583180212098E8 1.90081079778121E8 -18 2.01294493743232E8 2.01174640059232E8 -19 2.1243042602934298E8 2.12260929995343E8 -20 2.2357663997445402E8 2.23336938272454E8 -21 2.3473739426556498E8 2.34398406203565E8 -22 2.45918711630676E8 2.45439311060676E8 -23 2.5712910951578698E8 2.56451135397787E8 -24 2.68380633428898E8 2.67421833706898E8 +13 145689615.362677 145668407.328677 +14 156805111.249788 156775133.663788 +15 167922425.580899 167880041.554899 +16 179042310.93401 178982378.42401 +17 190165831.802121 190081079.778121 +18 201294493.743232 201174640.059232 +19 212430426.029343 212260929.995343 +20 223576639.974454 223336938.272454 +21 234737394.265565 234398406.203565 +22 245918711.630676 245439311.060676 +23 257129109.515787 256451135.397787 +24 268380633.428898 267421833.706898 -- !sql_test_Decimal128V3_String_1 -- \N \N \N \N @@ -20418,18 +20418,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447827128527517E12 13738.0967368948 1025.7996769907622 -14 2.350094689949447E12 10460.490211372457 7347.676788006946 -15 3.5581651244869517E12 7922.854405945249 18106.581898996563 -16 5.364329568799107E12 5973.79768272712 23903.56400999772 -17 8.056673844043637E12 4486.582073606194 24665.958120978117 -18 1.2059352095628559E13 3358.0038624633685 231.4652320145251 -19 1.799587513006657E13 2505.612349753776 51895.427342971656 -20 2.6781486338173504E13 1864.4572588262558 54802.85945401364 -21 3.9757858953962266E13 1383.9301528828764 157655.36156500623 -22 5.888932903807677E13 1024.9425082897837 225919.5056760013 -23 8.704852839187608E13 757.5219042706494 176918.79378698382 -24 1.2843181413417883E14 558.8262645906316 396111.129898019 +13 1544782712852.752 13738.0967368948 1025.799676990762 +14 2350094689949.447 10460.49021137246 7347.676788006946 +15 3558165124486.952 7922.854405945249 18106.58189899656 +16 5364329568799.107 5973.79768272712 23903.56400999772 +17 8056673844043.637 4486.582073606194 24665.95812097812 +18 12059352095628.56 3358.003862463368 231.4652320145251 +19 17995875130066.57 2505.612349753776 51895.42734297166 +20 26781486338173.5 1864.457258826256 54802.85945401364 +21 39757858953962.27 1383.930152882876 157655.3615650062 +22 58889329038076.77 1024.942508289784 225919.5056760013 +23 87048528391876.08 757.5219042706494 176918.7937869838 +24 128431814134178.8 558.8262645906316 396111.129898019 -- !sql_test_Decimal128V3_String_notn_1 -- 1 \N \N \N @@ -20444,18 +20444,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447827128527517E12 13738.0967368948 1025.7996769907622 -14 2.350094689949447E12 10460.490211372457 7347.676788006946 -15 3.5581651244869517E12 7922.854405945249 18106.581898996563 -16 5.364329568799107E12 5973.79768272712 23903.56400999772 -17 8.056673844043637E12 4486.582073606194 24665.958120978117 -18 1.2059352095628559E13 3358.0038624633685 231.4652320145251 -19 1.799587513006657E13 2505.612349753776 51895.427342971656 -20 2.6781486338173504E13 1864.4572588262558 54802.85945401364 -21 3.9757858953962266E13 1383.9301528828764 157655.36156500623 -22 5.888932903807677E13 1024.9425082897837 225919.5056760013 -23 8.704852839187608E13 757.5219042706494 176918.79378698382 -24 1.2843181413417883E14 558.8262645906316 396111.129898019 +13 1544782712852.752 13738.0967368948 1025.799676990762 +14 2350094689949.447 10460.49021137246 7347.676788006946 +15 3558165124486.952 7922.854405945249 18106.58189899656 +16 5364329568799.107 5973.79768272712 23903.56400999772 +17 8056673844043.637 4486.582073606194 24665.95812097812 +18 12059352095628.56 3358.003862463368 231.4652320145251 +19 17995875130066.57 2505.612349753776 51895.42734297166 +20 26781486338173.5 1864.457258826256 54802.85945401364 +21 39757858953962.27 1383.930152882876 157655.3615650062 +22 58889329038076.77 1024.942508289784 225919.5056760013 +23 87048528391876.08 757.5219042706494 176918.7937869838 +24 128431814134178.8 558.8262645906316 396111.129898019 -- !sql_test_Decimal128V3_String_2 -- \N \N diff --git a/regression-test/data/nereids_arith_p0/integer.out b/regression-test/data/nereids_arith_p0/integer.out index a10ce1b653882b..35f818e6858640 100644 --- a/regression-test/data/nereids_arith_p0/integer.out +++ b/regression-test/data/nereids_arith_p0/integer.out @@ -54,25 +54,25 @@ -- !sql_test_Boolean_TinyInt_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 8 8 0.125 1 9 9 0.1111111111111111 1 10 10 0.1 1 11 11 0.09090909090909091 1 12 12 0.08333333333333333 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 20 8 0.125 1 21 9 0.1111111111111111 1 22 10 0.1 1 @@ -80,25 +80,25 @@ 24 12 0.08333333333333333 1 -- !sql_test_Boolean_TinyInt_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 8 8 0.125 1 9 9 0.1111111111111111 1 10 10 0.1 1 11 11 0.09090909090909091 1 12 12 0.08333333333333333 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 20 8 0.125 1 21 9 0.1111111111111111 1 22 10 0.1 1 @@ -319,56 +319,56 @@ -- !sql_test_Boolean_SmallInt_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 1280 7.8125E-4 1 -9 2560 3.90625E-4 1 -10 5120 1.953125E-4 1 -11 10240 9.765625E-5 1 -12 20480 4.8828125E-5 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 1280 7.8125E-4 1 -21 2560 3.90625E-4 1 -22 5120 1.953125E-4 1 -23 10240 9.765625E-5 1 -24 20480 4.8828125E-5 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 1280 0.00078125 1 +9 2560 0.000390625 1 +10 5120 0.0001953125 1 +11 10240 9.765625000000001e-05 1 +12 20480 4.8828125e-05 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 1280 0.00078125 1 +21 2560 0.000390625 1 +22 5120 0.0001953125 1 +23 10240 9.765625000000001e-05 1 +24 20480 4.8828125e-05 1 -- !sql_test_Boolean_SmallInt_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 1280 7.8125E-4 1 -9 2560 3.90625E-4 1 -10 5120 1.953125E-4 1 -11 10240 9.765625E-5 1 -12 20480 4.8828125E-5 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 1280 7.8125E-4 1 -21 2560 3.90625E-4 1 -22 5120 1.953125E-4 1 -23 10240 9.765625E-5 1 -24 20480 4.8828125E-5 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 1280 0.00078125 1 +9 2560 0.000390625 1 +10 5120 0.0001953125 1 +11 10240 9.765625000000001e-05 1 +12 20480 4.8828125e-05 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 1280 0.00078125 1 +21 2560 0.000390625 1 +22 5120 0.0001953125 1 +23 10240 9.765625000000001e-05 1 +24 20480 4.8828125e-05 1 -- !sql_test_Boolean_SmallInt_2 -- \N \N @@ -584,56 +584,56 @@ -- !sql_test_Boolean_Integer_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 3040045 3.289424992064262E-7 1 -9 6080045 1.6447246689786013E-7 1 -10 12160045 8.22365377759704E-8 1 -11 24320045 4.111834497016761E-8 1 -12 48640045 2.05591915056822E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 3040045 3.289424992064262E-7 1 -21 6080045 1.6447246689786013E-7 1 -22 12160045 8.22365377759704E-8 1 -23 24320045 4.111834497016761E-8 1 -24 48640045 2.05591915056822E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 3040045 3.289424992064262e-07 1 +9 6080045 1.644724668978601e-07 1 +10 12160045 8.22365377759704e-08 1 +11 24320045 4.111834497016761e-08 1 +12 48640045 2.05591915056822e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 3040045 3.289424992064262e-07 1 +21 6080045 1.644724668978601e-07 1 +22 12160045 8.22365377759704e-08 1 +23 24320045 4.111834497016761e-08 1 +24 48640045 2.05591915056822e-08 1 -- !sql_test_Boolean_Integer_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 3040045 3.289424992064262E-7 1 -9 6080045 1.6447246689786013E-7 1 -10 12160045 8.22365377759704E-8 1 -11 24320045 4.111834497016761E-8 1 -12 48640045 2.05591915056822E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 3040045 3.289424992064262E-7 1 -21 6080045 1.6447246689786013E-7 1 -22 12160045 8.22365377759704E-8 1 -23 24320045 4.111834497016761E-8 1 -24 48640045 2.05591915056822E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 3040045 3.289424992064262e-07 1 +9 6080045 1.644724668978601e-07 1 +10 12160045 8.22365377759704e-08 1 +11 24320045 4.111834497016761e-08 1 +12 48640045 2.05591915056822e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 3040045 3.289424992064262e-07 1 +21 6080045 1.644724668978601e-07 1 +22 12160045 8.22365377759704e-08 1 +23 24320045 4.111834497016761e-08 1 +24 48640045 2.05591915056822e-08 1 -- !sql_test_Boolean_Integer_2 -- \N \N @@ -849,56 +849,56 @@ -- !sql_test_Boolean_BigInt_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 684010779 1.4619652653163819E-9 1 -9 1368010779 7.309883923071048E-10 1 -10 2736010779 3.654956360827992E-10 1 -11 5472010779 1.8274817802583865E-10 1 -12 10944010779 9.1374179009295E-11 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 684010779 1.4619652653163819E-9 1 -21 1368010779 7.309883923071048E-10 1 -22 2736010779 3.654956360827992E-10 1 -23 5472010779 1.8274817802583865E-10 1 -24 10944010779 9.1374179009295E-11 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 684010779 1.461965265316382e-09 1 +9 1368010779 7.309883923071048e-10 1 +10 2736010779 3.654956360827992e-10 1 +11 5472010779 1.827481780258387e-10 1 +12 10944010779 9.1374179009295e-11 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 684010779 1.461965265316382e-09 1 +21 1368010779 7.309883923071048e-10 1 +22 2736010779 3.654956360827992e-10 1 +23 5472010779 1.827481780258387e-10 1 +24 10944010779 9.1374179009295e-11 1 -- !sql_test_Boolean_BigInt_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 684010779 1.4619652653163819E-9 1 -9 1368010779 7.309883923071048E-10 1 -10 2736010779 3.654956360827992E-10 1 -11 5472010779 1.8274817802583865E-10 1 -12 10944010779 9.1374179009295E-11 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 684010779 1.4619652653163819E-9 1 -21 1368010779 7.309883923071048E-10 1 -22 2736010779 3.654956360827992E-10 1 -23 5472010779 1.8274817802583865E-10 1 -24 10944010779 9.1374179009295E-11 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 684010779 1.461965265316382e-09 1 +9 1368010779 7.309883923071048e-10 1 +10 2736010779 3.654956360827992e-10 1 +11 5472010779 1.827481780258387e-10 1 +12 10944010779 9.1374179009295e-11 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 684010779 1.461965265316382e-09 1 +21 1368010779 7.309883923071048e-10 1 +22 2736010779 3.654956360827992e-10 1 +23 5472010779 1.827481780258387e-10 1 +24 10944010779 9.1374179009295e-11 1 -- !sql_test_Boolean_BigInt_2 -- \N \N @@ -1114,56 +1114,56 @@ -- !sql_test_Boolean_LargeInt_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 13680215645 7.309826291850094E-11 1 -9 27360215645 3.654941952852433E-11 1 -10 54720215645 1.8274781782432063E-11 1 -11 109440215645 9.137408895864936E-12 1 -12 218880215645 4.5687089491079984E-12 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 13680215645 7.309826291850094E-11 1 -21 27360215645 3.654941952852433E-11 1 -22 54720215645 1.8274781782432063E-11 1 -23 109440215645 9.137408895864936E-12 1 -24 218880215645 4.5687089491079984E-12 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 13680215645 7.309826291850094e-11 1 +9 27360215645 3.654941952852433e-11 1 +10 54720215645 1.827478178243206e-11 1 +11 109440215645 9.137408895864936e-12 1 +12 218880215645 4.568708949107998e-12 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 13680215645 7.309826291850094e-11 1 +21 27360215645 3.654941952852433e-11 1 +22 54720215645 1.827478178243206e-11 1 +23 109440215645 9.137408895864936e-12 1 +24 218880215645 4.568708949107998e-12 1 -- !sql_test_Boolean_LargeInt_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 13680215645 7.309826291850094E-11 1 -9 27360215645 3.654941952852433E-11 1 -10 54720215645 1.8274781782432063E-11 1 -11 109440215645 9.137408895864936E-12 1 -12 218880215645 4.5687089491079984E-12 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 13680215645 7.309826291850094E-11 1 -21 27360215645 3.654941952852433E-11 1 -22 54720215645 1.8274781782432063E-11 1 -23 109440215645 9.137408895864936E-12 1 -24 218880215645 4.5687089491079984E-12 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 13680215645 7.309826291850094e-11 1 +9 27360215645 3.654941952852433e-11 1 +10 54720215645 1.827478178243206e-11 1 +11 109440215645 9.137408895864936e-12 1 +12 218880215645 4.568708949107998e-12 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 13680215645 7.309826291850094e-11 1 +21 27360215645 3.654941952852433e-11 1 +22 54720215645 1.827478178243206e-11 1 +23 109440215645 9.137408895864936e-12 1 +24 218880215645 4.568708949107998e-12 1 -- !sql_test_Boolean_LargeInt_3 -- \N \N \N \N @@ -1273,109 +1273,109 @@ -- !sql_test_Boolean_Float_0 -- \N \N \N -1 0.10000000149011612 -0.10000000149011612 -2 0.20000000298023224 -0.20000000298023224 -3 0.30000001192092896 -0.30000001192092896 +1 0.1000000014901161 -0.1000000014901161 +2 0.2000000029802322 -0.2000000029802322 +3 0.300000011920929 -0.300000011920929 4 0.4000000059604645 -0.4000000059604645 5 0.5 -0.5 6 0.6000000238418579 -0.6000000238418579 7 0.699999988079071 -0.699999988079071 -8 1.800000011920929 0.19999998807907104 -9 1.899999976158142 0.10000002384185791 -10 2.0 0.0 -11 2.100000023841858 -0.10000002384185791 -12 2.200000047683716 -0.20000004768371582 -13 0.10000000149011612 -0.10000000149011612 -14 0.20000000298023224 -0.20000000298023224 -15 0.30000001192092896 -0.30000001192092896 +8 1.800000011920929 0.199999988079071 +9 1.899999976158142 0.1000000238418579 +10 2 0 +11 2.100000023841858 -0.1000000238418579 +12 2.200000047683716 -0.2000000476837158 +13 0.1000000014901161 -0.1000000014901161 +14 0.2000000029802322 -0.2000000029802322 +15 0.300000011920929 -0.300000011920929 16 0.4000000059604645 -0.4000000059604645 17 0.5 -0.5 18 0.6000000238418579 -0.6000000238418579 19 0.699999988079071 -0.699999988079071 -20 1.800000011920929 0.19999998807907104 -21 1.899999976158142 0.10000002384185791 -22 2.0 0.0 -23 2.100000023841858 -0.10000002384185791 -24 2.200000047683716 -0.20000004768371582 +20 1.800000011920929 0.199999988079071 +21 1.899999976158142 0.1000000238418579 +22 2 0 +23 2.100000023841858 -0.1000000238418579 +24 2.200000047683716 -0.2000000476837158 -- !sql_test_Boolean_Float_notn_0 -- -1 0.10000000149011612 -0.10000000149011612 -2 0.20000000298023224 -0.20000000298023224 -3 0.30000001192092896 -0.30000001192092896 +1 0.1000000014901161 -0.1000000014901161 +2 0.2000000029802322 -0.2000000029802322 +3 0.300000011920929 -0.300000011920929 4 0.4000000059604645 -0.4000000059604645 5 0.5 -0.5 6 0.6000000238418579 -0.6000000238418579 7 0.699999988079071 -0.699999988079071 -8 1.800000011920929 0.19999998807907104 -9 1.899999976158142 0.10000002384185791 -10 2.0 0.0 -11 2.100000023841858 -0.10000002384185791 -12 2.200000047683716 -0.20000004768371582 -13 0.10000000149011612 -0.10000000149011612 -14 0.20000000298023224 -0.20000000298023224 -15 0.30000001192092896 -0.30000001192092896 +8 1.800000011920929 0.199999988079071 +9 1.899999976158142 0.1000000238418579 +10 2 0 +11 2.100000023841858 -0.1000000238418579 +12 2.200000047683716 -0.2000000476837158 +13 0.1000000014901161 -0.1000000014901161 +14 0.2000000029802322 -0.2000000029802322 +15 0.300000011920929 -0.300000011920929 16 0.4000000059604645 -0.4000000059604645 17 0.5 -0.5 18 0.6000000238418579 -0.6000000238418579 19 0.699999988079071 -0.699999988079071 -20 1.800000011920929 0.19999998807907104 -21 1.899999976158142 0.10000002384185791 -22 2.0 0.0 -23 2.100000023841858 -0.10000002384185791 -24 2.200000047683716 -0.20000004768371582 +20 1.800000011920929 0.199999988079071 +21 1.899999976158142 0.1000000238418579 +22 2 0 +23 2.100000023841858 -0.1000000238418579 +24 2.200000047683716 -0.2000000476837158 -- !sql_test_Boolean_Float_1 -- \N \N \N \N -1 0.0 0.0 0.0 -2 0.0 0.0 0.0 -3 0.0 0.0 0.0 -4 0.0 0.0 0.0 -5 0.0 0.0 0.0 -6 0.0 0.0 0.0 -7 0.0 0.0 0.0 -8 0.800000011920929 1.2499999813735487 0.19999998807907104 -9 0.8999999761581421 1.1111111405455043 0.10000002384185791 -10 1.0 1.0 0.0 -11 1.100000023841858 0.9090908893868948 1.0 -12 1.2000000476837158 0.8333333002196431 1.0 -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 0.800000011920929 1.2499999813735487 0.19999998807907104 -21 0.8999999761581421 1.1111111405455043 0.10000002384185791 -22 1.0 1.0 0.0 -23 1.100000023841858 0.9090908893868948 1.0 -24 1.2000000476837158 0.8333333002196431 1.0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 0.800000011920929 1.249999981373549 0.199999988079071 +9 0.8999999761581421 1.111111140545504 0.1000000238418579 +10 1 1 0 +11 1.100000023841858 0.9090908893868948 1 +12 1.200000047683716 0.8333333002196431 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 0.800000011920929 1.249999981373549 0.199999988079071 +21 0.8999999761581421 1.111111140545504 0.1000000238418579 +22 1 1 0 +23 1.100000023841858 0.9090908893868948 1 +24 1.200000047683716 0.8333333002196431 1 -- !sql_test_Boolean_Float_notn_1 -- -1 0.0 0.0 0.0 -2 0.0 0.0 0.0 -3 0.0 0.0 0.0 -4 0.0 0.0 0.0 -5 0.0 0.0 0.0 -6 0.0 0.0 0.0 -7 0.0 0.0 0.0 -8 0.800000011920929 1.2499999813735487 0.19999998807907104 -9 0.8999999761581421 1.1111111405455043 0.10000002384185791 -10 1.0 1.0 0.0 -11 1.100000023841858 0.9090908893868948 1.0 -12 1.2000000476837158 0.8333333002196431 1.0 -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 0.800000011920929 1.2499999813735487 0.19999998807907104 -21 0.8999999761581421 1.1111111405455043 0.10000002384185791 -22 1.0 1.0 0.0 -23 1.100000023841858 0.9090908893868948 1.0 -24 1.2000000476837158 0.8333333002196431 1.0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 0.800000011920929 1.249999981373549 0.199999988079071 +9 0.8999999761581421 1.111111140545504 0.1000000238418579 +10 1 1 0 +11 1.100000023841858 0.9090908893868948 1 +12 1.200000047683716 0.8333333002196431 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 0.800000011920929 1.249999981373549 0.199999988079071 +21 0.8999999761581421 1.111111140545504 0.1000000238418579 +22 1 1 0 +23 1.100000023841858 0.9090908893868948 1 +24 1.200000047683716 0.8333333002196431 1 -- !sql_test_Boolean_Float_3 -- \N \N \N \N @@ -1493,9 +1493,9 @@ 6 2.8548 -2.8548 7 4.0218 -4.0218 8 6.6745 -4.6745 -9 9.0141 -7.014099999999999 +9 9.014099999999999 -7.014099999999999 10 12.3248 -10.3248 -11 17.0086 -15.008600000000001 +11 17.0086 -15.0086 12 23.634 -21.634 13 0.5244 -0.5244 14 0.7416 -0.7416 @@ -1505,9 +1505,9 @@ 18 2.8548 -2.8548 19 4.0218 -4.0218 20 6.6745 -4.6745 -21 9.0141 -7.014099999999999 +21 9.014099999999999 -7.014099999999999 22 12.3248 -10.3248 -23 17.0086 -15.008600000000001 +23 17.0086 -15.0086 24 23.634 -21.634 -- !sql_test_Boolean_Double_notn_0 -- @@ -1519,9 +1519,9 @@ 6 2.8548 -2.8548 7 4.0218 -4.0218 8 6.6745 -4.6745 -9 9.0141 -7.014099999999999 +9 9.014099999999999 -7.014099999999999 10 12.3248 -10.3248 -11 17.0086 -15.008600000000001 +11 17.0086 -15.0086 12 23.634 -21.634 13 0.5244 -0.5244 14 0.7416 -0.7416 @@ -1531,63 +1531,63 @@ 18 2.8548 -2.8548 19 4.0218 -4.0218 20 6.6745 -4.6745 -21 9.0141 -7.014099999999999 +21 9.014099999999999 -7.014099999999999 22 12.3248 -10.3248 -23 17.0086 -15.008600000000001 +23 17.0086 -15.0086 24 23.634 -21.634 -- !sql_test_Boolean_Double_1 -- \N \N \N \N -1 0.0 0.0 0.0 -2 0.0 0.0 0.0 -3 0.0 0.0 0.0 -4 0.0 0.0 0.0 -5 0.0 0.0 0.0 -6 0.0 0.0 0.0 -7 0.0 0.0 0.0 -8 5.6745 0.17622698035069168 1.0 -9 8.0141 0.12478007511760524 1.0 -10 11.3248 0.08830178016388811 1.0 -11 16.0086 0.06246642429694039 1.0 -12 22.634 0.04418132013784572 1.0 -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 5.6745 0.17622698035069168 1.0 -21 8.0141 0.12478007511760524 1.0 -22 11.3248 0.08830178016388811 1.0 -23 16.0086 0.06246642429694039 1.0 -24 22.634 0.04418132013784572 1.0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 5.6745 0.1762269803506917 1 +9 8.014099999999999 0.1247800751176052 1 +10 11.3248 0.08830178016388811 1 +11 16.0086 0.06246642429694039 1 +12 22.634 0.04418132013784572 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 5.6745 0.1762269803506917 1 +21 8.014099999999999 0.1247800751176052 1 +22 11.3248 0.08830178016388811 1 +23 16.0086 0.06246642429694039 1 +24 22.634 0.04418132013784572 1 -- !sql_test_Boolean_Double_notn_1 -- -1 0.0 0.0 0.0 -2 0.0 0.0 0.0 -3 0.0 0.0 0.0 -4 0.0 0.0 0.0 -5 0.0 0.0 0.0 -6 0.0 0.0 0.0 -7 0.0 0.0 0.0 -8 5.6745 0.17622698035069168 1.0 -9 8.0141 0.12478007511760524 1.0 -10 11.3248 0.08830178016388811 1.0 -11 16.0086 0.06246642429694039 1.0 -12 22.634 0.04418132013784572 1.0 -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 5.6745 0.17622698035069168 1.0 -21 8.0141 0.12478007511760524 1.0 -22 11.3248 0.08830178016388811 1.0 -23 16.0086 0.06246642429694039 1.0 -24 22.634 0.04418132013784572 1.0 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 5.6745 0.1762269803506917 1 +9 8.014099999999999 0.1247800751176052 1 +10 11.3248 0.08830178016388811 1 +11 16.0086 0.06246642429694039 1 +12 22.634 0.04418132013784572 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 5.6745 0.1762269803506917 1 +21 8.014099999999999 0.1247800751176052 1 +22 11.3248 0.08830178016388811 1 +23 16.0086 0.06246642429694039 1 +24 22.634 0.04418132013784572 1 -- !sql_test_Boolean_Double_3 -- \N \N \N \N @@ -1697,56 +1697,56 @@ -- !sql_test_Boolean_DecimalV2_0 -- \N \N \N -1 24.395000000 -24.395000000 -2 34.484000000 -34.484000000 -3 48.756000000 -48.756000000 -4 68.943000000 -68.943000000 -5 97.494000000 -97.494000000 -6 137.874000000 -137.874000000 -7 194.980000000 -194.980000000 +1 24.395200000 -24.395200000 +2 34.483700000 -34.483700000 +3 48.755800000 -48.755800000 +4 68.942900000 -68.942900000 +5 97.494200000 -97.494200000 +6 137.873600000 -137.873600000 +7 194.979800000 -194.979800000 8 276.741000000 -274.741000000 -9 390.955000000 -388.955000000 +9 390.955300000 -388.955300000 10 552.479000000 -550.479000000 -11 780.908000000 -778.908000000 -12 1103.957000000 -1101.957000000 -13 24.395000000 -24.395000000 -14 34.484000000 -34.484000000 -15 48.756000000 -48.756000000 -16 68.943000000 -68.943000000 -17 97.494000000 -97.494000000 -18 137.874000000 -137.874000000 -19 194.980000000 -194.980000000 +11 780.908400000 -778.908400000 +12 1103.956500000 -1101.956500000 +13 24.395200000 -24.395200000 +14 34.483700000 -34.483700000 +15 48.755800000 -48.755800000 +16 68.942900000 -68.942900000 +17 97.494200000 -97.494200000 +18 137.873600000 -137.873600000 +19 194.979800000 -194.979800000 20 276.741000000 -274.741000000 -21 390.955000000 -388.955000000 +21 390.955300000 -388.955300000 22 552.479000000 -550.479000000 -23 780.908000000 -778.908000000 -24 1103.957000000 -1101.957000000 +23 780.908400000 -778.908400000 +24 1103.956500000 -1101.956500000 -- !sql_test_Boolean_DecimalV2_notn_0 -- -1 24.395000000 -24.395000000 -2 34.484000000 -34.484000000 -3 48.756000000 -48.756000000 -4 68.943000000 -68.943000000 -5 97.494000000 -97.494000000 -6 137.874000000 -137.874000000 -7 194.980000000 -194.980000000 +1 24.395200000 -24.395200000 +2 34.483700000 -34.483700000 +3 48.755800000 -48.755800000 +4 68.942900000 -68.942900000 +5 97.494200000 -97.494200000 +6 137.873600000 -137.873600000 +7 194.979800000 -194.979800000 8 276.741000000 -274.741000000 -9 390.955000000 -388.955000000 +9 390.955300000 -388.955300000 10 552.479000000 -550.479000000 -11 780.908000000 -778.908000000 -12 1103.957000000 -1101.957000000 -13 24.395000000 -24.395000000 -14 34.484000000 -34.484000000 -15 48.756000000 -48.756000000 -16 68.943000000 -68.943000000 -17 97.494000000 -97.494000000 -18 137.874000000 -137.874000000 -19 194.980000000 -194.980000000 +11 780.908400000 -778.908400000 +12 1103.956500000 -1101.956500000 +13 24.395200000 -24.395200000 +14 34.483700000 -34.483700000 +15 48.755800000 -48.755800000 +16 68.942900000 -68.942900000 +17 97.494200000 -97.494200000 +18 137.873600000 -137.873600000 +19 194.979800000 -194.979800000 20 276.741000000 -274.741000000 -21 390.955000000 -388.955000000 +21 390.955300000 -388.955300000 22 552.479000000 -550.479000000 -23 780.908000000 -778.908000000 -24 1103.957000000 -1101.957000000 +23 780.908400000 -778.908400000 +24 1103.956500000 -1101.956500000 -- !sql_test_Boolean_DecimalV2_1 -- \N \N \N \N @@ -1758,10 +1758,10 @@ 6 0E-9 0E-9 0E-9 7 0E-9 0E-9 0E-9 8 275.741000000 0.003626592 1.000000000 -9 389.955000000 0.002564398 1.000000000 +9 389.955300000 0.002564396 1.000000000 10 551.479000000 0.001813306 1.000000000 -11 779.908000000 0.001282203 1.000000000 -12 1102.957000000 0.000906654 1.000000000 +11 779.908400000 0.001282202 1.000000000 +12 1102.956500000 0.000906654 1.000000000 13 0E-9 0E-9 0E-9 14 0E-9 0E-9 0E-9 15 0E-9 0E-9 0E-9 @@ -1770,10 +1770,10 @@ 18 0E-9 0E-9 0E-9 19 0E-9 0E-9 0E-9 20 275.741000000 0.003626592 1.000000000 -21 389.955000000 0.002564398 1.000000000 +21 389.955300000 0.002564396 1.000000000 22 551.479000000 0.001813306 1.000000000 -23 779.908000000 0.001282203 1.000000000 -24 1102.957000000 0.000906654 1.000000000 +23 779.908400000 0.001282202 1.000000000 +24 1102.956500000 0.000906654 1.000000000 -- !sql_test_Boolean_DecimalV2_notn_1 -- 1 0E-9 0E-9 0E-9 @@ -1784,10 +1784,10 @@ 6 0E-9 0E-9 0E-9 7 0E-9 0E-9 0E-9 8 275.741000000 0.003626592 1.000000000 -9 389.955000000 0.002564398 1.000000000 +9 389.955300000 0.002564396 1.000000000 10 551.479000000 0.001813306 1.000000000 -11 779.908000000 0.001282203 1.000000000 -12 1102.957000000 0.000906654 1.000000000 +11 779.908400000 0.001282202 1.000000000 +12 1102.956500000 0.000906654 1.000000000 13 0E-9 0E-9 0E-9 14 0E-9 0E-9 0E-9 15 0E-9 0E-9 0E-9 @@ -1796,10 +1796,10 @@ 18 0E-9 0E-9 0E-9 19 0E-9 0E-9 0E-9 20 275.741000000 0.003626592 1.000000000 -21 389.955000000 0.002564398 1.000000000 +21 389.955300000 0.002564396 1.000000000 22 551.479000000 0.001813306 1.000000000 -23 779.908000000 0.001282203 1.000000000 -24 1102.957000000 0.000906654 1.000000000 +23 779.908400000 0.001282202 1.000000000 +24 1102.956500000 0.000906654 1.000000000 -- !sql_test_Boolean_DecimalV2_2 -- \N \N @@ -2402,7 +2402,7 @@ 14 218.094 -218.094 15 308.359 -308.359 16 436.033 -436.033 -17 616.608 -616.608 +17 616.6079999999999 -616.6079999999999 18 871.989 -871.989 19 1233.161 -1233.161 20 1744.94 -1742.94 @@ -2428,7 +2428,7 @@ 14 218.094 -218.094 15 308.359 -308.359 16 436.033 -436.033 -17 616.608 -616.608 +17 616.6079999999999 -616.6079999999999 18 871.989 -871.989 19 1233.161 -1233.161 20 1744.94 -1742.94 @@ -2451,18 +2451,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 1743.94 5.734142229663864E-4 1.0 -21 2466.294 4.0546666374730673E-4 1.0 -22 3487.86 2.8670875551197584E-4 1.0 -23 4932.574 2.0273390728654046E-4 1.0 -24 6975.71 1.4335458326105872E-4 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 1743.94 0.0005734142229663864 1 +21 2466.294 0.0004054666637473067 1 +22 3487.86 0.0002867087555119758 1 +23 4932.574 0.0002027339072865405 1 +24 6975.71 0.0001433545832610587 1 -- !sql_test_Boolean_Char_notn_1 -- 1 \N \N \N @@ -2477,18 +2477,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 1743.94 5.734142229663864E-4 1.0 -21 2466.294 4.0546666374730673E-4 1.0 -22 3487.86 2.8670875551197584E-4 1.0 -23 4932.574 2.0273390728654046E-4 1.0 -24 6975.71 1.4335458326105872E-4 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 1743.94 0.0005734142229663864 1 +21 2466.294 0.0004054666637473067 1 +22 3487.86 0.0002867087555119758 1 +23 4932.574 0.0002027339072865405 1 +24 6975.71 0.0001433545832610587 1 -- !sql_test_Boolean_Char_3 -- \N \N \N \N @@ -2610,18 +2610,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 26211.654 3.815096903079829E-5 1.0 -21 37068.731 2.697691485581203E-5 1.0 -22 52422.999 1.907559695316172E-5 1.0 -23 74137.243 1.3488497272551665E-5 1.0 -24 104845.843 9.537812576889673E-6 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 26211.654 3.815096903079829e-05 1 +21 37068.731 2.697691485581203e-05 1 +22 52422.999 1.907559695316172e-05 1 +23 74137.243 1.348849727255166e-05 1 +24 104845.843 9.537812576889673e-06 1 -- !sql_test_Boolean_Varchar_notn_1 -- 1 \N \N \N @@ -2636,18 +2636,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 26211.654 3.815096903079829E-5 1.0 -21 37068.731 2.697691485581203E-5 1.0 -22 52422.999 1.907559695316172E-5 1.0 -23 74137.243 1.3488497272551665E-5 1.0 -24 104845.843 9.537812576889673E-6 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 26211.654 3.815096903079829e-05 1 +21 37068.731 2.697691485581203e-05 1 +22 52422.999 1.907559695316172e-05 1 +23 74137.243 1.348849727255166e-05 1 +24 104845.843 9.537812576889673e-06 1 -- !sql_test_Boolean_Varchar_3 -- \N \N \N \N @@ -2722,7 +2722,7 @@ 16 29966.255 -29966.255 17 42376.012 -42376.012 18 59926.842 -59926.842 -19 84748.017 -84748.017 +19 84748.01700000001 -84748.01700000001 20 119851.851 -119849.851 21 169495.031 -169493.031 22 239701.285 -239699.285 @@ -2748,7 +2748,7 @@ 16 29966.255 -29966.255 17 42376.012 -42376.012 18 59926.842 -59926.842 -19 84748.017 -84748.017 +19 84748.01700000001 -84748.01700000001 20 119851.851 -119849.851 21 169495.031 -169493.031 22 239701.285 -239699.285 @@ -2769,18 +2769,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 119850.851 8.343703792307657E-6 1.0 -21 169494.031 5.899912782179333E-6 1.0 -22 239700.285 4.17187655826108E-6 1.0 -23 338987.059 2.949965119464929E-6 1.0 -24 479399.861 2.0859413640923024E-6 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 119850.851 8.343703792307657e-06 1 +21 169494.031 5.899912782179333e-06 1 +22 239700.285 4.17187655826108e-06 1 +23 338987.059 2.949965119464929e-06 1 +24 479399.861 2.085941364092302e-06 1 -- !sql_test_Boolean_String_notn_1 -- 1 \N \N \N @@ -2795,18 +2795,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 0.0 0.0 -14 0.0 0.0 0.0 -15 0.0 0.0 0.0 -16 0.0 0.0 0.0 -17 0.0 0.0 0.0 -18 0.0 0.0 0.0 -19 0.0 0.0 0.0 -20 119850.851 8.343703792307657E-6 1.0 -21 169494.031 5.899912782179333E-6 1.0 -22 239700.285 4.17187655826108E-6 1.0 -23 338987.059 2.949965119464929E-6 1.0 -24 479399.861 2.0859413640923024E-6 1.0 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 119850.851 8.343703792307657e-06 1 +21 169494.031 5.899912782179333e-06 1 +22 239700.285 4.17187655826108e-06 1 +23 338987.059 2.949965119464929e-06 1 +24 479399.861 2.085941364092302e-06 1 -- !sql_test_Boolean_String_3 -- \N \N \N \N @@ -2916,56 +2916,56 @@ -- !sql_test_Boolean_Date_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308 4.970102843356076E-8 1 -9 20120309 4.9701025963368655E-8 1 -10 20120310 4.9701023493176794E-8 1 -11 20120311 4.970102102298518E-8 1 -12 20120312 4.9701018552793814E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308 4.970102843356076E-8 1 -21 20120309 4.9701025963368655E-8 1 -22 20120310 4.9701023493176794E-8 1 -23 20120311 4.970102102298518E-8 1 -24 20120312 4.9701018552793814E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308 4.970102843356076e-08 1 +9 20120309 4.970102596336866e-08 1 +10 20120310 4.970102349317679e-08 1 +11 20120311 4.970102102298518e-08 1 +12 20120312 4.970101855279381e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308 4.970102843356076e-08 1 +21 20120309 4.970102596336866e-08 1 +22 20120310 4.970102349317679e-08 1 +23 20120311 4.970102102298518e-08 1 +24 20120312 4.970101855279381e-08 1 -- !sql_test_Boolean_Date_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308 4.970102843356076E-8 1 -9 20120309 4.9701025963368655E-8 1 -10 20120310 4.9701023493176794E-8 1 -11 20120311 4.970102102298518E-8 1 -12 20120312 4.9701018552793814E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308 4.970102843356076E-8 1 -21 20120309 4.9701025963368655E-8 1 -22 20120310 4.9701023493176794E-8 1 -23 20120311 4.970102102298518E-8 1 -24 20120312 4.9701018552793814E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308 4.970102843356076e-08 1 +9 20120309 4.970102596336866e-08 1 +10 20120310 4.970102349317679e-08 1 +11 20120311 4.970102102298518e-08 1 +12 20120312 4.970101855279381e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308 4.970102843356076e-08 1 +21 20120309 4.970102596336866e-08 1 +22 20120310 4.970102349317679e-08 1 +23 20120311 4.970102102298518e-08 1 +24 20120312 4.970101855279381e-08 1 -- !sql_test_Boolean_Date_2 -- \N \N @@ -3181,56 +3181,56 @@ -- !sql_test_Boolean_DateTime_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308080708 4.9701028234196486E-14 1 -9 20120309090809 4.970102573905299E-14 1 -10 20120310100910 4.970102324390975E-14 1 -11 20120311111011 4.970102074876676E-14 1 -12 20120312121112 4.970101825362401E-14 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308080708 4.9701028234196486E-14 1 -21 20120309090809 4.970102573905299E-14 1 -22 20120310100910 4.970102324390975E-14 1 -23 20120311111011 4.970102074876676E-14 1 -24 20120312121112 4.970101825362401E-14 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308080708 4.970102823419649e-14 1 +9 20120309090809 4.970102573905299e-14 1 +10 20120310100910 4.970102324390975e-14 1 +11 20120311111011 4.970102074876676e-14 1 +12 20120312121112 4.970101825362401e-14 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308080708 4.970102823419649e-14 1 +21 20120309090809 4.970102573905299e-14 1 +22 20120310100910 4.970102324390975e-14 1 +23 20120311111011 4.970102074876676e-14 1 +24 20120312121112 4.970101825362401e-14 1 -- !sql_test_Boolean_DateTime_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308080708 4.9701028234196486E-14 1 -9 20120309090809 4.970102573905299E-14 1 -10 20120310100910 4.970102324390975E-14 1 -11 20120311111011 4.970102074876676E-14 1 -12 20120312121112 4.970101825362401E-14 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308080708 4.9701028234196486E-14 1 -21 20120309090809 4.970102573905299E-14 1 -22 20120310100910 4.970102324390975E-14 1 -23 20120311111011 4.970102074876676E-14 1 -24 20120312121112 4.970101825362401E-14 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308080708 4.970102823419649e-14 1 +9 20120309090809 4.970102573905299e-14 1 +10 20120310100910 4.970102324390975e-14 1 +11 20120311111011 4.970102074876676e-14 1 +12 20120312121112 4.970101825362401e-14 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308080708 4.970102823419649e-14 1 +21 20120309090809 4.970102573905299e-14 1 +22 20120310100910 4.970102324390975e-14 1 +23 20120311111011 4.970102074876676e-14 1 +24 20120312121112 4.970101825362401e-14 1 -- !sql_test_Boolean_DateTime_2 -- \N \N @@ -3446,56 +3446,56 @@ -- !sql_test_Boolean_DateV2_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308 4.970102843356076E-8 1 -9 20120309 4.9701025963368655E-8 1 -10 20120310 4.9701023493176794E-8 1 -11 20120311 4.970102102298518E-8 1 -12 20120312 4.9701018552793814E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308 4.970102843356076E-8 1 -21 20120309 4.9701025963368655E-8 1 -22 20120310 4.9701023493176794E-8 1 -23 20120311 4.970102102298518E-8 1 -24 20120312 4.9701018552793814E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308 4.970102843356076e-08 1 +9 20120309 4.970102596336866e-08 1 +10 20120310 4.970102349317679e-08 1 +11 20120311 4.970102102298518e-08 1 +12 20120312 4.970101855279381e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308 4.970102843356076e-08 1 +21 20120309 4.970102596336866e-08 1 +22 20120310 4.970102349317679e-08 1 +23 20120311 4.970102102298518e-08 1 +24 20120312 4.970101855279381e-08 1 -- !sql_test_Boolean_DateV2_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308 4.970102843356076E-8 1 -9 20120309 4.9701025963368655E-8 1 -10 20120310 4.9701023493176794E-8 1 -11 20120311 4.970102102298518E-8 1 -12 20120312 4.9701018552793814E-8 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308 4.970102843356076E-8 1 -21 20120309 4.9701025963368655E-8 1 -22 20120310 4.9701023493176794E-8 1 -23 20120311 4.970102102298518E-8 1 -24 20120312 4.9701018552793814E-8 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308 4.970102843356076e-08 1 +9 20120309 4.970102596336866e-08 1 +10 20120310 4.970102349317679e-08 1 +11 20120311 4.970102102298518e-08 1 +12 20120312 4.970101855279381e-08 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308 4.970102843356076e-08 1 +21 20120309 4.970102596336866e-08 1 +22 20120310 4.970102349317679e-08 1 +23 20120311 4.970102102298518e-08 1 +24 20120312 4.970101855279381e-08 1 -- !sql_test_Boolean_DateV2_2 -- \N \N @@ -3711,56 +3711,56 @@ -- !sql_test_Boolean_DateTimeV2_1 -- \N \N \N \N -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308080708 4.9701028234196486E-14 1 -9 20120309090809 4.970102573905299E-14 1 -10 20120310100910 4.970102324390975E-14 1 -11 20120311111011 4.970102074876676E-14 1 -12 20120312121112 4.970101825362401E-14 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308080708 4.9701028234196486E-14 1 -21 20120309090809 4.970102573905299E-14 1 -22 20120310100910 4.970102324390975E-14 1 -23 20120311111011 4.970102074876676E-14 1 -24 20120312121112 4.970101825362401E-14 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308080708 4.970102823419649e-14 1 +9 20120309090809 4.970102573905299e-14 1 +10 20120310100910 4.970102324390975e-14 1 +11 20120311111011 4.970102074876676e-14 1 +12 20120312121112 4.970101825362401e-14 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308080708 4.970102823419649e-14 1 +21 20120309090809 4.970102573905299e-14 1 +22 20120310100910 4.970102324390975e-14 1 +23 20120311111011 4.970102074876676e-14 1 +24 20120312121112 4.970101825362401e-14 1 -- !sql_test_Boolean_DateTimeV2_notn_1 -- -1 0 0.0 0 -2 0 0.0 0 -3 0 0.0 0 -4 0 0.0 0 -5 0 0.0 0 -6 0 0.0 0 -7 0 0.0 0 -8 20120308080708 4.9701028234196486E-14 1 -9 20120309090809 4.970102573905299E-14 1 -10 20120310100910 4.970102324390975E-14 1 -11 20120311111011 4.970102074876676E-14 1 -12 20120312121112 4.970101825362401E-14 1 -13 0 0.0 0 -14 0 0.0 0 -15 0 0.0 0 -16 0 0.0 0 -17 0 0.0 0 -18 0 0.0 0 -19 0 0.0 0 -20 20120308080708 4.9701028234196486E-14 1 -21 20120309090809 4.970102573905299E-14 1 -22 20120310100910 4.970102324390975E-14 1 -23 20120311111011 4.970102074876676E-14 1 -24 20120312121112 4.970101825362401E-14 1 +1 0 0 0 +2 0 0 0 +3 0 0 0 +4 0 0 0 +5 0 0 0 +6 0 0 0 +7 0 0 0 +8 20120308080708 4.970102823419649e-14 1 +9 20120309090809 4.970102573905299e-14 1 +10 20120310100910 4.970102324390975e-14 1 +11 20120311111011 4.970102074876676e-14 1 +12 20120312121112 4.970101825362401e-14 1 +13 0 0 0 +14 0 0 0 +15 0 0 0 +16 0 0 0 +17 0 0 0 +18 0 0 0 +19 0 0 0 +20 20120308080708 4.970102823419649e-14 1 +21 20120309090809 4.970102573905299e-14 1 +22 20120310100910 4.970102324390975e-14 1 +23 20120311111011 4.970102074876676e-14 1 +24 20120312121112 4.970101825362401e-14 1 -- !sql_test_Boolean_DateTimeV2_2 -- \N \N @@ -3983,11 +3983,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 1 1.0 0 -9 1 1.0 0 -10 1 1.0 0 -11 1 1.0 0 -12 1 1.0 0 +8 1 1 0 +9 1 1 0 +10 1 1 0 +11 1 1 0 +12 1 1 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -3995,11 +3995,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 1 1.0 0 -21 1 1.0 0 -22 1 1.0 0 -23 1 1.0 0 -24 1 1.0 0 +20 1 1 0 +21 1 1 0 +22 1 1 0 +23 1 1 0 +24 1 1 0 -- !sql_test_Boolean_Boolean_notn_1 -- 1 0 \N \N @@ -4009,11 +4009,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 1 1.0 0 -9 1 1.0 0 -10 1 1.0 0 -11 1 1.0 0 -12 1 1.0 0 +8 1 1 0 +9 1 1 0 +10 1 1 0 +11 1 1 0 +12 1 1 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -4021,11 +4021,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 1 1.0 0 -21 1 1.0 0 -22 1 1.0 0 -23 1 1.0 0 -24 1 1.0 0 +20 1 1 0 +21 1 1 0 +22 1 1 0 +23 1 1 0 +24 1 1 0 -- !sql_test_Boolean_Boolean_2 -- \N \N @@ -4241,56 +4241,56 @@ -- !sql_test_TinyInt_TinyInt_1 -- \N \N \N \N -1 1 1.0 0 -2 4 1.0 0 -3 9 1.0 0 -4 16 1.0 0 -5 25 1.0 0 -6 36 1.0 0 -7 49 1.0 0 -8 64 1.0 0 -9 81 1.0 0 -10 100 1.0 0 -11 121 1.0 0 -12 144 1.0 0 -13 1 1.0 0 -14 4 1.0 0 -15 9 1.0 0 -16 16 1.0 0 -17 25 1.0 0 -18 36 1.0 0 -19 49 1.0 0 -20 64 1.0 0 -21 81 1.0 0 -22 100 1.0 0 -23 121 1.0 0 -24 144 1.0 0 +1 1 1 0 +2 4 1 0 +3 9 1 0 +4 16 1 0 +5 25 1 0 +6 36 1 0 +7 49 1 0 +8 64 1 0 +9 81 1 0 +10 100 1 0 +11 121 1 0 +12 144 1 0 +13 1 1 0 +14 4 1 0 +15 9 1 0 +16 16 1 0 +17 25 1 0 +18 36 1 0 +19 49 1 0 +20 64 1 0 +21 81 1 0 +22 100 1 0 +23 121 1 0 +24 144 1 0 -- !sql_test_TinyInt_TinyInt_notn_1 -- -1 1 1.0 0 -2 4 1.0 0 -3 9 1.0 0 -4 16 1.0 0 -5 25 1.0 0 -6 36 1.0 0 -7 49 1.0 0 -8 64 1.0 0 -9 81 1.0 0 -10 100 1.0 0 -11 121 1.0 0 -12 144 1.0 0 -13 1 1.0 0 -14 4 1.0 0 -15 9 1.0 0 -16 16 1.0 0 -17 25 1.0 0 -18 36 1.0 0 -19 49 1.0 0 -20 64 1.0 0 -21 81 1.0 0 -22 100 1.0 0 -23 121 1.0 0 -24 144 1.0 0 +1 1 1 0 +2 4 1 0 +3 9 1 0 +4 16 1 0 +5 25 1 0 +6 36 1 0 +7 49 1 0 +8 64 1 0 +9 81 1 0 +10 100 1 0 +11 121 1 0 +12 144 1 0 +13 1 1 0 +14 4 1 0 +15 9 1 0 +16 16 1 0 +17 25 1 0 +18 36 1 0 +19 49 1 0 +20 64 1 0 +21 81 1 0 +22 100 1 0 +23 121 1 0 +24 144 1 0 -- !sql_test_TinyInt_TinyInt_2 -- \N \N @@ -4517,7 +4517,7 @@ 9 23040 0.003515625 9 10 51200 0.001953125 10 11 112640 0.00107421875 11 -12 245760 5.859375E-4 12 +12 245760 0.0005859375 12 13 10 0.1 1 14 40 0.1 2 15 120 0.075 3 @@ -4529,7 +4529,7 @@ 21 23040 0.003515625 9 22 51200 0.001953125 10 23 112640 0.00107421875 11 -24 245760 5.859375E-4 12 +24 245760 0.0005859375 12 -- !sql_test_TinyInt_SmallInt_notn_1 -- 1 10 0.1 1 @@ -4543,7 +4543,7 @@ 9 23040 0.003515625 9 10 51200 0.001953125 10 11 112640 0.00107421875 11 -12 245760 5.859375E-4 12 +12 245760 0.0005859375 12 13 10 0.1 1 14 40 0.1 2 15 120 0.075 3 @@ -4555,7 +4555,7 @@ 21 23040 0.003515625 9 22 51200 0.001953125 10 23 112640 0.00107421875 11 -24 245760 5.859375E-4 12 +24 245760 0.0005859375 12 -- !sql_test_TinyInt_SmallInt_3 -- \N \N \N \N @@ -4718,56 +4718,56 @@ -- !sql_test_TinyInt_Integer_1 -- \N \N \N \N -1 23795 4.202563563773902E-5 1 -2 95090 4.206541171521716E-5 2 -3 285135 3.156399600189384E-5 3 -4 760180 2.1047646610013417E-5 4 -5 1900225 1.3156336749595442E-5 5 -6 4560270 7.894269418258129E-6 6 -7 10640315 4.605126821903299E-6 7 -8 24320360 2.6315399936514097E-6 8 -9 54720405 1.4802522020807412E-6 9 -10 121600450 8.22365377759704E-7 10 -11 267520495 4.5230179467184376E-7 11 -12 583680540 2.467102980681864E-7 12 -13 23795 4.202563563773902E-5 1 -14 95090 4.206541171521716E-5 2 -15 285135 3.156399600189384E-5 3 -16 760180 2.1047646610013417E-5 4 -17 1900225 1.3156336749595442E-5 5 -18 4560270 7.894269418258129E-6 6 -19 10640315 4.605126821903299E-6 7 -20 24320360 2.6315399936514097E-6 8 -21 54720405 1.4802522020807412E-6 9 -22 121600450 8.22365377759704E-7 10 -23 267520495 4.5230179467184376E-7 11 -24 583680540 2.467102980681864E-7 12 +1 23795 4.202563563773902e-05 1 +2 95090 4.206541171521716e-05 2 +3 285135 3.156399600189384e-05 3 +4 760180 2.104764661001342e-05 4 +5 1900225 1.315633674959544e-05 5 +6 4560270 7.894269418258129e-06 6 +7 10640315 4.605126821903299e-06 7 +8 24320360 2.63153999365141e-06 8 +9 54720405 1.480252202080741e-06 9 +10 121600450 8.22365377759704e-07 10 +11 267520495 4.523017946718438e-07 11 +12 583680540 2.467102980681864e-07 12 +13 23795 4.202563563773902e-05 1 +14 95090 4.206541171521716e-05 2 +15 285135 3.156399600189384e-05 3 +16 760180 2.104764661001342e-05 4 +17 1900225 1.315633674959544e-05 5 +18 4560270 7.894269418258129e-06 6 +19 10640315 4.605126821903299e-06 7 +20 24320360 2.63153999365141e-06 8 +21 54720405 1.480252202080741e-06 9 +22 121600450 8.22365377759704e-07 10 +23 267520495 4.523017946718438e-07 11 +24 583680540 2.467102980681864e-07 12 -- !sql_test_TinyInt_Integer_notn_1 -- -1 23795 4.202563563773902E-5 1 -2 95090 4.206541171521716E-5 2 -3 285135 3.156399600189384E-5 3 -4 760180 2.1047646610013417E-5 4 -5 1900225 1.3156336749595442E-5 5 -6 4560270 7.894269418258129E-6 6 -7 10640315 4.605126821903299E-6 7 -8 24320360 2.6315399936514097E-6 8 -9 54720405 1.4802522020807412E-6 9 -10 121600450 8.22365377759704E-7 10 -11 267520495 4.5230179467184376E-7 11 -12 583680540 2.467102980681864E-7 12 -13 23795 4.202563563773902E-5 1 -14 95090 4.206541171521716E-5 2 -15 285135 3.156399600189384E-5 3 -16 760180 2.1047646610013417E-5 4 -17 1900225 1.3156336749595442E-5 5 -18 4560270 7.894269418258129E-6 6 -19 10640315 4.605126821903299E-6 7 -20 24320360 2.6315399936514097E-6 8 -21 54720405 1.4802522020807412E-6 9 -22 121600450 8.22365377759704E-7 10 -23 267520495 4.5230179467184376E-7 11 -24 583680540 2.467102980681864E-7 12 +1 23795 4.202563563773902e-05 1 +2 95090 4.206541171521716e-05 2 +3 285135 3.156399600189384e-05 3 +4 760180 2.104764661001342e-05 4 +5 1900225 1.315633674959544e-05 5 +6 4560270 7.894269418258129e-06 6 +7 10640315 4.605126821903299e-06 7 +8 24320360 2.63153999365141e-06 8 +9 54720405 1.480252202080741e-06 9 +10 121600450 8.22365377759704e-07 10 +11 267520495 4.523017946718438e-07 11 +12 583680540 2.467102980681864e-07 12 +13 23795 4.202563563773902e-05 1 +14 95090 4.206541171521716e-05 2 +15 285135 3.156399600189384e-05 3 +16 760180 2.104764661001342e-05 4 +17 1900225 1.315633674959544e-05 5 +18 4560270 7.894269418258129e-06 6 +19 10640315 4.605126821903299e-06 7 +20 24320360 2.63153999365141e-06 8 +21 54720405 1.480252202080741e-06 9 +22 121600450 8.22365377759704e-07 10 +23 267520495 4.523017946718438e-07 11 +24 583680540 2.467102980681864e-07 12 -- !sql_test_TinyInt_Integer_3 -- \N \N \N \N @@ -4930,56 +4930,56 @@ -- !sql_test_TinyInt_BigInt_1 -- \N \N \N \N -1 5354529 1.8675778952733284E-7 1 -2 21396558 1.8694595644776137E-7 2 -3 64157337 1.4028013662724187E-7 3 -4 171043116 9.354366532938981E-8 4 -5 427553895 5.8472160568201586E-8 5 -6 1026064674 3.508550768019132E-8 6 -7 2394075453 2.046719118171419E-8 7 -8 5472086232 1.1695722122531055E-8 8 -9 12312097011 6.578895530763943E-9 9 -10 27360107790 3.6549563608279924E-9 10 -11 60192118569 2.010229958284225E-9 11 -12 131328129348 1.0964901481115399E-9 12 -13 5354529 1.8675778952733284E-7 1 -14 21396558 1.8694595644776137E-7 2 -15 64157337 1.4028013662724187E-7 3 -16 171043116 9.354366532938981E-8 4 -17 427553895 5.8472160568201586E-8 5 -18 1026064674 3.508550768019132E-8 6 -19 2394075453 2.046719118171419E-8 7 -20 5472086232 1.1695722122531055E-8 8 -21 12312097011 6.578895530763943E-9 9 -22 27360107790 3.6549563608279924E-9 10 -23 60192118569 2.010229958284225E-9 11 -24 131328129348 1.0964901481115399E-9 12 +1 5354529 1.867577895273328e-07 1 +2 21396558 1.869459564477614e-07 2 +3 64157337 1.402801366272419e-07 3 +4 171043116 9.354366532938981e-08 4 +5 427553895 5.847216056820159e-08 5 +6 1026064674 3.508550768019132e-08 6 +7 2394075453 2.046719118171419e-08 7 +8 5472086232 1.169572212253105e-08 8 +9 12312097011 6.578895530763943e-09 9 +10 27360107790 3.654956360827992e-09 10 +11 60192118569 2.010229958284225e-09 11 +12 131328129348 1.09649014811154e-09 12 +13 5354529 1.867577895273328e-07 1 +14 21396558 1.869459564477614e-07 2 +15 64157337 1.402801366272419e-07 3 +16 171043116 9.354366532938981e-08 4 +17 427553895 5.847216056820159e-08 5 +18 1026064674 3.508550768019132e-08 6 +19 2394075453 2.046719118171419e-08 7 +20 5472086232 1.169572212253105e-08 8 +21 12312097011 6.578895530763943e-09 9 +22 27360107790 3.654956360827992e-09 10 +23 60192118569 2.010229958284225e-09 11 +24 131328129348 1.09649014811154e-09 12 -- !sql_test_TinyInt_BigInt_notn_1 -- -1 5354529 1.8675778952733284E-7 1 -2 21396558 1.8694595644776137E-7 2 -3 64157337 1.4028013662724187E-7 3 -4 171043116 9.354366532938981E-8 4 -5 427553895 5.8472160568201586E-8 5 -6 1026064674 3.508550768019132E-8 6 -7 2394075453 2.046719118171419E-8 7 -8 5472086232 1.1695722122531055E-8 8 -9 12312097011 6.578895530763943E-9 9 -10 27360107790 3.6549563608279924E-9 10 -11 60192118569 2.010229958284225E-9 11 -12 131328129348 1.0964901481115399E-9 12 -13 5354529 1.8675778952733284E-7 1 -14 21396558 1.8694595644776137E-7 2 -15 64157337 1.4028013662724187E-7 3 -16 171043116 9.354366532938981E-8 4 -17 427553895 5.8472160568201586E-8 5 -18 1026064674 3.508550768019132E-8 6 -19 2394075453 2.046719118171419E-8 7 -20 5472086232 1.1695722122531055E-8 8 -21 12312097011 6.578895530763943E-9 9 -22 27360107790 3.6549563608279924E-9 10 -23 60192118569 2.010229958284225E-9 11 -24 131328129348 1.0964901481115399E-9 12 +1 5354529 1.867577895273328e-07 1 +2 21396558 1.869459564477614e-07 2 +3 64157337 1.402801366272419e-07 3 +4 171043116 9.354366532938981e-08 4 +5 427553895 5.847216056820159e-08 5 +6 1026064674 3.508550768019132e-08 6 +7 2394075453 2.046719118171419e-08 7 +8 5472086232 1.169572212253105e-08 8 +9 12312097011 6.578895530763943e-09 9 +10 27360107790 3.654956360827992e-09 10 +11 60192118569 2.010229958284225e-09 11 +12 131328129348 1.09649014811154e-09 12 +13 5354529 1.867577895273328e-07 1 +14 21396558 1.869459564477614e-07 2 +15 64157337 1.402801366272419e-07 3 +16 171043116 9.354366532938981e-08 4 +17 427553895 5.847216056820159e-08 5 +18 1026064674 3.508550768019132e-08 6 +19 2394075453 2.046719118171419e-08 7 +20 5472086232 1.169572212253105e-08 8 +21 12312097011 6.578895530763943e-09 9 +22 27360107790 3.654956360827992e-09 10 +23 60192118569 2.010229958284225e-09 11 +24 131328129348 1.09649014811154e-09 12 -- !sql_test_TinyInt_BigInt_3 -- \N \N \N \N @@ -5142,56 +5142,56 @@ -- !sql_test_TinyInt_LargeInt_1 -- \N \N \N \N -1 107090645 9.33788380861839E-9 1 -2 427931290 9.347294982799691E-9 2 -3 1283146935 7.0140057654425994E-9 3 -4 3420862580 4.6771829109838136E-9 4 -5 8551078225 2.9236079172927928E-9 5 -6 20521293870 1.7542753506701768E-9 6 -7 47881509515 1.023359549361108E-9 7 -8 109441725160 5.847861033480075E-10 8 -9 246241940805 3.28944775756719E-10 9 -10 547202156450 1.8274781782432062E-10 10 -11 1203842372095 1.0051149785451431E-10 11 -12 2626562587740 5.482450738929598E-11 12 -13 107090645 9.33788380861839E-9 1 -14 427931290 9.347294982799691E-9 2 -15 1283146935 7.0140057654425994E-9 3 -16 3420862580 4.6771829109838136E-9 4 -17 8551078225 2.9236079172927928E-9 5 -18 20521293870 1.7542753506701768E-9 6 -19 47881509515 1.023359549361108E-9 7 -20 109441725160 5.847861033480075E-10 8 -21 246241940805 3.28944775756719E-10 9 -22 547202156450 1.8274781782432062E-10 10 -23 1203842372095 1.0051149785451431E-10 11 -24 2626562587740 5.482450738929598E-11 12 +1 107090645 9.33788380861839e-09 1 +2 427931290 9.347294982799691e-09 2 +3 1283146935 7.014005765442599e-09 3 +4 3420862580 4.677182910983814e-09 4 +5 8551078225 2.923607917292793e-09 5 +6 20521293870 1.754275350670177e-09 6 +7 47881509515 1.023359549361108e-09 7 +8 109441725160 5.847861033480075e-10 8 +9 246241940805 3.28944775756719e-10 9 +10 547202156450 1.827478178243206e-10 10 +11 1203842372095 1.005114978545143e-10 11 +12 2626562587740 5.482450738929598e-11 12 +13 107090645 9.33788380861839e-09 1 +14 427931290 9.347294982799691e-09 2 +15 1283146935 7.014005765442599e-09 3 +16 3420862580 4.677182910983814e-09 4 +17 8551078225 2.923607917292793e-09 5 +18 20521293870 1.754275350670177e-09 6 +19 47881509515 1.023359549361108e-09 7 +20 109441725160 5.847861033480075e-10 8 +21 246241940805 3.28944775756719e-10 9 +22 547202156450 1.827478178243206e-10 10 +23 1203842372095 1.005114978545143e-10 11 +24 2626562587740 5.482450738929598e-11 12 -- !sql_test_TinyInt_LargeInt_notn_1 -- -1 107090645 9.33788380861839E-9 1 -2 427931290 9.347294982799691E-9 2 -3 1283146935 7.0140057654425994E-9 3 -4 3420862580 4.6771829109838136E-9 4 -5 8551078225 2.9236079172927928E-9 5 -6 20521293870 1.7542753506701768E-9 6 -7 47881509515 1.023359549361108E-9 7 -8 109441725160 5.847861033480075E-10 8 -9 246241940805 3.28944775756719E-10 9 -10 547202156450 1.8274781782432062E-10 10 -11 1203842372095 1.0051149785451431E-10 11 -12 2626562587740 5.482450738929598E-11 12 -13 107090645 9.33788380861839E-9 1 -14 427931290 9.347294982799691E-9 2 -15 1283146935 7.0140057654425994E-9 3 -16 3420862580 4.6771829109838136E-9 4 -17 8551078225 2.9236079172927928E-9 5 -18 20521293870 1.7542753506701768E-9 6 -19 47881509515 1.023359549361108E-9 7 -20 109441725160 5.847861033480075E-10 8 -21 246241940805 3.28944775756719E-10 9 -22 547202156450 1.8274781782432062E-10 10 -23 1203842372095 1.0051149785451431E-10 11 -24 2626562587740 5.482450738929598E-11 12 +1 107090645 9.33788380861839e-09 1 +2 427931290 9.347294982799691e-09 2 +3 1283146935 7.014005765442599e-09 3 +4 3420862580 4.677182910983814e-09 4 +5 8551078225 2.923607917292793e-09 5 +6 20521293870 1.754275350670177e-09 6 +7 47881509515 1.023359549361108e-09 7 +8 109441725160 5.847861033480075e-10 8 +9 246241940805 3.28944775756719e-10 9 +10 547202156450 1.827478178243206e-10 10 +11 1203842372095 1.005114978545143e-10 11 +12 2626562587740 5.482450738929598e-11 12 +13 107090645 9.33788380861839e-09 1 +14 427931290 9.347294982799691e-09 2 +15 1283146935 7.014005765442599e-09 3 +16 3420862580 4.677182910983814e-09 4 +17 8551078225 2.923607917292793e-09 5 +18 20521293870 1.754275350670177e-09 6 +19 47881509515 1.023359549361108e-09 7 +20 109441725160 5.847861033480075e-10 8 +21 246241940805 3.28944775756719e-10 9 +22 547202156450 1.827478178243206e-10 10 +23 1203842372095 1.005114978545143e-10 11 +24 2626562587740 5.482450738929598e-11 12 -- !sql_test_TinyInt_LargeInt_3 -- \N \N \N \N @@ -5301,109 +5301,109 @@ -- !sql_test_TinyInt_Float_0 -- \N \N \N -1 1.1000000014901161 0.8999999985098839 -2 2.2000000029802322 1.7999999970197678 +1 1.100000001490116 0.8999999985098839 +2 2.200000002980232 1.799999997019768 3 3.300000011920929 2.699999988079071 -4 4.4000000059604645 3.5999999940395355 +4 4.400000005960464 3.599999994039536 5 5.5 4.5 6 6.600000023841858 5.399999976158142 7 7.699999988079071 6.300000011920929 8 8.800000011920929 7.199999988079071 9 9.899999976158142 8.100000023841858 -10 11.0 9.0 -11 12.100000023841858 9.899999976158142 -12 13.200000047683716 10.799999952316284 -13 1.1000000014901161 0.8999999985098839 -14 2.2000000029802322 1.7999999970197678 +10 11 9 +11 12.10000002384186 9.899999976158142 +12 13.20000004768372 10.79999995231628 +13 1.100000001490116 0.8999999985098839 +14 2.200000002980232 1.799999997019768 15 3.300000011920929 2.699999988079071 -16 4.4000000059604645 3.5999999940395355 +16 4.400000005960464 3.599999994039536 17 5.5 4.5 18 6.600000023841858 5.399999976158142 19 7.699999988079071 6.300000011920929 20 8.800000011920929 7.199999988079071 21 9.899999976158142 8.100000023841858 -22 11.0 9.0 -23 12.100000023841858 9.899999976158142 -24 13.200000047683716 10.799999952316284 +22 11 9 +23 12.10000002384186 9.899999976158142 +24 13.20000004768372 10.79999995231628 -- !sql_test_TinyInt_Float_notn_0 -- -1 1.1000000014901161 0.8999999985098839 -2 2.2000000029802322 1.7999999970197678 +1 1.100000001490116 0.8999999985098839 +2 2.200000002980232 1.799999997019768 3 3.300000011920929 2.699999988079071 -4 4.4000000059604645 3.5999999940395355 +4 4.400000005960464 3.599999994039536 5 5.5 4.5 6 6.600000023841858 5.399999976158142 7 7.699999988079071 6.300000011920929 8 8.800000011920929 7.199999988079071 9 9.899999976158142 8.100000023841858 -10 11.0 9.0 -11 12.100000023841858 9.899999976158142 -12 13.200000047683716 10.799999952316284 -13 1.1000000014901161 0.8999999985098839 -14 2.2000000029802322 1.7999999970197678 +10 11 9 +11 12.10000002384186 9.899999976158142 +12 13.20000004768372 10.79999995231628 +13 1.100000001490116 0.8999999985098839 +14 2.200000002980232 1.799999997019768 15 3.300000011920929 2.699999988079071 -16 4.4000000059604645 3.5999999940395355 +16 4.400000005960464 3.599999994039536 17 5.5 4.5 18 6.600000023841858 5.399999976158142 19 7.699999988079071 6.300000011920929 20 8.800000011920929 7.199999988079071 21 9.899999976158142 8.100000023841858 -22 11.0 9.0 -23 12.100000023841858 9.899999976158142 -24 13.200000047683716 10.799999952316284 +22 11 9 +23 12.10000002384186 9.899999976158142 +24 13.20000004768372 10.79999995231628 -- !sql_test_TinyInt_Float_1 -- \N \N \N \N -1 0.10000000149011612 9.99999985098839 0.09999998658895493 -2 0.4000000059604645 9.99999985098839 0.19999997317790985 +1 0.1000000014901161 9.99999985098839 0.09999998658895493 +2 0.4000000059604645 9.99999985098839 0.1999999731779099 3 0.9000000357627869 9.999999602635718 0.2999998927116394 4 1.600000023841858 9.99999985098839 0.3999999463558197 -5 2.5 10.0 0.0 -6 3.6000001430511475 9.999999602635718 0.5999997854232788 -7 4.899999916553497 10.000000170298987 1.1920928955078125E-7 +5 2.5 10 0 +6 3.600000143051147 9.999999602635718 0.5999997854232788 +7 4.899999916553497 10.00000017029899 1.192092895507812e-07 8 6.400000095367432 9.99999985098839 0.7999998927116394 -9 8.099999785423279 10.00000026490954 2.384185791015625E-7 -10 10.0 10.0 0.0 -11 12.100000262260437 9.999999783255841 1.0999997854232788 -12 14.40000057220459 9.999999602635718 1.1999995708465576 -13 0.10000000149011612 9.99999985098839 0.09999998658895493 -14 0.4000000059604645 9.99999985098839 0.19999997317790985 +9 8.099999785423279 10.00000026490954 2.384185791015625e-07 +10 10 10 0 +11 12.10000026226044 9.999999783255841 1.099999785423279 +12 14.40000057220459 9.999999602635718 1.199999570846558 +13 0.1000000014901161 9.99999985098839 0.09999998658895493 +14 0.4000000059604645 9.99999985098839 0.1999999731779099 15 0.9000000357627869 9.999999602635718 0.2999998927116394 16 1.600000023841858 9.99999985098839 0.3999999463558197 -17 2.5 10.0 0.0 -18 3.6000001430511475 9.999999602635718 0.5999997854232788 -19 4.899999916553497 10.000000170298987 1.1920928955078125E-7 +17 2.5 10 0 +18 3.600000143051147 9.999999602635718 0.5999997854232788 +19 4.899999916553497 10.00000017029899 1.192092895507812e-07 20 6.400000095367432 9.99999985098839 0.7999998927116394 -21 8.099999785423279 10.00000026490954 2.384185791015625E-7 -22 10.0 10.0 0.0 -23 12.100000262260437 9.999999783255841 1.0999997854232788 -24 14.40000057220459 9.999999602635718 1.1999995708465576 +21 8.099999785423279 10.00000026490954 2.384185791015625e-07 +22 10 10 0 +23 12.10000026226044 9.999999783255841 1.099999785423279 +24 14.40000057220459 9.999999602635718 1.199999570846558 -- !sql_test_TinyInt_Float_notn_1 -- -1 0.10000000149011612 9.99999985098839 0.09999998658895493 -2 0.4000000059604645 9.99999985098839 0.19999997317790985 +1 0.1000000014901161 9.99999985098839 0.09999998658895493 +2 0.4000000059604645 9.99999985098839 0.1999999731779099 3 0.9000000357627869 9.999999602635718 0.2999998927116394 4 1.600000023841858 9.99999985098839 0.3999999463558197 -5 2.5 10.0 0.0 -6 3.6000001430511475 9.999999602635718 0.5999997854232788 -7 4.899999916553497 10.000000170298987 1.1920928955078125E-7 +5 2.5 10 0 +6 3.600000143051147 9.999999602635718 0.5999997854232788 +7 4.899999916553497 10.00000017029899 1.192092895507812e-07 8 6.400000095367432 9.99999985098839 0.7999998927116394 -9 8.099999785423279 10.00000026490954 2.384185791015625E-7 -10 10.0 10.0 0.0 -11 12.100000262260437 9.999999783255841 1.0999997854232788 -12 14.40000057220459 9.999999602635718 1.1999995708465576 -13 0.10000000149011612 9.99999985098839 0.09999998658895493 -14 0.4000000059604645 9.99999985098839 0.19999997317790985 +9 8.099999785423279 10.00000026490954 2.384185791015625e-07 +10 10 10 0 +11 12.10000026226044 9.999999783255841 1.099999785423279 +12 14.40000057220459 9.999999602635718 1.199999570846558 +13 0.1000000014901161 9.99999985098839 0.09999998658895493 +14 0.4000000059604645 9.99999985098839 0.1999999731779099 15 0.9000000357627869 9.999999602635718 0.2999998927116394 16 1.600000023841858 9.99999985098839 0.3999999463558197 -17 2.5 10.0 0.0 -18 3.6000001430511475 9.999999602635718 0.5999997854232788 -19 4.899999916553497 10.000000170298987 1.1920928955078125E-7 +17 2.5 10 0 +18 3.600000143051147 9.999999602635718 0.5999997854232788 +19 4.899999916553497 10.00000017029899 1.192092895507812e-07 20 6.400000095367432 9.99999985098839 0.7999998927116394 -21 8.099999785423279 10.00000026490954 2.384185791015625E-7 -22 10.0 10.0 0.0 -23 12.100000262260437 9.999999783255841 1.0999997854232788 -24 14.40000057220459 9.999999602635718 1.1999995708465576 +21 8.099999785423279 10.00000026490954 2.384185791015625e-07 +22 10 10 0 +23 12.10000026226044 9.999999783255841 1.099999785423279 +24 14.40000057220459 9.999999602635718 1.199999570846558 -- !sql_test_TinyInt_Float_3 -- \N \N \N \N @@ -5515,107 +5515,107 @@ \N \N \N 1 1.5244 0.4756 2 2.7416 1.2584 -3 4.0367999999999995 1.9632 +3 4.036799999999999 1.9632 4 5.4491 2.5509 5 7.031000000000001 2.969 6 8.854800000000001 3.1452 -7 11.021799999999999 2.9782 +7 11.0218 2.9782 8 13.6745 2.3255 9 17.0141 0.9859000000000009 -10 21.3248 -1.3247999999999998 +10 21.3248 -1.3248 11 27.0086 -5.008600000000001 12 34.634 -10.634 13 1.5244 0.4756 14 2.7416 1.2584 -15 4.0367999999999995 1.9632 +15 4.036799999999999 1.9632 16 5.4491 2.5509 17 7.031000000000001 2.969 18 8.854800000000001 3.1452 -19 11.021799999999999 2.9782 +19 11.0218 2.9782 20 13.6745 2.3255 21 17.0141 0.9859000000000009 -22 21.3248 -1.3247999999999998 +22 21.3248 -1.3248 23 27.0086 -5.008600000000001 24 34.634 -10.634 -- !sql_test_TinyInt_Double_notn_0 -- 1 1.5244 0.4756 2 2.7416 1.2584 -3 4.0367999999999995 1.9632 +3 4.036799999999999 1.9632 4 5.4491 2.5509 5 7.031000000000001 2.969 6 8.854800000000001 3.1452 -7 11.021799999999999 2.9782 +7 11.0218 2.9782 8 13.6745 2.3255 9 17.0141 0.9859000000000009 -10 21.3248 -1.3247999999999998 +10 21.3248 -1.3248 11 27.0086 -5.008600000000001 12 34.634 -10.634 13 1.5244 0.4756 14 2.7416 1.2584 -15 4.0367999999999995 1.9632 +15 4.036799999999999 1.9632 16 5.4491 2.5509 17 7.031000000000001 2.969 18 8.854800000000001 3.1452 -19 11.021799999999999 2.9782 +19 11.0218 2.9782 20 13.6745 2.3255 21 17.0141 0.9859000000000009 -22 21.3248 -1.3247999999999998 +22 21.3248 -1.3248 23 27.0086 -5.008600000000001 24 34.634 -10.634 -- !sql_test_TinyInt_Double_1 -- \N \N \N \N -1 0.5244 1.9069412662090008 0.4756 +1 0.5244 1.906941266209001 0.4756 2 1.4832 2.696871628910464 0.5167999999999999 -3 3.1104 2.8935185185185186 0.9264000000000001 +3 3.1104 2.893518518518519 0.9264000000000001 4 5.7964 2.76033400041405 1.1018 -5 10.155000000000001 2.461841457410143 0.9379999999999997 +5 10.155 2.461841457410143 0.9379999999999997 6 17.1288 2.101723413198823 0.2904 7 28.1526 1.740514197622955 2.9782 -8 45.396 1.4098158428055334 2.3255 -9 72.12689999999999 1.1230206760584471 0.9859000000000009 -10 113.24799999999999 0.8830178016388811 10.0 -11 176.0946 0.6871306672663443 11.0 -12 271.608 0.5301758416541487 12.0 -13 0.5244 1.9069412662090008 0.4756 +8 45.396 1.409815842805533 2.3255 +9 72.12689999999999 1.123020676058447 0.9859000000000009 +10 113.248 0.8830178016388811 10 +11 176.0946 0.6871306672663443 11 +12 271.608 0.5301758416541487 12 +13 0.5244 1.906941266209001 0.4756 14 1.4832 2.696871628910464 0.5167999999999999 -15 3.1104 2.8935185185185186 0.9264000000000001 +15 3.1104 2.893518518518519 0.9264000000000001 16 5.7964 2.76033400041405 1.1018 -17 10.155000000000001 2.461841457410143 0.9379999999999997 +17 10.155 2.461841457410143 0.9379999999999997 18 17.1288 2.101723413198823 0.2904 19 28.1526 1.740514197622955 2.9782 -20 45.396 1.4098158428055334 2.3255 -21 72.12689999999999 1.1230206760584471 0.9859000000000009 -22 113.24799999999999 0.8830178016388811 10.0 -23 176.0946 0.6871306672663443 11.0 -24 271.608 0.5301758416541487 12.0 +20 45.396 1.409815842805533 2.3255 +21 72.12689999999999 1.123020676058447 0.9859000000000009 +22 113.248 0.8830178016388811 10 +23 176.0946 0.6871306672663443 11 +24 271.608 0.5301758416541487 12 -- !sql_test_TinyInt_Double_notn_1 -- -1 0.5244 1.9069412662090008 0.4756 +1 0.5244 1.906941266209001 0.4756 2 1.4832 2.696871628910464 0.5167999999999999 -3 3.1104 2.8935185185185186 0.9264000000000001 +3 3.1104 2.893518518518519 0.9264000000000001 4 5.7964 2.76033400041405 1.1018 -5 10.155000000000001 2.461841457410143 0.9379999999999997 +5 10.155 2.461841457410143 0.9379999999999997 6 17.1288 2.101723413198823 0.2904 7 28.1526 1.740514197622955 2.9782 -8 45.396 1.4098158428055334 2.3255 -9 72.12689999999999 1.1230206760584471 0.9859000000000009 -10 113.24799999999999 0.8830178016388811 10.0 -11 176.0946 0.6871306672663443 11.0 -12 271.608 0.5301758416541487 12.0 -13 0.5244 1.9069412662090008 0.4756 +8 45.396 1.409815842805533 2.3255 +9 72.12689999999999 1.123020676058447 0.9859000000000009 +10 113.248 0.8830178016388811 10 +11 176.0946 0.6871306672663443 11 +12 271.608 0.5301758416541487 12 +13 0.5244 1.906941266209001 0.4756 14 1.4832 2.696871628910464 0.5167999999999999 -15 3.1104 2.8935185185185186 0.9264000000000001 +15 3.1104 2.893518518518519 0.9264000000000001 16 5.7964 2.76033400041405 1.1018 -17 10.155000000000001 2.461841457410143 0.9379999999999997 +17 10.155 2.461841457410143 0.9379999999999997 18 17.1288 2.101723413198823 0.2904 19 28.1526 1.740514197622955 2.9782 -20 45.396 1.4098158428055334 2.3255 -21 72.12689999999999 1.1230206760584471 0.9859000000000009 -22 113.24799999999999 0.8830178016388811 10.0 -23 176.0946 0.6871306672663443 11.0 -24 271.608 0.5301758416541487 12.0 +20 45.396 1.409815842805533 2.3255 +21 72.12689999999999 1.123020676058447 0.9859000000000009 +22 113.248 0.8830178016388811 10 +23 176.0946 0.6871306672663443 11 +24 271.608 0.5301758416541487 12 -- !sql_test_TinyInt_Double_3 -- \N \N \N \N @@ -5725,109 +5725,109 @@ -- !sql_test_TinyInt_DecimalV2_0 -- \N \N \N -1 25.395000000 -23.395000000 -2 36.484000000 -32.484000000 -3 51.756000000 -45.756000000 -4 72.943000000 -64.943000000 -5 102.494000000 -92.494000000 -6 143.874000000 -131.874000000 -7 201.980000000 -187.980000000 +1 25.395200000 -23.395200000 +2 36.483700000 -32.483700000 +3 51.755800000 -45.755800000 +4 72.942900000 -64.942900000 +5 102.494200000 -92.494200000 +6 143.873600000 -131.873600000 +7 201.979800000 -187.979800000 8 283.741000000 -267.741000000 -9 398.955000000 -380.955000000 +9 398.955300000 -380.955300000 10 561.479000000 -541.479000000 -11 790.908000000 -768.908000000 -12 1114.957000000 -1090.957000000 -13 25.395000000 -23.395000000 -14 36.484000000 -32.484000000 -15 51.756000000 -45.756000000 -16 72.943000000 -64.943000000 -17 102.494000000 -92.494000000 -18 143.874000000 -131.874000000 -19 201.980000000 -187.980000000 +11 790.908400000 -768.908400000 +12 1114.956500000 -1090.956500000 +13 25.395200000 -23.395200000 +14 36.483700000 -32.483700000 +15 51.755800000 -45.755800000 +16 72.942900000 -64.942900000 +17 102.494200000 -92.494200000 +18 143.873600000 -131.873600000 +19 201.979800000 -187.979800000 20 283.741000000 -267.741000000 -21 398.955000000 -380.955000000 +21 398.955300000 -380.955300000 22 561.479000000 -541.479000000 -23 790.908000000 -768.908000000 -24 1114.957000000 -1090.957000000 +23 790.908400000 -768.908400000 +24 1114.956500000 -1090.956500000 -- !sql_test_TinyInt_DecimalV2_notn_0 -- -1 25.395000000 -23.395000000 -2 36.484000000 -32.484000000 -3 51.756000000 -45.756000000 -4 72.943000000 -64.943000000 -5 102.494000000 -92.494000000 -6 143.874000000 -131.874000000 -7 201.980000000 -187.980000000 +1 25.395200000 -23.395200000 +2 36.483700000 -32.483700000 +3 51.755800000 -45.755800000 +4 72.942900000 -64.942900000 +5 102.494200000 -92.494200000 +6 143.873600000 -131.873600000 +7 201.979800000 -187.979800000 8 283.741000000 -267.741000000 -9 398.955000000 -380.955000000 +9 398.955300000 -380.955300000 10 561.479000000 -541.479000000 -11 790.908000000 -768.908000000 -12 1114.957000000 -1090.957000000 -13 25.395000000 -23.395000000 -14 36.484000000 -32.484000000 -15 51.756000000 -45.756000000 -16 72.943000000 -64.943000000 -17 102.494000000 -92.494000000 -18 143.874000000 -131.874000000 -19 201.980000000 -187.980000000 +11 790.908400000 -768.908400000 +12 1114.956500000 -1090.956500000 +13 25.395200000 -23.395200000 +14 36.483700000 -32.483700000 +15 51.755800000 -45.755800000 +16 72.942900000 -64.942900000 +17 102.494200000 -92.494200000 +18 143.873600000 -131.873600000 +19 201.979800000 -187.979800000 20 283.741000000 -267.741000000 -21 398.955000000 -380.955000000 +21 398.955300000 -380.955300000 22 561.479000000 -541.479000000 -23 790.908000000 -768.908000000 -24 1114.957000000 -1090.957000000 +23 790.908400000 -768.908400000 +24 1114.956500000 -1090.956500000 -- !sql_test_TinyInt_DecimalV2_1 -- \N \N \N \N -1 24.395000000 0.040992007 1.000000000 -2 68.968000000 0.057997912 2.000000000 -3 146.268000000 0.061530889 3.000000000 -4 275.772000000 0.058018943 4.000000000 -5 487.470000000 0.051285207 5.000000000 -6 827.244000000 0.043517995 6.000000000 -7 1364.860000000 0.035901118 7.000000000 +1 24.395200000 0.040991670 1.000000000 +2 68.967400000 0.057998417 2.000000000 +3 146.267400000 0.061531141 3.000000000 +4 275.771600000 0.058019027 4.000000000 +5 487.471000000 0.051285102 5.000000000 +6 827.241600000 0.043518121 6.000000000 +7 1364.858600000 0.035901155 7.000000000 8 2205.928000000 0.029012733 8.000000000 -9 3509.595000000 0.023079586 9.000000000 +9 3509.597700000 0.023079568 9.000000000 10 5514.790000000 0.018133057 10.000000000 -11 8578.988000000 0.014104228 11.000000000 -12 13235.484000000 0.010879844 12.000000000 -13 24.395000000 0.040992007 1.000000000 -14 68.968000000 0.057997912 2.000000000 -15 146.268000000 0.061530889 3.000000000 -16 275.772000000 0.058018943 4.000000000 -17 487.470000000 0.051285207 5.000000000 -18 827.244000000 0.043517995 6.000000000 -19 1364.860000000 0.035901118 7.000000000 +11 8578.992400000 0.014104220 11.000000000 +12 13235.478000000 0.010879849 12.000000000 +13 24.395200000 0.040991670 1.000000000 +14 68.967400000 0.057998417 2.000000000 +15 146.267400000 0.061531141 3.000000000 +16 275.771600000 0.058019027 4.000000000 +17 487.471000000 0.051285102 5.000000000 +18 827.241600000 0.043518121 6.000000000 +19 1364.858600000 0.035901155 7.000000000 20 2205.928000000 0.029012733 8.000000000 -21 3509.595000000 0.023079586 9.000000000 +21 3509.597700000 0.023079568 9.000000000 22 5514.790000000 0.018133057 10.000000000 -23 8578.988000000 0.014104228 11.000000000 -24 13235.484000000 0.010879844 12.000000000 +23 8578.992400000 0.014104220 11.000000000 +24 13235.478000000 0.010879849 12.000000000 -- !sql_test_TinyInt_DecimalV2_notn_1 -- -1 24.395000000 0.040992007 1.000000000 -2 68.968000000 0.057997912 2.000000000 -3 146.268000000 0.061530889 3.000000000 -4 275.772000000 0.058018943 4.000000000 -5 487.470000000 0.051285207 5.000000000 -6 827.244000000 0.043517995 6.000000000 -7 1364.860000000 0.035901118 7.000000000 +1 24.395200000 0.040991670 1.000000000 +2 68.967400000 0.057998417 2.000000000 +3 146.267400000 0.061531141 3.000000000 +4 275.771600000 0.058019027 4.000000000 +5 487.471000000 0.051285102 5.000000000 +6 827.241600000 0.043518121 6.000000000 +7 1364.858600000 0.035901155 7.000000000 8 2205.928000000 0.029012733 8.000000000 -9 3509.595000000 0.023079586 9.000000000 +9 3509.597700000 0.023079568 9.000000000 10 5514.790000000 0.018133057 10.000000000 -11 8578.988000000 0.014104228 11.000000000 -12 13235.484000000 0.010879844 12.000000000 -13 24.395000000 0.040992007 1.000000000 -14 68.968000000 0.057997912 2.000000000 -15 146.268000000 0.061530889 3.000000000 -16 275.772000000 0.058018943 4.000000000 -17 487.470000000 0.051285207 5.000000000 -18 827.244000000 0.043517995 6.000000000 -19 1364.860000000 0.035901118 7.000000000 +11 8578.992400000 0.014104220 11.000000000 +12 13235.478000000 0.010879849 12.000000000 +13 24.395200000 0.040991670 1.000000000 +14 68.967400000 0.057998417 2.000000000 +15 146.267400000 0.061531141 3.000000000 +16 275.771600000 0.058019027 4.000000000 +17 487.471000000 0.051285102 5.000000000 +18 827.241600000 0.043518121 6.000000000 +19 1364.858600000 0.035901155 7.000000000 20 2205.928000000 0.029012733 8.000000000 -21 3509.595000000 0.023079586 9.000000000 +21 3509.597700000 0.023079568 9.000000000 22 5514.790000000 0.018133057 10.000000000 -23 8578.988000000 0.014104228 11.000000000 -24 13235.484000000 0.010879844 12.000000000 +23 8578.992400000 0.014104220 11.000000000 +24 13235.478000000 0.010879849 12.000000000 -- !sql_test_TinyInt_DecimalV2_2 -- \N \N @@ -6430,7 +6430,7 @@ 14 220.094 -216.094 15 311.359 -305.359 16 440.033 -432.033 -17 621.608 -611.608 +17 621.6079999999999 -611.6079999999999 18 877.989 -865.989 19 1240.161 -1226.161 20 1751.94 -1735.94 @@ -6456,7 +6456,7 @@ 14 220.094 -216.094 15 311.359 -305.359 16 440.033 -432.033 -17 621.608 -611.608 +17 621.6079999999999 -611.6079999999999 18 877.989 -865.989 19 1240.161 -1226.161 20 1751.94 -1735.94 @@ -6479,18 +6479,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 154.289 0.006481343452870911 1.0 -14 436.188 0.009170357735655268 2.0 -15 925.077 0.00972891986288709 3.0 -16 1744.132 0.00917361759316382 4.0 -17 3083.04 0.008108879547459652 5.0 -18 5231.934 0.00688082074429838 6.0 -19 8632.127 0.0056764688471335045 7.0 -20 13951.52 0.004587313783731091 8.0 -21 22196.646 0.0036491999737257603 9.0 -22 34878.6 0.0028670875551197583 10.0 -23 54258.314 0.0022300729801519453 11.0 -24 83708.52 0.0017202549991327048 12.0 +13 154.289 0.006481343452870911 1 +14 436.188 0.009170357735655268 2 +15 925.077 0.009728919862887091 3 +16 1744.132 0.00917361759316382 4 +17 3083.04 0.008108879547459652 5 +18 5231.934 0.00688082074429838 6 +19 8632.127 0.005676468847133504 7 +20 13951.52 0.004587313783731091 8 +21 22196.646 0.00364919997372576 9 +22 34878.6 0.002867087555119758 10 +23 54258.314 0.002230072980151945 11 +24 83708.52 0.001720254999132705 12 -- !sql_test_TinyInt_Char_notn_1 -- 1 \N \N \N @@ -6505,18 +6505,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 154.289 0.006481343452870911 1.0 -14 436.188 0.009170357735655268 2.0 -15 925.077 0.00972891986288709 3.0 -16 1744.132 0.00917361759316382 4.0 -17 3083.04 0.008108879547459652 5.0 -18 5231.934 0.00688082074429838 6.0 -19 8632.127 0.0056764688471335045 7.0 -20 13951.52 0.004587313783731091 8.0 -21 22196.646 0.0036491999737257603 9.0 -22 34878.6 0.0028670875551197583 10.0 -23 54258.314 0.0022300729801519453 11.0 -24 83708.52 0.0017202549991327048 12.0 +13 154.289 0.006481343452870911 1 +14 436.188 0.009170357735655268 2 +15 925.077 0.009728919862887091 3 +16 1744.132 0.00917361759316382 4 +17 3083.04 0.008108879547459652 5 +18 5231.934 0.00688082074429838 6 +19 8632.127 0.005676468847133504 7 +20 13951.52 0.004587313783731091 8 +21 22196.646 0.00364919997372576 9 +22 34878.6 0.002867087555119758 10 +23 54258.314 0.002230072980151945 11 +24 83708.52 0.001720254999132705 12 -- !sql_test_TinyInt_Char_3 -- \N \N \N \N @@ -6638,18 +6638,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2319.121 4.3119785470443323E-4 1.0 -14 6556.164 6.101128647788555E-4 2.0 -15 13904.223 6.472853607137918E-4 3.0 -16 26214.752 6.103433669713907E-4 4.0 -17 46338.649999999994 5.395064379303239E-4 5.0 -18 78636.822 4.5780079973221704E-4 6.0 -19 129742.095 3.7767233525865294E-4 7.0 -20 209693.232 3.052077522463863E-4 8.0 -21 333618.579 2.427922337023083E-4 9.0 -22 524229.99000000005 1.907559695316172E-4 10.0 -23 815509.6730000001 1.483734699980683E-4 11.0 -24 1258150.116 1.1445375092267607E-4 12.0 +13 2319.121 0.0004311978547044332 1 +14 6556.164 0.0006101128647788555 2 +15 13904.223 0.0006472853607137918 3 +16 26214.752 0.0006103433669713907 4 +17 46338.64999999999 0.0005395064379303239 5 +18 78636.822 0.000457800799732217 6 +19 129742.095 0.0003776723352586529 7 +20 209693.232 0.0003052077522463863 8 +21 333618.579 0.0002427922337023083 9 +22 524229.99 0.0001907559695316172 10 +23 815509.6730000001 0.0001483734699980683 11 +24 1258150.116 0.0001144537509226761 12 -- !sql_test_TinyInt_Varchar_notn_1 -- 1 \N \N \N @@ -6664,18 +6664,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2319.121 4.3119785470443323E-4 1.0 -14 6556.164 6.101128647788555E-4 2.0 -15 13904.223 6.472853607137918E-4 3.0 -16 26214.752 6.103433669713907E-4 4.0 -17 46338.649999999994 5.395064379303239E-4 5.0 -18 78636.822 4.5780079973221704E-4 6.0 -19 129742.095 3.7767233525865294E-4 7.0 -20 209693.232 3.052077522463863E-4 8.0 -21 333618.579 2.427922337023083E-4 9.0 -22 524229.99000000005 1.907559695316172E-4 10.0 -23 815509.6730000001 1.483734699980683E-4 11.0 -24 1258150.116 1.1445375092267607E-4 12.0 +13 2319.121 0.0004311978547044332 1 +14 6556.164 0.0006101128647788555 2 +15 13904.223 0.0006472853607137918 3 +16 26214.752 0.0006103433669713907 4 +17 46338.64999999999 0.0005395064379303239 5 +18 78636.822 0.000457800799732217 6 +19 129742.095 0.0003776723352586529 7 +20 209693.232 0.0003052077522463863 8 +21 333618.579 0.0002427922337023083 9 +22 524229.99 0.0001907559695316172 10 +23 815509.6730000001 0.0001483734699980683 11 +24 1258150.116 0.0001144537509226761 12 -- !sql_test_TinyInt_Varchar_3 -- \N \N \N \N @@ -6750,7 +6750,7 @@ 16 29970.255 -29962.255 17 42381.012 -42371.012 18 59932.842 -59920.842 -19 84755.017 -84741.017 +19 84755.01700000001 -84741.01700000001 20 119858.851 -119842.851 21 169503.031 -169485.031 22 239710.285 -239690.285 @@ -6776,7 +6776,7 @@ 16 29970.255 -29962.255 17 42381.012 -42371.012 18 59932.842 -59920.842 -19 84755.017 -84741.017 +19 84755.01700000001 -84741.01700000001 20 119858.851 -119842.851 21 169503.031 -169485.031 22 239710.285 -239690.285 @@ -6797,18 +6797,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 10604.017 9.43038850277211E-5 1.0 -14 29977.586 1.3343302559452254E-4 2.0 -15 63576.039 1.4156276706700776E-4 3.0 -16 119865.02 1.334834800010879E-4 4.0 -17 211880.06 1.1799128242648221E-4 5.0 -18 359561.05199999997 1.0012207885074272E-4 6.0 -19 593236.1190000001 8.259780284888553E-5 7.0 -20 958806.808 6.674963033846126E-5 8.0 -21 1525446.2789999999 5.309921503961399E-5 9.0 -22 2397002.85 4.17187655826108E-5 10.0 -23 3728857.649 3.244961631411422E-5 11.0 -24 5752798.3319999995 2.5031296369107625E-5 12.0 +13 10604.017 9.430388502772109e-05 1 +14 29977.586 0.0001334330255945225 2 +15 63576.039 0.0001415627670670078 3 +16 119865.02 0.0001334834800010879 4 +17 211880.06 0.0001179912824264822 5 +18 359561.052 0.0001001220788507427 6 +19 593236.1190000001 8.259780284888553e-05 7 +20 958806.808 6.674963033846126e-05 8 +21 1525446.279 5.309921503961399e-05 9 +22 2397002.85 4.17187655826108e-05 10 +23 3728857.649 3.244961631411422e-05 11 +24 5752798.331999999 2.503129636910763e-05 12 -- !sql_test_TinyInt_String_notn_1 -- 1 \N \N \N @@ -6823,18 +6823,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 10604.017 9.43038850277211E-5 1.0 -14 29977.586 1.3343302559452254E-4 2.0 -15 63576.039 1.4156276706700776E-4 3.0 -16 119865.02 1.334834800010879E-4 4.0 -17 211880.06 1.1799128242648221E-4 5.0 -18 359561.05199999997 1.0012207885074272E-4 6.0 -19 593236.1190000001 8.259780284888553E-5 7.0 -20 958806.808 6.674963033846126E-5 8.0 -21 1525446.2789999999 5.309921503961399E-5 9.0 -22 2397002.85 4.17187655826108E-5 10.0 -23 3728857.649 3.244961631411422E-5 11.0 -24 5752798.3319999995 2.5031296369107625E-5 12.0 +13 10604.017 9.430388502772109e-05 1 +14 29977.586 0.0001334330255945225 2 +15 63576.039 0.0001415627670670078 3 +16 119865.02 0.0001334834800010879 4 +17 211880.06 0.0001179912824264822 5 +18 359561.052 0.0001001220788507427 6 +19 593236.1190000001 8.259780284888553e-05 7 +20 958806.808 6.674963033846126e-05 8 +21 1525446.279 5.309921503961399e-05 9 +22 2397002.85 4.17187655826108e-05 10 +23 3728857.649 3.244961631411422e-05 11 +24 5752798.331999999 2.503129636910763e-05 12 -- !sql_test_TinyInt_String_3 -- \N \N \N \N @@ -6944,56 +6944,56 @@ -- !sql_test_TinyInt_Date_1 -- \N \N \N \N -1 20120301 4.970104572491236E-8 1 -2 40240604 9.940208650943709E-8 2 -3 60360909 1.491031223535749E-7 3 -4 80481216 1.9880415325732653E-7 4 -5 100601525 2.485051792206927E-7 5 -6 120721836 2.9820620024367423E-7 6 -7 140842149 3.4790721632627175E-7 7 -8 160962464 3.976082274684861E-7 8 -9 181082781 4.4730923367031786E-7 9 -10 201203100 4.970102349317679E-7 10 -11 221323421 5.46711231252837E-7 11 -12 241443744 5.964122226335258E-7 12 -13 20120301 4.970104572491236E-8 1 -14 40240604 9.940208650943709E-8 2 -15 60360909 1.491031223535749E-7 3 -16 80481216 1.9880415325732653E-7 4 -17 100601525 2.485051792206927E-7 5 -18 120721836 2.9820620024367423E-7 6 -19 140842149 3.4790721632627175E-7 7 -20 160962464 3.976082274684861E-7 8 -21 181082781 4.4730923367031786E-7 9 -22 201203100 4.970102349317679E-7 10 -23 221323421 5.46711231252837E-7 11 -24 241443744 5.964122226335258E-7 12 +1 20120301 4.970104572491236e-08 1 +2 40240604 9.940208650943709e-08 2 +3 60360909 1.491031223535749e-07 3 +4 80481216 1.988041532573265e-07 4 +5 100601525 2.485051792206927e-07 5 +6 120721836 2.982062002436742e-07 6 +7 140842149 3.479072163262718e-07 7 +8 160962464 3.976082274684861e-07 8 +9 181082781 4.473092336703179e-07 9 +10 201203100 4.970102349317679e-07 10 +11 221323421 5.46711231252837e-07 11 +12 241443744 5.964122226335258e-07 12 +13 20120301 4.970104572491236e-08 1 +14 40240604 9.940208650943709e-08 2 +15 60360909 1.491031223535749e-07 3 +16 80481216 1.988041532573265e-07 4 +17 100601525 2.485051792206927e-07 5 +18 120721836 2.982062002436742e-07 6 +19 140842149 3.479072163262718e-07 7 +20 160962464 3.976082274684861e-07 8 +21 181082781 4.473092336703179e-07 9 +22 201203100 4.970102349317679e-07 10 +23 221323421 5.46711231252837e-07 11 +24 241443744 5.964122226335258e-07 12 -- !sql_test_TinyInt_Date_notn_1 -- -1 20120301 4.970104572491236E-8 1 -2 40240604 9.940208650943709E-8 2 -3 60360909 1.491031223535749E-7 3 -4 80481216 1.9880415325732653E-7 4 -5 100601525 2.485051792206927E-7 5 -6 120721836 2.9820620024367423E-7 6 -7 140842149 3.4790721632627175E-7 7 -8 160962464 3.976082274684861E-7 8 -9 181082781 4.4730923367031786E-7 9 -10 201203100 4.970102349317679E-7 10 -11 221323421 5.46711231252837E-7 11 -12 241443744 5.964122226335258E-7 12 -13 20120301 4.970104572491236E-8 1 -14 40240604 9.940208650943709E-8 2 -15 60360909 1.491031223535749E-7 3 -16 80481216 1.9880415325732653E-7 4 -17 100601525 2.485051792206927E-7 5 -18 120721836 2.9820620024367423E-7 6 -19 140842149 3.4790721632627175E-7 7 -20 160962464 3.976082274684861E-7 8 -21 181082781 4.4730923367031786E-7 9 -22 201203100 4.970102349317679E-7 10 -23 221323421 5.46711231252837E-7 11 -24 241443744 5.964122226335258E-7 12 +1 20120301 4.970104572491236e-08 1 +2 40240604 9.940208650943709e-08 2 +3 60360909 1.491031223535749e-07 3 +4 80481216 1.988041532573265e-07 4 +5 100601525 2.485051792206927e-07 5 +6 120721836 2.982062002436742e-07 6 +7 140842149 3.479072163262718e-07 7 +8 160962464 3.976082274684861e-07 8 +9 181082781 4.473092336703179e-07 9 +10 201203100 4.970102349317679e-07 10 +11 221323421 5.46711231252837e-07 11 +12 241443744 5.964122226335258e-07 12 +13 20120301 4.970104572491236e-08 1 +14 40240604 9.940208650943709e-08 2 +15 60360909 1.491031223535749e-07 3 +16 80481216 1.988041532573265e-07 4 +17 100601525 2.485051792206927e-07 5 +18 120721836 2.982062002436742e-07 6 +19 140842149 3.479072163262718e-07 7 +20 160962464 3.976082274684861e-07 8 +21 181082781 4.473092336703179e-07 9 +22 201203100 4.970102349317679e-07 10 +23 221323421 5.46711231252837e-07 11 +24 241443744 5.964122226335258e-07 12 -- !sql_test_TinyInt_Date_3 -- \N \N \N \N @@ -7156,56 +7156,56 @@ -- !sql_test_TinyInt_DateTime_1 -- \N \N \N \N -1 20120301010001 4.9701045700207953E-14 1 -2 40240604040204 9.940208641012542E-14 2 -3 60360909090609 1.4910312212975313E-13 3 -4 80481216161216 1.9880415285909187E-13 4 -5 100601525252025 2.485051785981423E-13 5 -6 120721836363036 2.9820619934690534E-13 6 -7 140842149494249 3.4790721510538163E-13 7 -8 160962464645664 3.976082258735719E-13 8 -9 181082781817281 4.4730923165147694E-13 9 -10 201203101009100 4.970102324390975E-13 10 -11 221323422221121 5.467112282364343E-13 11 -12 241443745453344 5.964122190434881E-13 12 -13 20120301010001 4.9701045700207953E-14 1 -14 40240604040204 9.940208641012542E-14 2 -15 60360909090609 1.4910312212975313E-13 3 -16 80481216161216 1.9880415285909187E-13 4 -17 100601525252025 2.485051785981423E-13 5 -18 120721836363036 2.9820619934690534E-13 6 -19 140842149494249 3.4790721510538163E-13 7 -20 160962464645664 3.976082258735719E-13 8 -21 181082781817281 4.4730923165147694E-13 9 -22 201203101009100 4.970102324390975E-13 10 -23 221323422221121 5.467112282364343E-13 11 -24 241443745453344 5.964122190434881E-13 12 +1 20120301010001 4.970104570020795e-14 1 +2 40240604040204 9.940208641012542e-14 2 +3 60360909090609 1.491031221297531e-13 3 +4 80481216161216 1.988041528590919e-13 4 +5 100601525252025 2.485051785981423e-13 5 +6 120721836363036 2.982061993469053e-13 6 +7 140842149494249 3.479072151053816e-13 7 +8 160962464645664 3.976082258735719e-13 8 +9 181082781817281 4.473092316514769e-13 9 +10 201203101009100 4.970102324390975e-13 10 +11 221323422221121 5.467112282364343e-13 11 +12 241443745453344 5.964122190434881e-13 12 +13 20120301010001 4.970104570020795e-14 1 +14 40240604040204 9.940208641012542e-14 2 +15 60360909090609 1.491031221297531e-13 3 +16 80481216161216 1.988041528590919e-13 4 +17 100601525252025 2.485051785981423e-13 5 +18 120721836363036 2.982061993469053e-13 6 +19 140842149494249 3.479072151053816e-13 7 +20 160962464645664 3.976082258735719e-13 8 +21 181082781817281 4.473092316514769e-13 9 +22 201203101009100 4.970102324390975e-13 10 +23 221323422221121 5.467112282364343e-13 11 +24 241443745453344 5.964122190434881e-13 12 -- !sql_test_TinyInt_DateTime_notn_1 -- -1 20120301010001 4.9701045700207953E-14 1 -2 40240604040204 9.940208641012542E-14 2 -3 60360909090609 1.4910312212975313E-13 3 -4 80481216161216 1.9880415285909187E-13 4 -5 100601525252025 2.485051785981423E-13 5 -6 120721836363036 2.9820619934690534E-13 6 -7 140842149494249 3.4790721510538163E-13 7 -8 160962464645664 3.976082258735719E-13 8 -9 181082781817281 4.4730923165147694E-13 9 -10 201203101009100 4.970102324390975E-13 10 -11 221323422221121 5.467112282364343E-13 11 -12 241443745453344 5.964122190434881E-13 12 -13 20120301010001 4.9701045700207953E-14 1 -14 40240604040204 9.940208641012542E-14 2 -15 60360909090609 1.4910312212975313E-13 3 -16 80481216161216 1.9880415285909187E-13 4 -17 100601525252025 2.485051785981423E-13 5 -18 120721836363036 2.9820619934690534E-13 6 -19 140842149494249 3.4790721510538163E-13 7 -20 160962464645664 3.976082258735719E-13 8 -21 181082781817281 4.4730923165147694E-13 9 -22 201203101009100 4.970102324390975E-13 10 -23 221323422221121 5.467112282364343E-13 11 -24 241443745453344 5.964122190434881E-13 12 +1 20120301010001 4.970104570020795e-14 1 +2 40240604040204 9.940208641012542e-14 2 +3 60360909090609 1.491031221297531e-13 3 +4 80481216161216 1.988041528590919e-13 4 +5 100601525252025 2.485051785981423e-13 5 +6 120721836363036 2.982061993469053e-13 6 +7 140842149494249 3.479072151053816e-13 7 +8 160962464645664 3.976082258735719e-13 8 +9 181082781817281 4.473092316514769e-13 9 +10 201203101009100 4.970102324390975e-13 10 +11 221323422221121 5.467112282364343e-13 11 +12 241443745453344 5.964122190434881e-13 12 +13 20120301010001 4.970104570020795e-14 1 +14 40240604040204 9.940208641012542e-14 2 +15 60360909090609 1.491031221297531e-13 3 +16 80481216161216 1.988041528590919e-13 4 +17 100601525252025 2.485051785981423e-13 5 +18 120721836363036 2.982061993469053e-13 6 +19 140842149494249 3.479072151053816e-13 7 +20 160962464645664 3.976082258735719e-13 8 +21 181082781817281 4.473092316514769e-13 9 +22 201203101009100 4.970102324390975e-13 10 +23 221323422221121 5.467112282364343e-13 11 +24 241443745453344 5.964122190434881e-13 12 -- !sql_test_TinyInt_DateTime_3 -- \N \N \N \N @@ -7368,56 +7368,56 @@ -- !sql_test_TinyInt_DateV2_1 -- \N \N \N \N -1 20120301 4.970104572491236E-8 1 -2 40240604 9.940208650943709E-8 2 -3 60360909 1.491031223535749E-7 3 -4 80481216 1.9880415325732653E-7 4 -5 100601525 2.485051792206927E-7 5 -6 120721836 2.9820620024367423E-7 6 -7 140842149 3.4790721632627175E-7 7 -8 160962464 3.976082274684861E-7 8 -9 181082781 4.4730923367031786E-7 9 -10 201203100 4.970102349317679E-7 10 -11 221323421 5.46711231252837E-7 11 -12 241443744 5.964122226335258E-7 12 -13 20120301 4.970104572491236E-8 1 -14 40240604 9.940208650943709E-8 2 -15 60360909 1.491031223535749E-7 3 -16 80481216 1.9880415325732653E-7 4 -17 100601525 2.485051792206927E-7 5 -18 120721836 2.9820620024367423E-7 6 -19 140842149 3.4790721632627175E-7 7 -20 160962464 3.976082274684861E-7 8 -21 181082781 4.4730923367031786E-7 9 -22 201203100 4.970102349317679E-7 10 -23 221323421 5.46711231252837E-7 11 -24 241443744 5.964122226335258E-7 12 +1 20120301 4.970104572491236e-08 1 +2 40240604 9.940208650943709e-08 2 +3 60360909 1.491031223535749e-07 3 +4 80481216 1.988041532573265e-07 4 +5 100601525 2.485051792206927e-07 5 +6 120721836 2.982062002436742e-07 6 +7 140842149 3.479072163262718e-07 7 +8 160962464 3.976082274684861e-07 8 +9 181082781 4.473092336703179e-07 9 +10 201203100 4.970102349317679e-07 10 +11 221323421 5.46711231252837e-07 11 +12 241443744 5.964122226335258e-07 12 +13 20120301 4.970104572491236e-08 1 +14 40240604 9.940208650943709e-08 2 +15 60360909 1.491031223535749e-07 3 +16 80481216 1.988041532573265e-07 4 +17 100601525 2.485051792206927e-07 5 +18 120721836 2.982062002436742e-07 6 +19 140842149 3.479072163262718e-07 7 +20 160962464 3.976082274684861e-07 8 +21 181082781 4.473092336703179e-07 9 +22 201203100 4.970102349317679e-07 10 +23 221323421 5.46711231252837e-07 11 +24 241443744 5.964122226335258e-07 12 -- !sql_test_TinyInt_DateV2_notn_1 -- -1 20120301 4.970104572491236E-8 1 -2 40240604 9.940208650943709E-8 2 -3 60360909 1.491031223535749E-7 3 -4 80481216 1.9880415325732653E-7 4 -5 100601525 2.485051792206927E-7 5 -6 120721836 2.9820620024367423E-7 6 -7 140842149 3.4790721632627175E-7 7 -8 160962464 3.976082274684861E-7 8 -9 181082781 4.4730923367031786E-7 9 -10 201203100 4.970102349317679E-7 10 -11 221323421 5.46711231252837E-7 11 -12 241443744 5.964122226335258E-7 12 -13 20120301 4.970104572491236E-8 1 -14 40240604 9.940208650943709E-8 2 -15 60360909 1.491031223535749E-7 3 -16 80481216 1.9880415325732653E-7 4 -17 100601525 2.485051792206927E-7 5 -18 120721836 2.9820620024367423E-7 6 -19 140842149 3.4790721632627175E-7 7 -20 160962464 3.976082274684861E-7 8 -21 181082781 4.4730923367031786E-7 9 -22 201203100 4.970102349317679E-7 10 -23 221323421 5.46711231252837E-7 11 -24 241443744 5.964122226335258E-7 12 +1 20120301 4.970104572491236e-08 1 +2 40240604 9.940208650943709e-08 2 +3 60360909 1.491031223535749e-07 3 +4 80481216 1.988041532573265e-07 4 +5 100601525 2.485051792206927e-07 5 +6 120721836 2.982062002436742e-07 6 +7 140842149 3.479072163262718e-07 7 +8 160962464 3.976082274684861e-07 8 +9 181082781 4.473092336703179e-07 9 +10 201203100 4.970102349317679e-07 10 +11 221323421 5.46711231252837e-07 11 +12 241443744 5.964122226335258e-07 12 +13 20120301 4.970104572491236e-08 1 +14 40240604 9.940208650943709e-08 2 +15 60360909 1.491031223535749e-07 3 +16 80481216 1.988041532573265e-07 4 +17 100601525 2.485051792206927e-07 5 +18 120721836 2.982062002436742e-07 6 +19 140842149 3.479072163262718e-07 7 +20 160962464 3.976082274684861e-07 8 +21 181082781 4.473092336703179e-07 9 +22 201203100 4.970102349317679e-07 10 +23 221323421 5.46711231252837e-07 11 +24 241443744 5.964122226335258e-07 12 -- !sql_test_TinyInt_DateV2_3 -- \N \N \N \N @@ -7580,56 +7580,56 @@ -- !sql_test_TinyInt_DateTimeV2_1 -- \N \N \N \N -1 20120301010001 4.9701045700207953E-14 1 -2 40240604040204 9.940208641012542E-14 2 -3 60360909090609 1.4910312212975313E-13 3 -4 80481216161216 1.9880415285909187E-13 4 -5 100601525252025 2.485051785981423E-13 5 -6 120721836363036 2.9820619934690534E-13 6 -7 140842149494249 3.4790721510538163E-13 7 -8 160962464645664 3.976082258735719E-13 8 -9 181082781817281 4.4730923165147694E-13 9 -10 201203101009100 4.970102324390975E-13 10 -11 221323422221121 5.467112282364343E-13 11 -12 241443745453344 5.964122190434881E-13 12 -13 20120301010001 4.9701045700207953E-14 1 -14 40240604040204 9.940208641012542E-14 2 -15 60360909090609 1.4910312212975313E-13 3 -16 80481216161216 1.9880415285909187E-13 4 -17 100601525252025 2.485051785981423E-13 5 -18 120721836363036 2.9820619934690534E-13 6 -19 140842149494249 3.4790721510538163E-13 7 -20 160962464645664 3.976082258735719E-13 8 -21 181082781817281 4.4730923165147694E-13 9 -22 201203101009100 4.970102324390975E-13 10 -23 221323422221121 5.467112282364343E-13 11 -24 241443745453344 5.964122190434881E-13 12 +1 20120301010001 4.970104570020795e-14 1 +2 40240604040204 9.940208641012542e-14 2 +3 60360909090609 1.491031221297531e-13 3 +4 80481216161216 1.988041528590919e-13 4 +5 100601525252025 2.485051785981423e-13 5 +6 120721836363036 2.982061993469053e-13 6 +7 140842149494249 3.479072151053816e-13 7 +8 160962464645664 3.976082258735719e-13 8 +9 181082781817281 4.473092316514769e-13 9 +10 201203101009100 4.970102324390975e-13 10 +11 221323422221121 5.467112282364343e-13 11 +12 241443745453344 5.964122190434881e-13 12 +13 20120301010001 4.970104570020795e-14 1 +14 40240604040204 9.940208641012542e-14 2 +15 60360909090609 1.491031221297531e-13 3 +16 80481216161216 1.988041528590919e-13 4 +17 100601525252025 2.485051785981423e-13 5 +18 120721836363036 2.982061993469053e-13 6 +19 140842149494249 3.479072151053816e-13 7 +20 160962464645664 3.976082258735719e-13 8 +21 181082781817281 4.473092316514769e-13 9 +22 201203101009100 4.970102324390975e-13 10 +23 221323422221121 5.467112282364343e-13 11 +24 241443745453344 5.964122190434881e-13 12 -- !sql_test_TinyInt_DateTimeV2_notn_1 -- -1 20120301010001 4.9701045700207953E-14 1 -2 40240604040204 9.940208641012542E-14 2 -3 60360909090609 1.4910312212975313E-13 3 -4 80481216161216 1.9880415285909187E-13 4 -5 100601525252025 2.485051785981423E-13 5 -6 120721836363036 2.9820619934690534E-13 6 -7 140842149494249 3.4790721510538163E-13 7 -8 160962464645664 3.976082258735719E-13 8 -9 181082781817281 4.4730923165147694E-13 9 -10 201203101009100 4.970102324390975E-13 10 -11 221323422221121 5.467112282364343E-13 11 -12 241443745453344 5.964122190434881E-13 12 -13 20120301010001 4.9701045700207953E-14 1 -14 40240604040204 9.940208641012542E-14 2 -15 60360909090609 1.4910312212975313E-13 3 -16 80481216161216 1.9880415285909187E-13 4 -17 100601525252025 2.485051785981423E-13 5 -18 120721836363036 2.9820619934690534E-13 6 -19 140842149494249 3.4790721510538163E-13 7 -20 160962464645664 3.976082258735719E-13 8 -21 181082781817281 4.4730923165147694E-13 9 -22 201203101009100 4.970102324390975E-13 10 -23 221323422221121 5.467112282364343E-13 11 -24 241443745453344 5.964122190434881E-13 12 +1 20120301010001 4.970104570020795e-14 1 +2 40240604040204 9.940208641012542e-14 2 +3 60360909090609 1.491031221297531e-13 3 +4 80481216161216 1.988041528590919e-13 4 +5 100601525252025 2.485051785981423e-13 5 +6 120721836363036 2.982061993469053e-13 6 +7 140842149494249 3.479072151053816e-13 7 +8 160962464645664 3.976082258735719e-13 8 +9 181082781817281 4.473092316514769e-13 9 +10 201203101009100 4.970102324390975e-13 10 +11 221323422221121 5.467112282364343e-13 11 +12 241443745453344 5.964122190434881e-13 12 +13 20120301010001 4.970104570020795e-14 1 +14 40240604040204 9.940208641012542e-14 2 +15 60360909090609 1.491031221297531e-13 3 +16 80481216161216 1.988041528590919e-13 4 +17 100601525252025 2.485051785981423e-13 5 +18 120721836363036 2.982061993469053e-13 6 +19 140842149494249 3.479072151053816e-13 7 +20 160962464645664 3.976082258735719e-13 8 +21 181082781817281 4.473092316514769e-13 9 +22 201203101009100 4.970102324390975e-13 10 +23 221323422221121 5.467112282364343e-13 11 +24 241443745453344 5.964122190434881e-13 12 -- !sql_test_TinyInt_DateTimeV2_3 -- \N \N \N \N @@ -7799,11 +7799,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 8 8.0 0 -9 9 9.0 0 -10 10 10.0 0 -11 11 11.0 0 -12 12 12.0 0 +8 8 8 0 +9 9 9 0 +10 10 10 0 +11 11 11 0 +12 12 12 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -7811,11 +7811,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 8 8.0 0 -21 9 9.0 0 -22 10 10.0 0 -23 11 11.0 0 -24 12 12.0 0 +20 8 8 0 +21 9 9 0 +22 10 10 0 +23 11 11 0 +24 12 12 0 -- !sql_test_TinyInt_Boolean_notn_1 -- 1 0 \N \N @@ -7825,11 +7825,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 8 8.0 0 -9 9 9.0 0 -10 10 10.0 0 -11 11 11.0 0 -12 12 12.0 0 +8 8 8 0 +9 9 9 0 +10 10 10 0 +11 11 11 0 +12 12 12 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -7837,11 +7837,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 8 8.0 0 -21 9 9.0 0 -22 10 10.0 0 -23 11 11.0 0 -24 12 12.0 0 +20 8 8 0 +21 9 9 0 +22 10 10 0 +23 11 11 0 +24 12 12 0 -- !sql_test_TinyInt_Boolean_3 -- \N \N \N \N @@ -8004,56 +8004,56 @@ -- !sql_test_SmallInt_TinyInt_1 -- \N \N \N \N -1 10 10.0 0 -2 40 10.0 0 -3 120 13.333333333333334 1 -4 320 20.0 0 -5 800 32.0 0 -6 1920 53.333333333333336 2 +1 10 10 0 +2 40 10 0 +3 120 13.33333333333333 1 +4 320 20 0 +5 800 32 0 +6 1920 53.33333333333334 2 7 4480 91.42857142857143 3 -8 10240 160.0 0 -9 23040 284.44444444444446 4 -10 51200 512.0 0 +8 10240 160 0 +9 23040 284.4444444444445 4 +10 51200 512 0 11 112640 930.9090909090909 10 -12 245760 1706.6666666666667 8 -13 10 10.0 0 -14 40 10.0 0 -15 120 13.333333333333334 1 -16 320 20.0 0 -17 800 32.0 0 -18 1920 53.333333333333336 2 +12 245760 1706.666666666667 8 +13 10 10 0 +14 40 10 0 +15 120 13.33333333333333 1 +16 320 20 0 +17 800 32 0 +18 1920 53.33333333333334 2 19 4480 91.42857142857143 3 -20 10240 160.0 0 -21 23040 284.44444444444446 4 -22 51200 512.0 0 +20 10240 160 0 +21 23040 284.4444444444445 4 +22 51200 512 0 23 112640 930.9090909090909 10 -24 245760 1706.6666666666667 8 +24 245760 1706.666666666667 8 -- !sql_test_SmallInt_TinyInt_notn_1 -- -1 10 10.0 0 -2 40 10.0 0 -3 120 13.333333333333334 1 -4 320 20.0 0 -5 800 32.0 0 -6 1920 53.333333333333336 2 +1 10 10 0 +2 40 10 0 +3 120 13.33333333333333 1 +4 320 20 0 +5 800 32 0 +6 1920 53.33333333333334 2 7 4480 91.42857142857143 3 -8 10240 160.0 0 -9 23040 284.44444444444446 4 -10 51200 512.0 0 +8 10240 160 0 +9 23040 284.4444444444445 4 +10 51200 512 0 11 112640 930.9090909090909 10 -12 245760 1706.6666666666667 8 -13 10 10.0 0 -14 40 10.0 0 -15 120 13.333333333333334 1 -16 320 20.0 0 -17 800 32.0 0 -18 1920 53.333333333333336 2 +12 245760 1706.666666666667 8 +13 10 10 0 +14 40 10 0 +15 120 13.33333333333333 1 +16 320 20 0 +17 800 32 0 +18 1920 53.33333333333334 2 19 4480 91.42857142857143 3 -20 10240 160.0 0 -21 23040 284.44444444444446 4 -22 51200 512.0 0 +20 10240 160 0 +21 23040 284.4444444444445 4 +22 51200 512 0 23 112640 930.9090909090909 10 -24 245760 1706.6666666666667 8 +24 245760 1706.666666666667 8 -- !sql_test_SmallInt_TinyInt_2 -- \N \N @@ -8269,56 +8269,56 @@ -- !sql_test_SmallInt_SmallInt_1 -- \N \N \N \N -1 100 1.0 0 -2 400 1.0 0 -3 1600 1.0 0 -4 6400 1.0 0 -5 25600 1.0 0 -6 102400 1.0 0 -7 409600 1.0 0 -8 1638400 1.0 0 -9 6553600 1.0 0 -10 26214400 1.0 0 -11 104857600 1.0 0 -12 419430400 1.0 0 -13 100 1.0 0 -14 400 1.0 0 -15 1600 1.0 0 -16 6400 1.0 0 -17 25600 1.0 0 -18 102400 1.0 0 -19 409600 1.0 0 -20 1638400 1.0 0 -21 6553600 1.0 0 -22 26214400 1.0 0 -23 104857600 1.0 0 -24 419430400 1.0 0 +1 100 1 0 +2 400 1 0 +3 1600 1 0 +4 6400 1 0 +5 25600 1 0 +6 102400 1 0 +7 409600 1 0 +8 1638400 1 0 +9 6553600 1 0 +10 26214400 1 0 +11 104857600 1 0 +12 419430400 1 0 +13 100 1 0 +14 400 1 0 +15 1600 1 0 +16 6400 1 0 +17 25600 1 0 +18 102400 1 0 +19 409600 1 0 +20 1638400 1 0 +21 6553600 1 0 +22 26214400 1 0 +23 104857600 1 0 +24 419430400 1 0 -- !sql_test_SmallInt_SmallInt_notn_1 -- -1 100 1.0 0 -2 400 1.0 0 -3 1600 1.0 0 -4 6400 1.0 0 -5 25600 1.0 0 -6 102400 1.0 0 -7 409600 1.0 0 -8 1638400 1.0 0 -9 6553600 1.0 0 -10 26214400 1.0 0 -11 104857600 1.0 0 -12 419430400 1.0 0 -13 100 1.0 0 -14 400 1.0 0 -15 1600 1.0 0 -16 6400 1.0 0 -17 25600 1.0 0 -18 102400 1.0 0 -19 409600 1.0 0 -20 1638400 1.0 0 -21 6553600 1.0 0 -22 26214400 1.0 0 -23 104857600 1.0 0 -24 419430400 1.0 0 +1 100 1 0 +2 400 1 0 +3 1600 1 0 +4 6400 1 0 +5 25600 1 0 +6 102400 1 0 +7 409600 1 0 +8 1638400 1 0 +9 6553600 1 0 +10 26214400 1 0 +11 104857600 1 0 +12 419430400 1 0 +13 100 1 0 +14 400 1 0 +15 1600 1 0 +16 6400 1 0 +17 25600 1 0 +18 102400 1 0 +19 409600 1 0 +20 1638400 1 0 +21 6553600 1 0 +22 26214400 1 0 +23 104857600 1 0 +24 419430400 1 0 -- !sql_test_SmallInt_SmallInt_2 -- \N \N @@ -8534,56 +8534,56 @@ -- !sql_test_SmallInt_Integer_1 -- \N \N \N \N -1 237950 4.202563563773902E-4 10 -2 950900 4.206541171521716E-4 20 -3 3801800 4.208532800252512E-4 40 -4 15203600 4.2095293220026836E-4 80 -5 60807200 4.2100277598705415E-4 160 -6 243214400 4.2102770230710026E-4 320 -7 972828800 4.210401665740159E-4 640 -8 3891257600 4.2104639898422555E-4 1280 -9 15564915200 4.2104951525852194E-4 2560 -10 62259430400 4.2105107341296844E-4 5120 -11 249037260800 4.2105185249451636E-4 10240 -12 996148121600 4.2105224203637146E-4 20480 -13 237950 4.202563563773902E-4 10 -14 950900 4.206541171521716E-4 20 -15 3801800 4.208532800252512E-4 40 -16 15203600 4.2095293220026836E-4 80 -17 60807200 4.2100277598705415E-4 160 -18 243214400 4.2102770230710026E-4 320 -19 972828800 4.210401665740159E-4 640 -20 3891257600 4.2104639898422555E-4 1280 -21 15564915200 4.2104951525852194E-4 2560 -22 62259430400 4.2105107341296844E-4 5120 -23 249037260800 4.2105185249451636E-4 10240 -24 996148121600 4.2105224203637146E-4 20480 +1 237950 0.0004202563563773902 10 +2 950900 0.0004206541171521716 20 +3 3801800 0.0004208532800252512 40 +4 15203600 0.0004209529322002684 80 +5 60807200 0.0004210027759870541 160 +6 243214400 0.0004210277023071003 320 +7 972828800 0.0004210401665740159 640 +8 3891257600 0.0004210463989842255 1280 +9 15564915200 0.0004210495152585219 2560 +10 62259430400 0.0004210510734129684 5120 +11 249037260800 0.0004210518524945164 10240 +12 996148121600 0.0004210522420363715 20480 +13 237950 0.0004202563563773902 10 +14 950900 0.0004206541171521716 20 +15 3801800 0.0004208532800252512 40 +16 15203600 0.0004209529322002684 80 +17 60807200 0.0004210027759870541 160 +18 243214400 0.0004210277023071003 320 +19 972828800 0.0004210401665740159 640 +20 3891257600 0.0004210463989842255 1280 +21 15564915200 0.0004210495152585219 2560 +22 62259430400 0.0004210510734129684 5120 +23 249037260800 0.0004210518524945164 10240 +24 996148121600 0.0004210522420363715 20480 -- !sql_test_SmallInt_Integer_notn_1 -- -1 237950 4.202563563773902E-4 10 -2 950900 4.206541171521716E-4 20 -3 3801800 4.208532800252512E-4 40 -4 15203600 4.2095293220026836E-4 80 -5 60807200 4.2100277598705415E-4 160 -6 243214400 4.2102770230710026E-4 320 -7 972828800 4.210401665740159E-4 640 -8 3891257600 4.2104639898422555E-4 1280 -9 15564915200 4.2104951525852194E-4 2560 -10 62259430400 4.2105107341296844E-4 5120 -11 249037260800 4.2105185249451636E-4 10240 -12 996148121600 4.2105224203637146E-4 20480 -13 237950 4.202563563773902E-4 10 -14 950900 4.206541171521716E-4 20 -15 3801800 4.208532800252512E-4 40 -16 15203600 4.2095293220026836E-4 80 -17 60807200 4.2100277598705415E-4 160 -18 243214400 4.2102770230710026E-4 320 -19 972828800 4.210401665740159E-4 640 -20 3891257600 4.2104639898422555E-4 1280 -21 15564915200 4.2104951525852194E-4 2560 -22 62259430400 4.2105107341296844E-4 5120 -23 249037260800 4.2105185249451636E-4 10240 -24 996148121600 4.2105224203637146E-4 20480 +1 237950 0.0004202563563773902 10 +2 950900 0.0004206541171521716 20 +3 3801800 0.0004208532800252512 40 +4 15203600 0.0004209529322002684 80 +5 60807200 0.0004210027759870541 160 +6 243214400 0.0004210277023071003 320 +7 972828800 0.0004210401665740159 640 +8 3891257600 0.0004210463989842255 1280 +9 15564915200 0.0004210495152585219 2560 +10 62259430400 0.0004210510734129684 5120 +11 249037260800 0.0004210518524945164 10240 +12 996148121600 0.0004210522420363715 20480 +13 237950 0.0004202563563773902 10 +14 950900 0.0004206541171521716 20 +15 3801800 0.0004208532800252512 40 +16 15203600 0.0004209529322002684 80 +17 60807200 0.0004210027759870541 160 +18 243214400 0.0004210277023071003 320 +19 972828800 0.0004210401665740159 640 +20 3891257600 0.0004210463989842255 1280 +21 15564915200 0.0004210495152585219 2560 +22 62259430400 0.0004210510734129684 5120 +23 249037260800 0.0004210518524945164 10240 +24 996148121600 0.0004210522420363715 20480 -- !sql_test_SmallInt_Integer_3 -- \N \N \N \N @@ -8746,56 +8746,56 @@ -- !sql_test_SmallInt_BigInt_1 -- \N \N \N \N -1 53545290 1.8675778952733285E-6 10 -2 213965580 1.8694595644776136E-6 20 -3 855431160 1.8704018216965582E-6 40 -4 3420862320 1.8708733065877963E-6 80 -5 13681724640 1.8711091381824508E-6 160 -6 54723449280 1.8712270762768702E-6 320 -7 218886898560 1.8712860508995829E-6 640 -8 875533797120 1.8713155396049686E-6 1280 -9 3502107594240 1.8713302843061882E-6 2560 -10 14008375188480 1.871337656743932E-6 5120 -11 56033390376960 1.8713413429845877E-6 10240 -12 224133340753920 1.8713431861103616E-6 20480 -13 53545290 1.8675778952733285E-6 10 -14 213965580 1.8694595644776136E-6 20 -15 855431160 1.8704018216965582E-6 40 -16 3420862320 1.8708733065877963E-6 80 -17 13681724640 1.8711091381824508E-6 160 -18 54723449280 1.8712270762768702E-6 320 -19 218886898560 1.8712860508995829E-6 640 -20 875533797120 1.8713155396049686E-6 1280 -21 3502107594240 1.8713302843061882E-6 2560 -22 14008375188480 1.871337656743932E-6 5120 -23 56033390376960 1.8713413429845877E-6 10240 -24 224133340753920 1.8713431861103616E-6 20480 +1 53545290 1.867577895273329e-06 10 +2 213965580 1.869459564477614e-06 20 +3 855431160 1.870401821696558e-06 40 +4 3420862320 1.870873306587796e-06 80 +5 13681724640 1.871109138182451e-06 160 +6 54723449280 1.87122707627687e-06 320 +7 218886898560 1.871286050899583e-06 640 +8 875533797120 1.871315539604969e-06 1280 +9 3502107594240 1.871330284306188e-06 2560 +10 14008375188480 1.871337656743932e-06 5120 +11 56033390376960 1.871341342984588e-06 10240 +12 224133340753920 1.871343186110362e-06 20480 +13 53545290 1.867577895273329e-06 10 +14 213965580 1.869459564477614e-06 20 +15 855431160 1.870401821696558e-06 40 +16 3420862320 1.870873306587796e-06 80 +17 13681724640 1.871109138182451e-06 160 +18 54723449280 1.87122707627687e-06 320 +19 218886898560 1.871286050899583e-06 640 +20 875533797120 1.871315539604969e-06 1280 +21 3502107594240 1.871330284306188e-06 2560 +22 14008375188480 1.871337656743932e-06 5120 +23 56033390376960 1.871341342984588e-06 10240 +24 224133340753920 1.871343186110362e-06 20480 -- !sql_test_SmallInt_BigInt_notn_1 -- -1 53545290 1.8675778952733285E-6 10 -2 213965580 1.8694595644776136E-6 20 -3 855431160 1.8704018216965582E-6 40 -4 3420862320 1.8708733065877963E-6 80 -5 13681724640 1.8711091381824508E-6 160 -6 54723449280 1.8712270762768702E-6 320 -7 218886898560 1.8712860508995829E-6 640 -8 875533797120 1.8713155396049686E-6 1280 -9 3502107594240 1.8713302843061882E-6 2560 -10 14008375188480 1.871337656743932E-6 5120 -11 56033390376960 1.8713413429845877E-6 10240 -12 224133340753920 1.8713431861103616E-6 20480 -13 53545290 1.8675778952733285E-6 10 -14 213965580 1.8694595644776136E-6 20 -15 855431160 1.8704018216965582E-6 40 -16 3420862320 1.8708733065877963E-6 80 -17 13681724640 1.8711091381824508E-6 160 -18 54723449280 1.8712270762768702E-6 320 -19 218886898560 1.8712860508995829E-6 640 -20 875533797120 1.8713155396049686E-6 1280 -21 3502107594240 1.8713302843061882E-6 2560 -22 14008375188480 1.871337656743932E-6 5120 -23 56033390376960 1.8713413429845877E-6 10240 -24 224133340753920 1.8713431861103616E-6 20480 +1 53545290 1.867577895273329e-06 10 +2 213965580 1.869459564477614e-06 20 +3 855431160 1.870401821696558e-06 40 +4 3420862320 1.870873306587796e-06 80 +5 13681724640 1.871109138182451e-06 160 +6 54723449280 1.87122707627687e-06 320 +7 218886898560 1.871286050899583e-06 640 +8 875533797120 1.871315539604969e-06 1280 +9 3502107594240 1.871330284306188e-06 2560 +10 14008375188480 1.871337656743932e-06 5120 +11 56033390376960 1.871341342984588e-06 10240 +12 224133340753920 1.871343186110362e-06 20480 +13 53545290 1.867577895273329e-06 10 +14 213965580 1.869459564477614e-06 20 +15 855431160 1.870401821696558e-06 40 +16 3420862320 1.870873306587796e-06 80 +17 13681724640 1.871109138182451e-06 160 +18 54723449280 1.87122707627687e-06 320 +19 218886898560 1.871286050899583e-06 640 +20 875533797120 1.871315539604969e-06 1280 +21 3502107594240 1.871330284306188e-06 2560 +22 14008375188480 1.871337656743932e-06 5120 +23 56033390376960 1.871341342984588e-06 10240 +24 224133340753920 1.871343186110362e-06 20480 -- !sql_test_SmallInt_BigInt_3 -- \N \N \N \N @@ -8958,56 +8958,56 @@ -- !sql_test_SmallInt_LargeInt_1 -- \N \N \N \N -1 1070906450 9.337883808618391E-8 10 -2 4279312900 9.347294982799692E-8 20 -3 17108625800 9.352007687256799E-8 40 -4 68417251600 9.354365821967628E-8 80 -5 273634503200 9.355545335336937E-8 160 -6 1094469006400 9.356135203574276E-8 320 -7 4377738012800 9.356430165587272E-8 640 -8 17510676025600 9.356577653568121E-8 1280 -9 70042152051200 9.356651399302229E-8 2560 -10 280167504102400 9.356688272605216E-8 5120 -11 1120667808204800 9.356706709365695E-8 10240 -12 4482666816409600 9.356715927773181E-8 20480 -13 1070906450 9.337883808618391E-8 10 -14 4279312900 9.347294982799692E-8 20 -15 17108625800 9.352007687256799E-8 40 -16 68417251600 9.354365821967628E-8 80 -17 273634503200 9.355545335336937E-8 160 -18 1094469006400 9.356135203574276E-8 320 -19 4377738012800 9.356430165587272E-8 640 -20 17510676025600 9.356577653568121E-8 1280 -21 70042152051200 9.356651399302229E-8 2560 -22 280167504102400 9.356688272605216E-8 5120 -23 1120667808204800 9.356706709365695E-8 10240 -24 4482666816409600 9.356715927773181E-8 20480 +1 1070906450 9.337883808618391e-08 10 +2 4279312900 9.347294982799692e-08 20 +3 17108625800 9.352007687256799e-08 40 +4 68417251600 9.354365821967628e-08 80 +5 273634503200 9.355545335336937e-08 160 +6 1094469006400 9.356135203574276e-08 320 +7 4377738012800 9.356430165587272e-08 640 +8 17510676025600 9.356577653568121e-08 1280 +9 70042152051200 9.356651399302229e-08 2560 +10 280167504102400 9.356688272605216e-08 5120 +11 1120667808204800 9.356706709365695e-08 10240 +12 4482666816409600 9.356715927773181e-08 20480 +13 1070906450 9.337883808618391e-08 10 +14 4279312900 9.347294982799692e-08 20 +15 17108625800 9.352007687256799e-08 40 +16 68417251600 9.354365821967628e-08 80 +17 273634503200 9.355545335336937e-08 160 +18 1094469006400 9.356135203574276e-08 320 +19 4377738012800 9.356430165587272e-08 640 +20 17510676025600 9.356577653568121e-08 1280 +21 70042152051200 9.356651399302229e-08 2560 +22 280167504102400 9.356688272605216e-08 5120 +23 1120667808204800 9.356706709365695e-08 10240 +24 4482666816409600 9.356715927773181e-08 20480 -- !sql_test_SmallInt_LargeInt_notn_1 -- -1 1070906450 9.337883808618391E-8 10 -2 4279312900 9.347294982799692E-8 20 -3 17108625800 9.352007687256799E-8 40 -4 68417251600 9.354365821967628E-8 80 -5 273634503200 9.355545335336937E-8 160 -6 1094469006400 9.356135203574276E-8 320 -7 4377738012800 9.356430165587272E-8 640 -8 17510676025600 9.356577653568121E-8 1280 -9 70042152051200 9.356651399302229E-8 2560 -10 280167504102400 9.356688272605216E-8 5120 -11 1120667808204800 9.356706709365695E-8 10240 -12 4482666816409600 9.356715927773181E-8 20480 -13 1070906450 9.337883808618391E-8 10 -14 4279312900 9.347294982799692E-8 20 -15 17108625800 9.352007687256799E-8 40 -16 68417251600 9.354365821967628E-8 80 -17 273634503200 9.355545335336937E-8 160 -18 1094469006400 9.356135203574276E-8 320 -19 4377738012800 9.356430165587272E-8 640 -20 17510676025600 9.356577653568121E-8 1280 -21 70042152051200 9.356651399302229E-8 2560 -22 280167504102400 9.356688272605216E-8 5120 -23 1120667808204800 9.356706709365695E-8 10240 -24 4482666816409600 9.356715927773181E-8 20480 +1 1070906450 9.337883808618391e-08 10 +2 4279312900 9.347294982799692e-08 20 +3 17108625800 9.352007687256799e-08 40 +4 68417251600 9.354365821967628e-08 80 +5 273634503200 9.355545335336937e-08 160 +6 1094469006400 9.356135203574276e-08 320 +7 4377738012800 9.356430165587272e-08 640 +8 17510676025600 9.356577653568121e-08 1280 +9 70042152051200 9.356651399302229e-08 2560 +10 280167504102400 9.356688272605216e-08 5120 +11 1120667808204800 9.356706709365695e-08 10240 +12 4482666816409600 9.356715927773181e-08 20480 +13 1070906450 9.337883808618391e-08 10 +14 4279312900 9.347294982799692e-08 20 +15 17108625800 9.352007687256799e-08 40 +16 68417251600 9.354365821967628e-08 80 +17 273634503200 9.355545335336937e-08 160 +18 1094469006400 9.356135203574276e-08 320 +19 4377738012800 9.356430165587272e-08 640 +20 17510676025600 9.356577653568121e-08 1280 +21 70042152051200 9.356651399302229e-08 2560 +22 280167504102400 9.356688272605216e-08 5120 +23 1120667808204800 9.356706709365695e-08 10240 +24 4482666816409600 9.356715927773181e-08 20480 -- !sql_test_SmallInt_LargeInt_3 -- \N \N \N \N @@ -9117,108 +9117,108 @@ -- !sql_test_SmallInt_Float_0 -- \N \N \N -1 10.100000001490116 9.899999998509884 -2 20.200000002980232 19.799999997019768 +1 10.10000000149012 9.899999998509884 +2 20.20000000298023 19.79999999701977 3 40.30000001192093 39.69999998807907 4 80.40000000596046 79.59999999403954 5 160.5 159.5 -6 320.60000002384186 319.39999997615814 +6 320.6000000238419 319.3999999761581 7 640.6999999880791 639.3000000119209 8 1280.800000011921 1279.199999988079 9 2560.899999976158 2559.100000023842 -10 5121.0 5119.0 -11 10241.100000023842 10238.899999976158 -12 20481.200000047684 20478.799999952316 -13 10.100000001490116 9.899999998509884 -14 20.200000002980232 19.799999997019768 +10 5121 5119 +11 10241.10000002384 10238.89999997616 +12 20481.20000004768 20478.79999995232 +13 10.10000000149012 9.899999998509884 +14 20.20000000298023 19.79999999701977 15 40.30000001192093 39.69999998807907 16 80.40000000596046 79.59999999403954 17 160.5 159.5 -18 320.60000002384186 319.39999997615814 +18 320.6000000238419 319.3999999761581 19 640.6999999880791 639.3000000119209 20 1280.800000011921 1279.199999988079 21 2560.899999976158 2559.100000023842 -22 5121.0 5119.0 -23 10241.100000023842 10238.899999976158 -24 20481.200000047684 20478.799999952316 +22 5121 5119 +23 10241.10000002384 10238.89999997616 +24 20481.20000004768 20478.79999995232 -- !sql_test_SmallInt_Float_notn_0 -- -1 10.100000001490116 9.899999998509884 -2 20.200000002980232 19.799999997019768 +1 10.10000000149012 9.899999998509884 +2 20.20000000298023 19.79999999701977 3 40.30000001192093 39.69999998807907 4 80.40000000596046 79.59999999403954 5 160.5 159.5 -6 320.60000002384186 319.39999997615814 +6 320.6000000238419 319.3999999761581 7 640.6999999880791 639.3000000119209 8 1280.800000011921 1279.199999988079 9 2560.899999976158 2559.100000023842 -10 5121.0 5119.0 -11 10241.100000023842 10238.899999976158 -12 20481.200000047684 20478.799999952316 -13 10.100000001490116 9.899999998509884 -14 20.200000002980232 19.799999997019768 +10 5121 5119 +11 10241.10000002384 10238.89999997616 +12 20481.20000004768 20478.79999995232 +13 10.10000000149012 9.899999998509884 +14 20.20000000298023 19.79999999701977 15 40.30000001192093 39.69999998807907 16 80.40000000596046 79.59999999403954 17 160.5 159.5 -18 320.60000002384186 319.39999997615814 +18 320.6000000238419 319.3999999761581 19 640.6999999880791 639.3000000119209 20 1280.800000011921 1279.199999988079 21 2560.899999976158 2559.100000023842 -22 5121.0 5119.0 -23 10241.100000023842 10238.899999976158 -24 20481.200000047684 20478.799999952316 +22 5121 5119 +23 10241.10000002384 10238.89999997616 +24 20481.20000004768 20478.79999995232 -- !sql_test_SmallInt_Float_1 -- \N \N \N \N -1 1.0000000149011612 99.99999850988391 0.09999985247850418 -2 4.000000059604645 99.99999850988391 0.19999970495700836 -3 12.000000476837158 133.3333280351429 0.09999841451644897 -4 32.00000047683716 199.99999701976782 0.39999881386756897 -5 80.0 320.0 0.0 -6 192.00000762939453 533.3333121405716 0.1999872922897339 -7 447.99999237060547 914.2857298559074 0.20001089572906494 -8 1024.000015258789 1599.9999761581425 0.7999809384346008 -9 2303.9999389648438 2844.444519796491 0.4000678062438965 -10 5120.0 5120.0 0.0 -11 11264.000244140625 9309.090707321802 0.09977805614471436 +1 1.000000014901161 99.99999850988391 0.09999985247850418 +2 4.000000059604645 99.99999850988391 0.1999997049570084 +3 12.00000047683716 133.3333280351429 0.09999841451644897 +4 32.00000047683716 199.9999970197678 0.399998813867569 +5 80 320 0 +6 192.0000076293945 533.3333121405716 0.1999872922897339 +7 447.9999923706055 914.2857298559074 0.2000108957290649 +8 1024.000015258789 1599.999976158143 0.7999809384346008 +9 2303.999938964844 2844.444519796491 0.4000678062438965 +10 5120 5120 0 +11 11264.00024414062 9309.090707321802 0.09977805614471436 12 24576.0009765625 17066.66598849829 0.7991862297058105 -13 1.0000000149011612 99.99999850988391 0.09999985247850418 -14 4.000000059604645 99.99999850988391 0.19999970495700836 -15 12.000000476837158 133.3333280351429 0.09999841451644897 -16 32.00000047683716 199.99999701976782 0.39999881386756897 -17 80.0 320.0 0.0 -18 192.00000762939453 533.3333121405716 0.1999872922897339 -19 447.99999237060547 914.2857298559074 0.20001089572906494 -20 1024.000015258789 1599.9999761581425 0.7999809384346008 -21 2303.9999389648438 2844.444519796491 0.4000678062438965 -22 5120.0 5120.0 0.0 -23 11264.000244140625 9309.090707321802 0.09977805614471436 +13 1.000000014901161 99.99999850988391 0.09999985247850418 +14 4.000000059604645 99.99999850988391 0.1999997049570084 +15 12.00000047683716 133.3333280351429 0.09999841451644897 +16 32.00000047683716 199.9999970197678 0.399998813867569 +17 80 320 0 +18 192.0000076293945 533.3333121405716 0.1999872922897339 +19 447.9999923706055 914.2857298559074 0.2000108957290649 +20 1024.000015258789 1599.999976158143 0.7999809384346008 +21 2303.999938964844 2844.444519796491 0.4000678062438965 +22 5120 5120 0 +23 11264.00024414062 9309.090707321802 0.09977805614471436 24 24576.0009765625 17066.66598849829 0.7991862297058105 -- !sql_test_SmallInt_Float_notn_1 -- -1 1.0000000149011612 99.99999850988391 0.09999985247850418 -2 4.000000059604645 99.99999850988391 0.19999970495700836 -3 12.000000476837158 133.3333280351429 0.09999841451644897 -4 32.00000047683716 199.99999701976782 0.39999881386756897 -5 80.0 320.0 0.0 -6 192.00000762939453 533.3333121405716 0.1999872922897339 -7 447.99999237060547 914.2857298559074 0.20001089572906494 -8 1024.000015258789 1599.9999761581425 0.7999809384346008 -9 2303.9999389648438 2844.444519796491 0.4000678062438965 -10 5120.0 5120.0 0.0 -11 11264.000244140625 9309.090707321802 0.09977805614471436 +1 1.000000014901161 99.99999850988391 0.09999985247850418 +2 4.000000059604645 99.99999850988391 0.1999997049570084 +3 12.00000047683716 133.3333280351429 0.09999841451644897 +4 32.00000047683716 199.9999970197678 0.399998813867569 +5 80 320 0 +6 192.0000076293945 533.3333121405716 0.1999872922897339 +7 447.9999923706055 914.2857298559074 0.2000108957290649 +8 1024.000015258789 1599.999976158143 0.7999809384346008 +9 2303.999938964844 2844.444519796491 0.4000678062438965 +10 5120 5120 0 +11 11264.00024414062 9309.090707321802 0.09977805614471436 12 24576.0009765625 17066.66598849829 0.7991862297058105 -13 1.0000000149011612 99.99999850988391 0.09999985247850418 -14 4.000000059604645 99.99999850988391 0.19999970495700836 -15 12.000000476837158 133.3333280351429 0.09999841451644897 -16 32.00000047683716 199.99999701976782 0.39999881386756897 -17 80.0 320.0 0.0 -18 192.00000762939453 533.3333121405716 0.1999872922897339 -19 447.99999237060547 914.2857298559074 0.20001089572906494 -20 1024.000015258789 1599.9999761581425 0.7999809384346008 -21 2303.9999389648438 2844.444519796491 0.4000678062438965 -22 5120.0 5120.0 0.0 -23 11264.000244140625 9309.090707321802 0.09977805614471436 +13 1.000000014901161 99.99999850988391 0.09999985247850418 +14 4.000000059604645 99.99999850988391 0.1999997049570084 +15 12.00000047683716 133.3333280351429 0.09999841451644897 +16 32.00000047683716 199.9999970197678 0.399998813867569 +17 80 320 0 +18 192.0000076293945 533.3333121405716 0.1999872922897339 +19 447.9999923706055 914.2857298559074 0.2000108957290649 +20 1024.000015258789 1599.999976158143 0.7999809384346008 +21 2303.999938964844 2844.444519796491 0.4000678062438965 +22 5120 5120 0 +23 11264.00024414062 9309.090707321802 0.09977805614471436 24 24576.0009765625 17066.66598849829 0.7991862297058105 -- !sql_test_SmallInt_Float_3 -- @@ -9330,54 +9330,54 @@ -- !sql_test_SmallInt_Double_1 -- \N \N \N \N 1 5.244 19.06941266209001 0.03640000000000043 -2 14.832 26.968716289104638 0.718399999999999 -3 41.471999999999994 38.58024691358025 0.6016000000000021 +2 14.832 26.96871628910464 0.718399999999999 +3 41.47199999999999 38.58024691358025 0.6016000000000021 4 115.928 55.206680008281 0.299499999999997 -5 324.96000000000004 78.77892663712457 1.5819999999999892 +5 324.96 78.77892663712457 1.581999999999989 6 913.5360000000001 112.0919153706039 0.2623999999999995 -7 2573.9519999999998 159.13272663981303 0.5338000000000287 -8 7263.360000000001 225.57053484888536 3.2374999999999776 -9 20516.095999999998 319.4369923010694 3.502100000000283 -10 57982.975999999995 452.1051144391071 1.1904000000001105 -11 163928.064 639.6561848006696 10.504599999999186 +7 2573.952 159.132726639813 0.5338000000000287 +8 7263.360000000001 225.5705348488854 3.237499999999978 +9 20516.096 319.4369923010694 3.502100000000283 +10 57982.976 452.1051144391071 1.19040000000011 +11 163928.064 639.6561848006696 10.50459999999919 12 463544.32 904.8334364230803 18.86399999999969 13 5.244 19.06941266209001 0.03640000000000043 -14 14.832 26.968716289104638 0.718399999999999 -15 41.471999999999994 38.58024691358025 0.6016000000000021 +14 14.832 26.96871628910464 0.718399999999999 +15 41.47199999999999 38.58024691358025 0.6016000000000021 16 115.928 55.206680008281 0.299499999999997 -17 324.96000000000004 78.77892663712457 1.5819999999999892 +17 324.96 78.77892663712457 1.581999999999989 18 913.5360000000001 112.0919153706039 0.2623999999999995 -19 2573.9519999999998 159.13272663981303 0.5338000000000287 -20 7263.360000000001 225.57053484888536 3.2374999999999776 -21 20516.095999999998 319.4369923010694 3.502100000000283 -22 57982.975999999995 452.1051144391071 1.1904000000001105 -23 163928.064 639.6561848006696 10.504599999999186 +19 2573.952 159.132726639813 0.5338000000000287 +20 7263.360000000001 225.5705348488854 3.237499999999978 +21 20516.096 319.4369923010694 3.502100000000283 +22 57982.976 452.1051144391071 1.19040000000011 +23 163928.064 639.6561848006696 10.50459999999919 24 463544.32 904.8334364230803 18.86399999999969 -- !sql_test_SmallInt_Double_notn_1 -- 1 5.244 19.06941266209001 0.03640000000000043 -2 14.832 26.968716289104638 0.718399999999999 -3 41.471999999999994 38.58024691358025 0.6016000000000021 +2 14.832 26.96871628910464 0.718399999999999 +3 41.47199999999999 38.58024691358025 0.6016000000000021 4 115.928 55.206680008281 0.299499999999997 -5 324.96000000000004 78.77892663712457 1.5819999999999892 +5 324.96 78.77892663712457 1.581999999999989 6 913.5360000000001 112.0919153706039 0.2623999999999995 -7 2573.9519999999998 159.13272663981303 0.5338000000000287 -8 7263.360000000001 225.57053484888536 3.2374999999999776 -9 20516.095999999998 319.4369923010694 3.502100000000283 -10 57982.975999999995 452.1051144391071 1.1904000000001105 -11 163928.064 639.6561848006696 10.504599999999186 +7 2573.952 159.132726639813 0.5338000000000287 +8 7263.360000000001 225.5705348488854 3.237499999999978 +9 20516.096 319.4369923010694 3.502100000000283 +10 57982.976 452.1051144391071 1.19040000000011 +11 163928.064 639.6561848006696 10.50459999999919 12 463544.32 904.8334364230803 18.86399999999969 13 5.244 19.06941266209001 0.03640000000000043 -14 14.832 26.968716289104638 0.718399999999999 -15 41.471999999999994 38.58024691358025 0.6016000000000021 +14 14.832 26.96871628910464 0.718399999999999 +15 41.47199999999999 38.58024691358025 0.6016000000000021 16 115.928 55.206680008281 0.299499999999997 -17 324.96000000000004 78.77892663712457 1.5819999999999892 +17 324.96 78.77892663712457 1.581999999999989 18 913.5360000000001 112.0919153706039 0.2623999999999995 -19 2573.9519999999998 159.13272663981303 0.5338000000000287 -20 7263.360000000001 225.57053484888536 3.2374999999999776 -21 20516.095999999998 319.4369923010694 3.502100000000283 -22 57982.975999999995 452.1051144391071 1.1904000000001105 -23 163928.064 639.6561848006696 10.504599999999186 +19 2573.952 159.132726639813 0.5338000000000287 +20 7263.360000000001 225.5705348488854 3.237499999999978 +21 20516.096 319.4369923010694 3.502100000000283 +22 57982.976 452.1051144391071 1.19040000000011 +23 163928.064 639.6561848006696 10.50459999999919 24 463544.32 904.8334364230803 18.86399999999969 -- !sql_test_SmallInt_Double_3 -- @@ -9435,109 +9435,109 @@ -- !sql_test_SmallInt_DecimalV2_0 -- \N \N \N -1 34.395000000 -14.395000000 -2 54.484000000 -14.484000000 -3 88.756000000 -8.756000000 -4 148.943000000 11.057000000 -5 257.494000000 62.506000000 -6 457.874000000 182.126000000 -7 834.980000000 445.020000000 +1 34.395200000 -14.395200000 +2 54.483700000 -14.483700000 +3 88.755800000 -8.755800000 +4 148.942900000 11.057100000 +5 257.494200000 62.505800000 +6 457.873600000 182.126400000 +7 834.979800000 445.020200000 8 1555.741000000 1004.259000000 -9 2949.955000000 2170.045000000 +9 2949.955300000 2170.044700000 10 5671.479000000 4568.521000000 -11 11019.908000000 9460.092000000 -12 21582.957000000 19377.043000000 -13 34.395000000 -14.395000000 -14 54.484000000 -14.484000000 -15 88.756000000 -8.756000000 -16 148.943000000 11.057000000 -17 257.494000000 62.506000000 -18 457.874000000 182.126000000 -19 834.980000000 445.020000000 +11 11019.908400000 9460.091600000 +12 21582.956500000 19377.043500000 +13 34.395200000 -14.395200000 +14 54.483700000 -14.483700000 +15 88.755800000 -8.755800000 +16 148.942900000 11.057100000 +17 257.494200000 62.505800000 +18 457.873600000 182.126400000 +19 834.979800000 445.020200000 20 1555.741000000 1004.259000000 -21 2949.955000000 2170.045000000 +21 2949.955300000 2170.044700000 22 5671.479000000 4568.521000000 -23 11019.908000000 9460.092000000 -24 21582.957000000 19377.043000000 +23 11019.908400000 9460.091600000 +24 21582.956500000 19377.043500000 -- !sql_test_SmallInt_DecimalV2_notn_0 -- -1 34.395000000 -14.395000000 -2 54.484000000 -14.484000000 -3 88.756000000 -8.756000000 -4 148.943000000 11.057000000 -5 257.494000000 62.506000000 -6 457.874000000 182.126000000 -7 834.980000000 445.020000000 +1 34.395200000 -14.395200000 +2 54.483700000 -14.483700000 +3 88.755800000 -8.755800000 +4 148.942900000 11.057100000 +5 257.494200000 62.505800000 +6 457.873600000 182.126400000 +7 834.979800000 445.020200000 8 1555.741000000 1004.259000000 -9 2949.955000000 2170.045000000 +9 2949.955300000 2170.044700000 10 5671.479000000 4568.521000000 -11 11019.908000000 9460.092000000 -12 21582.957000000 19377.043000000 -13 34.395000000 -14.395000000 -14 54.484000000 -14.484000000 -15 88.756000000 -8.756000000 -16 148.943000000 11.057000000 -17 257.494000000 62.506000000 -18 457.874000000 182.126000000 -19 834.980000000 445.020000000 +11 11019.908400000 9460.091600000 +12 21582.956500000 19377.043500000 +13 34.395200000 -14.395200000 +14 54.483700000 -14.483700000 +15 88.755800000 -8.755800000 +16 148.942900000 11.057100000 +17 257.494200000 62.505800000 +18 457.873600000 182.126400000 +19 834.979800000 445.020200000 20 1555.741000000 1004.259000000 -21 2949.955000000 2170.045000000 +21 2949.955300000 2170.044700000 22 5671.479000000 4568.521000000 -23 11019.908000000 9460.092000000 -24 21582.957000000 19377.043000000 +23 11019.908400000 9460.091600000 +24 21582.956500000 19377.043500000 -- !sql_test_SmallInt_DecimalV2_1 -- \N \N \N \N -1 243.950000000 0.409920066 10.000000000 -2 689.680000000 0.579979121 20.000000000 -3 1950.240000000 0.820411847 40.000000000 -4 5515.440000000 1.160378864 11.057000000 -5 15599.040000000 1.641126633 62.506000000 -6 44119.680000000 2.320959717 44.252000000 -7 124787.200000000 3.282387937 55.060000000 +1 243.952000000 0.409916705 10.000000000 +2 689.674000000 0.579984166 20.000000000 +3 1950.232000000 0.820415212 40.000000000 +4 5515.432000000 1.160380547 11.057100000 +5 15599.072000000 1.641123267 62.505800000 +6 44119.552000000 2.320966450 44.252800000 +7 124787.072000000 3.282391304 55.060600000 8 352948.480000000 4.642037274 177.036000000 -9 998284.800000000 6.564860048 220.270000000 +9 998285.568000000 6.564854997 220.268200000 10 2823572.480000000 9.284125053 156.689000000 -11 7986257.920000000 13.129753766 101.196000000 -12 22588559.360000000 18.568266941 626.774000000 -13 243.950000000 0.409920066 10.000000000 -14 689.680000000 0.579979121 20.000000000 -15 1950.240000000 0.820411847 40.000000000 -16 5515.440000000 1.160378864 11.057000000 -17 15599.040000000 1.641126633 62.506000000 -18 44119.680000000 2.320959717 44.252000000 -19 124787.200000000 3.282387937 55.060000000 +11 7986262.016000000 13.129747032 101.190800000 +12 22588549.120000000 18.568275358 626.783000000 +13 243.952000000 0.409916705 10.000000000 +14 689.674000000 0.579984166 20.000000000 +15 1950.232000000 0.820415212 40.000000000 +16 5515.432000000 1.160380547 11.057100000 +17 15599.072000000 1.641123267 62.505800000 +18 44119.552000000 2.320966450 44.252800000 +19 124787.072000000 3.282391304 55.060600000 20 352948.480000000 4.642037274 177.036000000 -21 998284.800000000 6.564860048 220.270000000 +21 998285.568000000 6.564854997 220.268200000 22 2823572.480000000 9.284125053 156.689000000 -23 7986257.920000000 13.129753766 101.196000000 -24 22588559.360000000 18.568266941 626.774000000 +23 7986262.016000000 13.129747032 101.190800000 +24 22588549.120000000 18.568275358 626.783000000 -- !sql_test_SmallInt_DecimalV2_notn_1 -- -1 243.950000000 0.409920066 10.000000000 -2 689.680000000 0.579979121 20.000000000 -3 1950.240000000 0.820411847 40.000000000 -4 5515.440000000 1.160378864 11.057000000 -5 15599.040000000 1.641126633 62.506000000 -6 44119.680000000 2.320959717 44.252000000 -7 124787.200000000 3.282387937 55.060000000 +1 243.952000000 0.409916705 10.000000000 +2 689.674000000 0.579984166 20.000000000 +3 1950.232000000 0.820415212 40.000000000 +4 5515.432000000 1.160380547 11.057100000 +5 15599.072000000 1.641123267 62.505800000 +6 44119.552000000 2.320966450 44.252800000 +7 124787.072000000 3.282391304 55.060600000 8 352948.480000000 4.642037274 177.036000000 -9 998284.800000000 6.564860048 220.270000000 +9 998285.568000000 6.564854997 220.268200000 10 2823572.480000000 9.284125053 156.689000000 -11 7986257.920000000 13.129753766 101.196000000 -12 22588559.360000000 18.568266941 626.774000000 -13 243.950000000 0.409920066 10.000000000 -14 689.680000000 0.579979121 20.000000000 -15 1950.240000000 0.820411847 40.000000000 -16 5515.440000000 1.160378864 11.057000000 -17 15599.040000000 1.641126633 62.506000000 -18 44119.680000000 2.320959717 44.252000000 -19 124787.200000000 3.282387937 55.060000000 +11 7986262.016000000 13.129747032 101.190800000 +12 22588549.120000000 18.568275358 626.783000000 +13 243.952000000 0.409916705 10.000000000 +14 689.674000000 0.579984166 20.000000000 +15 1950.232000000 0.820415212 40.000000000 +16 5515.432000000 1.160380547 11.057100000 +17 15599.072000000 1.641123267 62.505800000 +18 44119.552000000 2.320966450 44.252800000 +19 124787.072000000 3.282391304 55.060600000 20 352948.480000000 4.642037274 177.036000000 -21 998284.800000000 6.564860048 220.270000000 +21 998285.568000000 6.564854997 220.268200000 22 2823572.480000000 9.284125053 156.689000000 -23 7986257.920000000 13.129753766 101.196000000 -24 22588559.360000000 18.568266941 626.774000000 +23 7986262.016000000 13.129747032 101.190800000 +24 22588549.120000000 18.568275358 626.783000000 -- !sql_test_SmallInt_DecimalV2_2 -- \N \N @@ -9981,12 +9981,12 @@ 14 238.094 -198.094 15 348.359 -268.359 16 516.033 -356.033 -17 776.608 -456.60799999999995 +17 776.6079999999999 -456.6079999999999 18 1191.989 -551.989 19 1873.161 -593.1610000000001 -20 3023.94 -463.94000000000005 +20 3023.94 -463.9400000000001 21 5026.294 93.70600000000013 -22 8607.86 1632.1399999999999 +22 8607.860000000001 1632.14 23 15172.574 5307.426 24 27455.71 13504.29 @@ -10007,12 +10007,12 @@ 14 238.094 -198.094 15 348.359 -268.359 16 516.033 -356.033 -17 776.608 -456.60799999999995 +17 776.6079999999999 -456.6079999999999 18 1191.989 -551.989 19 1873.161 -593.1610000000001 -20 3023.94 -463.94000000000005 +20 3023.94 -463.9400000000001 21 5026.294 93.70600000000013 -22 8607.86 1632.1399999999999 +22 8607.860000000001 1632.14 23 15172.574 5307.426 24 27455.71 13504.29 @@ -10030,18 +10030,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1542.8899999999999 0.06481343452870912 10.0 -14 4361.88 0.09170357735655268 20.0 -15 12334.359999999999 0.1297189315051612 40.0 -16 34882.64 0.1834723518632764 80.0 -17 98657.28 0.25948414551870885 160.0 -18 279036.48 0.36697710636258024 320.0 -19 789223.04 0.5189914374522061 640.0 -20 2232243.2 0.7339702053969747 1280.0 +13 1542.89 0.06481343452870912 10 +14 4361.88 0.09170357735655268 20 +15 12334.36 0.1297189315051612 40 +16 34882.64 0.1834723518632764 80 +17 98657.28 0.2594841455187089 160 +18 279036.48 0.3669771063625802 320 +19 789223.04 0.5189914374522061 640 +20 2232243.2 0.7339702053969747 1280 21 6313712.64 1.037994659193105 93.70600000000013 -22 1.78578432E7 1.4679488282213162 1632.1399999999999 -23 5.050955776E7 2.0759952106141744 374.85200000000077 -24 1.428625408E8 2.9359018651864828 6528.58 +22 17857843.2 1.467948828221316 1632.14 +23 50509557.76 2.075995210614174 374.8520000000008 +24 142862540.8 2.935901865186483 6528.58 -- !sql_test_SmallInt_Char_notn_1 -- 1 \N \N \N @@ -10056,18 +10056,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1542.8899999999999 0.06481343452870912 10.0 -14 4361.88 0.09170357735655268 20.0 -15 12334.359999999999 0.1297189315051612 40.0 -16 34882.64 0.1834723518632764 80.0 -17 98657.28 0.25948414551870885 160.0 -18 279036.48 0.36697710636258024 320.0 -19 789223.04 0.5189914374522061 640.0 -20 2232243.2 0.7339702053969747 1280.0 +13 1542.89 0.06481343452870912 10 +14 4361.88 0.09170357735655268 20 +15 12334.36 0.1297189315051612 40 +16 34882.64 0.1834723518632764 80 +17 98657.28 0.2594841455187089 160 +18 279036.48 0.3669771063625802 320 +19 789223.04 0.5189914374522061 640 +20 2232243.2 0.7339702053969747 1280 21 6313712.64 1.037994659193105 93.70600000000013 -22 1.78578432E7 1.4679488282213162 1632.1399999999999 -23 5.050955776E7 2.0759952106141744 374.85200000000077 -24 1.428625408E8 2.9359018651864828 6528.58 +22 17857843.2 1.467948828221316 1632.14 +23 50509557.76 2.075995210614174 374.8520000000008 +24 142862540.8 2.935901865186483 6528.58 -- !sql_test_SmallInt_Char_3 -- \N \N \N \N @@ -10147,7 +10147,7 @@ 21 39628.731 -34508.731 22 57542.999 -47302.999 23 84377.243 -63897.243 -24 125325.843 -84365.843 +24 125325.843 -84365.84299999999 -- !sql_test_SmallInt_Varchar_notn_0 -- 1 \N \N @@ -10173,7 +10173,7 @@ 21 39628.731 -34508.731 22 57542.999 -47302.999 23 84377.243 -63897.243 -24 125325.843 -84365.843 +24 125325.843 -84365.84299999999 -- !sql_test_SmallInt_Varchar_1 -- \N \N \N \N @@ -10189,18 +10189,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 23191.21 0.004311978547044333 10.0 -14 65561.64 0.0061011286477885545 20.0 -15 185389.64 0.00863047147618389 40.0 -16 524295.04 0.012206867339427815 80.0 -17 1482836.7999999998 0.017264206013770364 160.0 -18 4193963.8400000003 0.02441604265238491 320.0 -19 1.1862134399999999E7 0.03453004208079113 640.0 -20 3.3550917119999997E7 0.048833240359421805 1280.0 -21 9.489595136E7 0.0690609020308788 2560.0 -22 2.6840575488000003E8 0.09766705640018801 5120.0 -23 7.5916536832E8 0.13812221207092903 10240.0 -24 2.1472428646399999E9 0.1953344015747005 20480.0 +13 23191.21 0.004311978547044333 10 +14 65561.64 0.006101128647788555 20 +15 185389.64 0.00863047147618389 40 +16 524295.04 0.01220686733942782 80 +17 1482836.8 0.01726420601377036 160 +18 4193963.84 0.02441604265238491 320 +19 11862134.4 0.03453004208079113 640 +20 33550917.12 0.0488332403594218 1280 +21 94895951.36 0.06906090203087881 2560 +22 268405754.88 0.09766705640018801 5120 +23 759165368.3200001 0.138122212070929 10240 +24 2147242864.64 0.1953344015747005 20480 -- !sql_test_SmallInt_Varchar_notn_1 -- 1 \N \N \N @@ -10215,18 +10215,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 23191.21 0.004311978547044333 10.0 -14 65561.64 0.0061011286477885545 20.0 -15 185389.64 0.00863047147618389 40.0 -16 524295.04 0.012206867339427815 80.0 -17 1482836.7999999998 0.017264206013770364 160.0 -18 4193963.8400000003 0.02441604265238491 320.0 -19 1.1862134399999999E7 0.03453004208079113 640.0 -20 3.3550917119999997E7 0.048833240359421805 1280.0 -21 9.489595136E7 0.0690609020308788 2560.0 -22 2.6840575488000003E8 0.09766705640018801 5120.0 -23 7.5916536832E8 0.13812221207092903 10240.0 -24 2.1472428646399999E9 0.1953344015747005 20480.0 +13 23191.21 0.004311978547044333 10 +14 65561.64 0.006101128647788555 20 +15 185389.64 0.00863047147618389 40 +16 524295.04 0.01220686733942782 80 +17 1482836.8 0.01726420601377036 160 +18 4193963.84 0.02441604265238491 320 +19 11862134.4 0.03453004208079113 640 +20 33550917.12 0.0488332403594218 1280 +21 94895951.36 0.06906090203087881 2560 +22 268405754.88 0.09766705640018801 5120 +23 759165368.3200001 0.138122212070929 10240 +24 2147242864.64 0.1953344015747005 20480 -- !sql_test_SmallInt_Varchar_3 -- \N \N \N \N @@ -10301,7 +10301,7 @@ 16 30046.255 -29886.255 17 42536.012 -42216.012 18 60246.842 -59606.842 -19 85388.017 -84108.017 +19 85388.01700000001 -84108.01700000001 20 121130.851 -118570.851 21 172054.031 -166934.031 22 244820.285 -234580.285 @@ -10327,7 +10327,7 @@ 16 30046.255 -29886.255 17 42536.012 -42216.012 18 60246.842 -59606.842 -19 85388.017 -84108.017 +19 85388.01700000001 -84108.01700000001 20 121130.851 -118570.851 21 172054.031 -166934.031 22 244820.285 -234580.285 @@ -10348,18 +10348,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 106040.17 9.43038850277211E-4 10.0 -14 299775.86 0.0013343302559452252 20.0 -15 847680.52 0.0018875035608934367 40.0 -16 2397300.4 0.002669669600021758 80.0 -17 6780161.92 0.003775721037647431 160.0 -18 1.9176589439999998E7 0.005339844205372945 320.0 -19 5.423873088E7 0.007551799117612392 640.0 -20 1.5340908928E8 0.010679940854153802 1280.0 -21 4.3390471935999995E8 0.015103776722379092 2560.0 -22 1.2272654592E9 0.02136000797829673 5120.0 -23 3.47122748416E9 0.030207642823320873 10240.0 -24 9.818109153279999E9 0.04272007913661035 20480.0 +13 106040.17 0.000943038850277211 10 +14 299775.86 0.001334330255945225 20 +15 847680.52 0.001887503560893437 40 +16 2397300.4 0.002669669600021758 80 +17 6780161.92 0.003775721037647431 160 +18 19176589.44 0.005339844205372945 320 +19 54238730.88 0.007551799117612392 640 +20 153409089.28 0.0106799408541538 1280 +21 433904719.36 0.01510377672237909 2560 +22 1227265459.2 0.02136000797829673 5120 +23 3471227484.16 0.03020764282332087 10240 +24 9818109153.279999 0.04272007913661035 20480 -- !sql_test_SmallInt_String_notn_1 -- 1 \N \N \N @@ -10374,18 +10374,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 106040.17 9.43038850277211E-4 10.0 -14 299775.86 0.0013343302559452252 20.0 -15 847680.52 0.0018875035608934367 40.0 -16 2397300.4 0.002669669600021758 80.0 -17 6780161.92 0.003775721037647431 160.0 -18 1.9176589439999998E7 0.005339844205372945 320.0 -19 5.423873088E7 0.007551799117612392 640.0 -20 1.5340908928E8 0.010679940854153802 1280.0 -21 4.3390471935999995E8 0.015103776722379092 2560.0 -22 1.2272654592E9 0.02136000797829673 5120.0 -23 3.47122748416E9 0.030207642823320873 10240.0 -24 9.818109153279999E9 0.04272007913661035 20480.0 +13 106040.17 0.000943038850277211 10 +14 299775.86 0.001334330255945225 20 +15 847680.52 0.001887503560893437 40 +16 2397300.4 0.002669669600021758 80 +17 6780161.92 0.003775721037647431 160 +18 19176589.44 0.005339844205372945 320 +19 54238730.88 0.007551799117612392 640 +20 153409089.28 0.0106799408541538 1280 +21 433904719.36 0.01510377672237909 2560 +22 1227265459.2 0.02136000797829673 5120 +23 3471227484.16 0.03020764282332087 10240 +24 9818109153.279999 0.04272007913661035 20480 -- !sql_test_SmallInt_String_3 -- \N \N \N \N @@ -10495,56 +10495,56 @@ -- !sql_test_SmallInt_Date_1 -- \N \N \N \N -1 201203010 4.970104572491237E-7 10 -2 402406040 9.940208650943708E-7 20 -3 804812120 1.9880416313809986E-6 40 -4 1609624320 3.9760830651465306E-6 80 -5 3219248800 7.952165735062167E-6 160 -6 6438497920 1.5904330679662627E-5 320 -7 12876996480 3.180865977840199E-5 640 -8 25753994240 6.361731639495777E-5 1280 -9 51507991040 1.2723462646622375E-4 2560 -10 103015987200 2.544692402850652E-4 5120 -11 206031984640 5.089384552753683E-4 10240 -12 412063989760 0.0010178768599612173 20480 -13 201203010 4.970104572491237E-7 10 -14 402406040 9.940208650943708E-7 20 -15 804812120 1.9880416313809986E-6 40 -16 1609624320 3.9760830651465306E-6 80 -17 3219248800 7.952165735062167E-6 160 -18 6438497920 1.5904330679662627E-5 320 -19 12876996480 3.180865977840199E-5 640 -20 25753994240 6.361731639495777E-5 1280 -21 51507991040 1.2723462646622375E-4 2560 -22 103015987200 2.544692402850652E-4 5120 -23 206031984640 5.089384552753683E-4 10240 -24 412063989760 0.0010178768599612173 20480 +1 201203010 4.970104572491237e-07 10 +2 402406040 9.940208650943708e-07 20 +3 804812120 1.988041631380999e-06 40 +4 1609624320 3.976083065146531e-06 80 +5 3219248800 7.952165735062167e-06 160 +6 6438497920 1.590433067966263e-05 320 +7 12876996480 3.180865977840199e-05 640 +8 25753994240 6.361731639495777e-05 1280 +9 51507991040 0.0001272346264662238 2560 +10 103015987200 0.0002544692402850652 5120 +11 206031984640 0.0005089384552753683 10240 +12 412063989760 0.001017876859961217 20480 +13 201203010 4.970104572491237e-07 10 +14 402406040 9.940208650943708e-07 20 +15 804812120 1.988041631380999e-06 40 +16 1609624320 3.976083065146531e-06 80 +17 3219248800 7.952165735062167e-06 160 +18 6438497920 1.590433067966263e-05 320 +19 12876996480 3.180865977840199e-05 640 +20 25753994240 6.361731639495777e-05 1280 +21 51507991040 0.0001272346264662238 2560 +22 103015987200 0.0002544692402850652 5120 +23 206031984640 0.0005089384552753683 10240 +24 412063989760 0.001017876859961217 20480 -- !sql_test_SmallInt_Date_notn_1 -- -1 201203010 4.970104572491237E-7 10 -2 402406040 9.940208650943708E-7 20 -3 804812120 1.9880416313809986E-6 40 -4 1609624320 3.9760830651465306E-6 80 -5 3219248800 7.952165735062167E-6 160 -6 6438497920 1.5904330679662627E-5 320 -7 12876996480 3.180865977840199E-5 640 -8 25753994240 6.361731639495777E-5 1280 -9 51507991040 1.2723462646622375E-4 2560 -10 103015987200 2.544692402850652E-4 5120 -11 206031984640 5.089384552753683E-4 10240 -12 412063989760 0.0010178768599612173 20480 -13 201203010 4.970104572491237E-7 10 -14 402406040 9.940208650943708E-7 20 -15 804812120 1.9880416313809986E-6 40 -16 1609624320 3.9760830651465306E-6 80 -17 3219248800 7.952165735062167E-6 160 -18 6438497920 1.5904330679662627E-5 320 -19 12876996480 3.180865977840199E-5 640 -20 25753994240 6.361731639495777E-5 1280 -21 51507991040 1.2723462646622375E-4 2560 -22 103015987200 2.544692402850652E-4 5120 -23 206031984640 5.089384552753683E-4 10240 -24 412063989760 0.0010178768599612173 20480 +1 201203010 4.970104572491237e-07 10 +2 402406040 9.940208650943708e-07 20 +3 804812120 1.988041631380999e-06 40 +4 1609624320 3.976083065146531e-06 80 +5 3219248800 7.952165735062167e-06 160 +6 6438497920 1.590433067966263e-05 320 +7 12876996480 3.180865977840199e-05 640 +8 25753994240 6.361731639495777e-05 1280 +9 51507991040 0.0001272346264662238 2560 +10 103015987200 0.0002544692402850652 5120 +11 206031984640 0.0005089384552753683 10240 +12 412063989760 0.001017876859961217 20480 +13 201203010 4.970104572491237e-07 10 +14 402406040 9.940208650943708e-07 20 +15 804812120 1.988041631380999e-06 40 +16 1609624320 3.976083065146531e-06 80 +17 3219248800 7.952165735062167e-06 160 +18 6438497920 1.590433067966263e-05 320 +19 12876996480 3.180865977840199e-05 640 +20 25753994240 6.361731639495777e-05 1280 +21 51507991040 0.0001272346264662238 2560 +22 103015987200 0.0002544692402850652 5120 +23 206031984640 0.0005089384552753683 10240 +24 412063989760 0.001017876859961217 20480 -- !sql_test_SmallInt_Date_3 -- \N \N \N \N @@ -10707,56 +10707,56 @@ -- !sql_test_SmallInt_DateTime_1 -- \N \N \N \N -1 201203010100010 4.970104570020795E-13 10 -2 402406040402040 9.940208641012542E-13 20 -3 804812121208120 1.9880416283967083E-12 40 -4 1609624323224320 3.976083057181837E-12 80 -5 3219248808064800 7.952165715140554E-12 160 -6 6438497939361920 1.590433063183495E-11 320 -7 12876996525188480 3.180865966677775E-11 640 -8 25753994343306240 6.36173161397715E-11 1280 -9 51507991272471040 1.2723462589197567E-10 2560 -10 103015987716659200 2.5446923900881793E-10 5120 -11 206031985776752640 5.089384524673715E-10 10240 -12 412063992240373760 1.0178768538342198E-9 20480 -13 201203010100010 4.970104570020795E-13 10 -14 402406040402040 9.940208641012542E-13 20 -15 804812121208120 1.9880416283967083E-12 40 -16 1609624323224320 3.976083057181837E-12 80 -17 3219248808064800 7.952165715140554E-12 160 -18 6438497939361920 1.590433063183495E-11 320 -19 12876996525188480 3.180865966677775E-11 640 -20 25753994343306240 6.36173161397715E-11 1280 -21 51507991272471040 1.2723462589197567E-10 2560 -22 103015987716659200 2.5446923900881793E-10 5120 -23 206031985776752640 5.089384524673715E-10 10240 -24 412063992240373760 1.0178768538342198E-9 20480 +1 201203010100010 4.970104570020795e-13 10 +2 402406040402040 9.940208641012542e-13 20 +3 804812121208120 1.988041628396708e-12 40 +4 1609624323224320 3.976083057181837e-12 80 +5 3219248808064800 7.952165715140554e-12 160 +6 6438497939361920 1.590433063183495e-11 320 +7 12876996525188480 3.180865966677775e-11 640 +8 25753994343306240 6.36173161397715e-11 1280 +9 51507991272471040 1.272346258919757e-10 2560 +10 103015987716659200 2.544692390088179e-10 5120 +11 206031985776752640 5.089384524673715e-10 10240 +12 412063992240373760 1.01787685383422e-09 20480 +13 201203010100010 4.970104570020795e-13 10 +14 402406040402040 9.940208641012542e-13 20 +15 804812121208120 1.988041628396708e-12 40 +16 1609624323224320 3.976083057181837e-12 80 +17 3219248808064800 7.952165715140554e-12 160 +18 6438497939361920 1.590433063183495e-11 320 +19 12876996525188480 3.180865966677775e-11 640 +20 25753994343306240 6.36173161397715e-11 1280 +21 51507991272471040 1.272346258919757e-10 2560 +22 103015987716659200 2.544692390088179e-10 5120 +23 206031985776752640 5.089384524673715e-10 10240 +24 412063992240373760 1.01787685383422e-09 20480 -- !sql_test_SmallInt_DateTime_notn_1 -- -1 201203010100010 4.970104570020795E-13 10 -2 402406040402040 9.940208641012542E-13 20 -3 804812121208120 1.9880416283967083E-12 40 -4 1609624323224320 3.976083057181837E-12 80 -5 3219248808064800 7.952165715140554E-12 160 -6 6438497939361920 1.590433063183495E-11 320 -7 12876996525188480 3.180865966677775E-11 640 -8 25753994343306240 6.36173161397715E-11 1280 -9 51507991272471040 1.2723462589197567E-10 2560 -10 103015987716659200 2.5446923900881793E-10 5120 -11 206031985776752640 5.089384524673715E-10 10240 -12 412063992240373760 1.0178768538342198E-9 20480 -13 201203010100010 4.970104570020795E-13 10 -14 402406040402040 9.940208641012542E-13 20 -15 804812121208120 1.9880416283967083E-12 40 -16 1609624323224320 3.976083057181837E-12 80 -17 3219248808064800 7.952165715140554E-12 160 -18 6438497939361920 1.590433063183495E-11 320 -19 12876996525188480 3.180865966677775E-11 640 -20 25753994343306240 6.36173161397715E-11 1280 -21 51507991272471040 1.2723462589197567E-10 2560 -22 103015987716659200 2.5446923900881793E-10 5120 -23 206031985776752640 5.089384524673715E-10 10240 -24 412063992240373760 1.0178768538342198E-9 20480 +1 201203010100010 4.970104570020795e-13 10 +2 402406040402040 9.940208641012542e-13 20 +3 804812121208120 1.988041628396708e-12 40 +4 1609624323224320 3.976083057181837e-12 80 +5 3219248808064800 7.952165715140554e-12 160 +6 6438497939361920 1.590433063183495e-11 320 +7 12876996525188480 3.180865966677775e-11 640 +8 25753994343306240 6.36173161397715e-11 1280 +9 51507991272471040 1.272346258919757e-10 2560 +10 103015987716659200 2.544692390088179e-10 5120 +11 206031985776752640 5.089384524673715e-10 10240 +12 412063992240373760 1.01787685383422e-09 20480 +13 201203010100010 4.970104570020795e-13 10 +14 402406040402040 9.940208641012542e-13 20 +15 804812121208120 1.988041628396708e-12 40 +16 1609624323224320 3.976083057181837e-12 80 +17 3219248808064800 7.952165715140554e-12 160 +18 6438497939361920 1.590433063183495e-11 320 +19 12876996525188480 3.180865966677775e-11 640 +20 25753994343306240 6.36173161397715e-11 1280 +21 51507991272471040 1.272346258919757e-10 2560 +22 103015987716659200 2.544692390088179e-10 5120 +23 206031985776752640 5.089384524673715e-10 10240 +24 412063992240373760 1.01787685383422e-09 20480 -- !sql_test_SmallInt_DateTime_3 -- \N \N \N \N @@ -10919,56 +10919,56 @@ -- !sql_test_SmallInt_DateV2_1 -- \N \N \N \N -1 201203010 4.970104572491237E-7 10 -2 402406040 9.940208650943708E-7 20 -3 804812120 1.9880416313809986E-6 40 -4 1609624320 3.9760830651465306E-6 80 -5 3219248800 7.952165735062167E-6 160 -6 6438497920 1.5904330679662627E-5 320 -7 12876996480 3.180865977840199E-5 640 -8 25753994240 6.361731639495777E-5 1280 -9 51507991040 1.2723462646622375E-4 2560 -10 103015987200 2.544692402850652E-4 5120 -11 206031984640 5.089384552753683E-4 10240 -12 412063989760 0.0010178768599612173 20480 -13 201203010 4.970104572491237E-7 10 -14 402406040 9.940208650943708E-7 20 -15 804812120 1.9880416313809986E-6 40 -16 1609624320 3.9760830651465306E-6 80 -17 3219248800 7.952165735062167E-6 160 -18 6438497920 1.5904330679662627E-5 320 -19 12876996480 3.180865977840199E-5 640 -20 25753994240 6.361731639495777E-5 1280 -21 51507991040 1.2723462646622375E-4 2560 -22 103015987200 2.544692402850652E-4 5120 -23 206031984640 5.089384552753683E-4 10240 -24 412063989760 0.0010178768599612173 20480 +1 201203010 4.970104572491237e-07 10 +2 402406040 9.940208650943708e-07 20 +3 804812120 1.988041631380999e-06 40 +4 1609624320 3.976083065146531e-06 80 +5 3219248800 7.952165735062167e-06 160 +6 6438497920 1.590433067966263e-05 320 +7 12876996480 3.180865977840199e-05 640 +8 25753994240 6.361731639495777e-05 1280 +9 51507991040 0.0001272346264662238 2560 +10 103015987200 0.0002544692402850652 5120 +11 206031984640 0.0005089384552753683 10240 +12 412063989760 0.001017876859961217 20480 +13 201203010 4.970104572491237e-07 10 +14 402406040 9.940208650943708e-07 20 +15 804812120 1.988041631380999e-06 40 +16 1609624320 3.976083065146531e-06 80 +17 3219248800 7.952165735062167e-06 160 +18 6438497920 1.590433067966263e-05 320 +19 12876996480 3.180865977840199e-05 640 +20 25753994240 6.361731639495777e-05 1280 +21 51507991040 0.0001272346264662238 2560 +22 103015987200 0.0002544692402850652 5120 +23 206031984640 0.0005089384552753683 10240 +24 412063989760 0.001017876859961217 20480 -- !sql_test_SmallInt_DateV2_notn_1 -- -1 201203010 4.970104572491237E-7 10 -2 402406040 9.940208650943708E-7 20 -3 804812120 1.9880416313809986E-6 40 -4 1609624320 3.9760830651465306E-6 80 -5 3219248800 7.952165735062167E-6 160 -6 6438497920 1.5904330679662627E-5 320 -7 12876996480 3.180865977840199E-5 640 -8 25753994240 6.361731639495777E-5 1280 -9 51507991040 1.2723462646622375E-4 2560 -10 103015987200 2.544692402850652E-4 5120 -11 206031984640 5.089384552753683E-4 10240 -12 412063989760 0.0010178768599612173 20480 -13 201203010 4.970104572491237E-7 10 -14 402406040 9.940208650943708E-7 20 -15 804812120 1.9880416313809986E-6 40 -16 1609624320 3.9760830651465306E-6 80 -17 3219248800 7.952165735062167E-6 160 -18 6438497920 1.5904330679662627E-5 320 -19 12876996480 3.180865977840199E-5 640 -20 25753994240 6.361731639495777E-5 1280 -21 51507991040 1.2723462646622375E-4 2560 -22 103015987200 2.544692402850652E-4 5120 -23 206031984640 5.089384552753683E-4 10240 -24 412063989760 0.0010178768599612173 20480 +1 201203010 4.970104572491237e-07 10 +2 402406040 9.940208650943708e-07 20 +3 804812120 1.988041631380999e-06 40 +4 1609624320 3.976083065146531e-06 80 +5 3219248800 7.952165735062167e-06 160 +6 6438497920 1.590433067966263e-05 320 +7 12876996480 3.180865977840199e-05 640 +8 25753994240 6.361731639495777e-05 1280 +9 51507991040 0.0001272346264662238 2560 +10 103015987200 0.0002544692402850652 5120 +11 206031984640 0.0005089384552753683 10240 +12 412063989760 0.001017876859961217 20480 +13 201203010 4.970104572491237e-07 10 +14 402406040 9.940208650943708e-07 20 +15 804812120 1.988041631380999e-06 40 +16 1609624320 3.976083065146531e-06 80 +17 3219248800 7.952165735062167e-06 160 +18 6438497920 1.590433067966263e-05 320 +19 12876996480 3.180865977840199e-05 640 +20 25753994240 6.361731639495777e-05 1280 +21 51507991040 0.0001272346264662238 2560 +22 103015987200 0.0002544692402850652 5120 +23 206031984640 0.0005089384552753683 10240 +24 412063989760 0.001017876859961217 20480 -- !sql_test_SmallInt_DateV2_3 -- \N \N \N \N @@ -11131,56 +11131,56 @@ -- !sql_test_SmallInt_DateTimeV2_1 -- \N \N \N \N -1 201203010100010 4.970104570020795E-13 10 -2 402406040402040 9.940208641012542E-13 20 -3 804812121208120 1.9880416283967083E-12 40 -4 1609624323224320 3.976083057181837E-12 80 -5 3219248808064800 7.952165715140554E-12 160 -6 6438497939361920 1.590433063183495E-11 320 -7 12876996525188480 3.180865966677775E-11 640 -8 25753994343306240 6.36173161397715E-11 1280 -9 51507991272471040 1.2723462589197567E-10 2560 -10 103015987716659200 2.5446923900881793E-10 5120 -11 206031985776752640 5.089384524673715E-10 10240 -12 412063992240373760 1.0178768538342198E-9 20480 -13 201203010100010 4.970104570020795E-13 10 -14 402406040402040 9.940208641012542E-13 20 -15 804812121208120 1.9880416283967083E-12 40 -16 1609624323224320 3.976083057181837E-12 80 -17 3219248808064800 7.952165715140554E-12 160 -18 6438497939361920 1.590433063183495E-11 320 -19 12876996525188480 3.180865966677775E-11 640 -20 25753994343306240 6.36173161397715E-11 1280 -21 51507991272471040 1.2723462589197567E-10 2560 -22 103015987716659200 2.5446923900881793E-10 5120 -23 206031985776752640 5.089384524673715E-10 10240 -24 412063992240373760 1.0178768538342198E-9 20480 +1 201203010100010 4.970104570020795e-13 10 +2 402406040402040 9.940208641012542e-13 20 +3 804812121208120 1.988041628396708e-12 40 +4 1609624323224320 3.976083057181837e-12 80 +5 3219248808064800 7.952165715140554e-12 160 +6 6438497939361920 1.590433063183495e-11 320 +7 12876996525188480 3.180865966677775e-11 640 +8 25753994343306240 6.36173161397715e-11 1280 +9 51507991272471040 1.272346258919757e-10 2560 +10 103015987716659200 2.544692390088179e-10 5120 +11 206031985776752640 5.089384524673715e-10 10240 +12 412063992240373760 1.01787685383422e-09 20480 +13 201203010100010 4.970104570020795e-13 10 +14 402406040402040 9.940208641012542e-13 20 +15 804812121208120 1.988041628396708e-12 40 +16 1609624323224320 3.976083057181837e-12 80 +17 3219248808064800 7.952165715140554e-12 160 +18 6438497939361920 1.590433063183495e-11 320 +19 12876996525188480 3.180865966677775e-11 640 +20 25753994343306240 6.36173161397715e-11 1280 +21 51507991272471040 1.272346258919757e-10 2560 +22 103015987716659200 2.544692390088179e-10 5120 +23 206031985776752640 5.089384524673715e-10 10240 +24 412063992240373760 1.01787685383422e-09 20480 -- !sql_test_SmallInt_DateTimeV2_notn_1 -- -1 201203010100010 4.970104570020795E-13 10 -2 402406040402040 9.940208641012542E-13 20 -3 804812121208120 1.9880416283967083E-12 40 -4 1609624323224320 3.976083057181837E-12 80 -5 3219248808064800 7.952165715140554E-12 160 -6 6438497939361920 1.590433063183495E-11 320 -7 12876996525188480 3.180865966677775E-11 640 -8 25753994343306240 6.36173161397715E-11 1280 -9 51507991272471040 1.2723462589197567E-10 2560 -10 103015987716659200 2.5446923900881793E-10 5120 -11 206031985776752640 5.089384524673715E-10 10240 -12 412063992240373760 1.0178768538342198E-9 20480 -13 201203010100010 4.970104570020795E-13 10 -14 402406040402040 9.940208641012542E-13 20 -15 804812121208120 1.9880416283967083E-12 40 -16 1609624323224320 3.976083057181837E-12 80 -17 3219248808064800 7.952165715140554E-12 160 -18 6438497939361920 1.590433063183495E-11 320 -19 12876996525188480 3.180865966677775E-11 640 -20 25753994343306240 6.36173161397715E-11 1280 -21 51507991272471040 1.2723462589197567E-10 2560 -22 103015987716659200 2.5446923900881793E-10 5120 -23 206031985776752640 5.089384524673715E-10 10240 -24 412063992240373760 1.0178768538342198E-9 20480 +1 201203010100010 4.970104570020795e-13 10 +2 402406040402040 9.940208641012542e-13 20 +3 804812121208120 1.988041628396708e-12 40 +4 1609624323224320 3.976083057181837e-12 80 +5 3219248808064800 7.952165715140554e-12 160 +6 6438497939361920 1.590433063183495e-11 320 +7 12876996525188480 3.180865966677775e-11 640 +8 25753994343306240 6.36173161397715e-11 1280 +9 51507991272471040 1.272346258919757e-10 2560 +10 103015987716659200 2.544692390088179e-10 5120 +11 206031985776752640 5.089384524673715e-10 10240 +12 412063992240373760 1.01787685383422e-09 20480 +13 201203010100010 4.970104570020795e-13 10 +14 402406040402040 9.940208641012542e-13 20 +15 804812121208120 1.988041628396708e-12 40 +16 1609624323224320 3.976083057181837e-12 80 +17 3219248808064800 7.952165715140554e-12 160 +18 6438497939361920 1.590433063183495e-11 320 +19 12876996525188480 3.180865966677775e-11 640 +20 25753994343306240 6.36173161397715e-11 1280 +21 51507991272471040 1.272346258919757e-10 2560 +22 103015987716659200 2.544692390088179e-10 5120 +23 206031985776752640 5.089384524673715e-10 10240 +24 412063992240373760 1.01787685383422e-09 20480 -- !sql_test_SmallInt_DateTimeV2_3 -- \N \N \N \N @@ -11350,11 +11350,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 1280 1280.0 0 -9 2560 2560.0 0 -10 5120 5120.0 0 -11 10240 10240.0 0 -12 20480 20480.0 0 +8 1280 1280 0 +9 2560 2560 0 +10 5120 5120 0 +11 10240 10240 0 +12 20480 20480 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -11362,11 +11362,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 1280 1280.0 0 -21 2560 2560.0 0 -22 5120 5120.0 0 -23 10240 10240.0 0 -24 20480 20480.0 0 +20 1280 1280 0 +21 2560 2560 0 +22 5120 5120 0 +23 10240 10240 0 +24 20480 20480 0 -- !sql_test_SmallInt_Boolean_notn_1 -- 1 0 \N \N @@ -11376,11 +11376,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 1280 1280.0 0 -9 2560 2560.0 0 -10 5120 5120.0 0 -11 10240 10240.0 0 -12 20480 20480.0 0 +8 1280 1280 0 +9 2560 2560 0 +10 5120 5120 0 +11 10240 10240 0 +12 20480 20480 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -11388,11 +11388,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 1280 1280.0 0 -21 2560 2560.0 0 -22 5120 5120.0 0 -23 10240 10240.0 0 -24 20480 20480.0 0 +20 1280 1280 0 +21 2560 2560 0 +22 5120 5120 0 +23 10240 10240 0 +24 20480 20480 0 -- !sql_test_SmallInt_Boolean_3 -- \N \N \N \N @@ -11555,56 +11555,56 @@ -- !sql_test_Integer_TinyInt_1 -- \N \N \N \N -1 23795 23795.0 0 +1 23795 23795 0 2 95090 23772.5 1 -3 285135 31681.666666666668 2 +3 285135 31681.66666666667 2 4 760180 47511.25 1 -5 1900225 76009.0 0 -6 4560270 126674.16666666667 1 +5 1900225 76009 0 +6 4560270 126674.1666666667 1 7 10640315 217149.2857142857 2 8 24320360 380005.625 5 9 54720405 675560.5555555555 5 10 121600450 1216004.5 5 -11 267520495 2210913.1818181816 2 -12 583680540 4053337.0833333335 1 -13 23795 23795.0 0 +11 267520495 2210913.181818182 2 +12 583680540 4053337.083333333 1 +13 23795 23795 0 14 95090 23772.5 1 -15 285135 31681.666666666668 2 +15 285135 31681.66666666667 2 16 760180 47511.25 1 -17 1900225 76009.0 0 -18 4560270 126674.16666666667 1 +17 1900225 76009 0 +18 4560270 126674.1666666667 1 19 10640315 217149.2857142857 2 20 24320360 380005.625 5 21 54720405 675560.5555555555 5 22 121600450 1216004.5 5 -23 267520495 2210913.1818181816 2 -24 583680540 4053337.0833333335 1 +23 267520495 2210913.181818182 2 +24 583680540 4053337.083333333 1 -- !sql_test_Integer_TinyInt_notn_1 -- -1 23795 23795.0 0 +1 23795 23795 0 2 95090 23772.5 1 -3 285135 31681.666666666668 2 +3 285135 31681.66666666667 2 4 760180 47511.25 1 -5 1900225 76009.0 0 -6 4560270 126674.16666666667 1 +5 1900225 76009 0 +6 4560270 126674.1666666667 1 7 10640315 217149.2857142857 2 8 24320360 380005.625 5 9 54720405 675560.5555555555 5 10 121600450 1216004.5 5 -11 267520495 2210913.1818181816 2 -12 583680540 4053337.0833333335 1 -13 23795 23795.0 0 +11 267520495 2210913.181818182 2 +12 583680540 4053337.083333333 1 +13 23795 23795 0 14 95090 23772.5 1 -15 285135 31681.666666666668 2 +15 285135 31681.66666666667 2 16 760180 47511.25 1 -17 1900225 76009.0 0 -18 4560270 126674.16666666667 1 +17 1900225 76009 0 +18 4560270 126674.1666666667 1 19 10640315 217149.2857142857 2 20 24320360 380005.625 5 21 54720405 675560.5555555555 5 22 121600450 1216004.5 5 -23 267520495 2210913.1818181816 2 -24 583680540 4053337.0833333335 1 +23 267520495 2210913.181818182 2 +24 583680540 4053337.083333333 1 -- !sql_test_Integer_TinyInt_2 -- \N \N @@ -12085,56 +12085,56 @@ -- !sql_test_Integer_Integer_1 -- \N \N \N \N -1 566202025 1.0 0 -2 2260527025 1.0 0 -3 9033552025 1.0 0 -4 36117102025 1.0 0 -5 144434202025 1.0 0 -6 577668402025 1.0 0 -7 2310536802025 1.0 0 -8 9241873602025 1.0 0 -9 36966947202025 1.0 0 -10 147866694402025 1.0 0 -11 591464588802025 1.0 0 -12 2365853977602025 1.0 0 -13 566202025 1.0 0 -14 2260527025 1.0 0 -15 9033552025 1.0 0 -16 36117102025 1.0 0 -17 144434202025 1.0 0 -18 577668402025 1.0 0 -19 2310536802025 1.0 0 -20 9241873602025 1.0 0 -21 36966947202025 1.0 0 -22 147866694402025 1.0 0 -23 591464588802025 1.0 0 -24 2365853977602025 1.0 0 +1 566202025 1 0 +2 2260527025 1 0 +3 9033552025 1 0 +4 36117102025 1 0 +5 144434202025 1 0 +6 577668402025 1 0 +7 2310536802025 1 0 +8 9241873602025 1 0 +9 36966947202025 1 0 +10 147866694402025 1 0 +11 591464588802025 1 0 +12 2365853977602025 1 0 +13 566202025 1 0 +14 2260527025 1 0 +15 9033552025 1 0 +16 36117102025 1 0 +17 144434202025 1 0 +18 577668402025 1 0 +19 2310536802025 1 0 +20 9241873602025 1 0 +21 36966947202025 1 0 +22 147866694402025 1 0 +23 591464588802025 1 0 +24 2365853977602025 1 0 -- !sql_test_Integer_Integer_notn_1 -- -1 566202025 1.0 0 -2 2260527025 1.0 0 -3 9033552025 1.0 0 -4 36117102025 1.0 0 -5 144434202025 1.0 0 -6 577668402025 1.0 0 -7 2310536802025 1.0 0 -8 9241873602025 1.0 0 -9 36966947202025 1.0 0 -10 147866694402025 1.0 0 -11 591464588802025 1.0 0 -12 2365853977602025 1.0 0 -13 566202025 1.0 0 -14 2260527025 1.0 0 -15 9033552025 1.0 0 -16 36117102025 1.0 0 -17 144434202025 1.0 0 -18 577668402025 1.0 0 -19 2310536802025 1.0 0 -20 9241873602025 1.0 0 -21 36966947202025 1.0 0 -22 147866694402025 1.0 0 -23 591464588802025 1.0 0 -24 2365853977602025 1.0 0 +1 566202025 1 0 +2 2260527025 1 0 +3 9033552025 1 0 +4 36117102025 1 0 +5 144434202025 1 0 +6 577668402025 1 0 +7 2310536802025 1 0 +8 9241873602025 1 0 +9 36966947202025 1 0 +10 147866694402025 1 0 +11 591464588802025 1 0 +12 2365853977602025 1 0 +13 566202025 1 0 +14 2260527025 1 0 +15 9033552025 1 0 +16 36117102025 1 0 +17 144434202025 1 0 +18 577668402025 1 0 +19 2310536802025 1 0 +20 9241873602025 1 0 +21 36966947202025 1 0 +22 147866694402025 1 0 +23 591464588802025 1 0 +24 2365853977602025 1 0 -- !sql_test_Integer_Integer_2 -- \N \N @@ -12353,7 +12353,7 @@ 1 127411017555 0.004443901601802885 23795 2 508649675055 0.004444172749654407 47545 3 2032611365055 0.004444308528578735 95045 -4 8126472245055 0.0044443764693809715 190045 +4 8126472245055 0.004444376469380971 190045 5 32497944005055 0.004444410452628434 380045 6 129975887525055 0.004444427447465168 760045 7 519871774565055 0.004444435945686964 1520045 @@ -12365,7 +12365,7 @@ 13 127411017555 0.004443901601802885 23795 14 508649675055 0.004444172749654407 47545 15 2032611365055 0.004444308528578735 95045 -16 8126472245055 0.0044443764693809715 190045 +16 8126472245055 0.004444376469380971 190045 17 32497944005055 0.004444410452628434 380045 18 129975887525055 0.004444427447465168 760045 19 519871774565055 0.004444435945686964 1520045 @@ -12379,7 +12379,7 @@ 1 127411017555 0.004443901601802885 23795 2 508649675055 0.004444172749654407 47545 3 2032611365055 0.004444308528578735 95045 -4 8126472245055 0.0044443764693809715 190045 +4 8126472245055 0.004444376469380971 190045 5 32497944005055 0.004444410452628434 380045 6 129975887525055 0.004444427447465168 760045 7 519871774565055 0.004444435945686964 1520045 @@ -12391,7 +12391,7 @@ 13 127411017555 0.004443901601802885 23795 14 508649675055 0.004444172749654407 47545 15 2032611365055 0.004444308528578735 95045 -16 8126472245055 0.0044443764693809715 190045 +16 8126472245055 0.004444376469380971 190045 17 32497944005055 0.004444410452628434 380045 18 129975887525055 0.004444427447465168 760045 19 519871774565055 0.004444435945686964 1520045 @@ -12562,56 +12562,56 @@ -- !sql_test_Integer_LargeInt_1 -- \N \N \N \N -1 2548221897775 2.221949452260746E-4 23795 -2 10172996591525 2.2220856997860568E-4 47545 -3 40652233479025 2.222153926588306E-4 95045 -4 162529457254025 2.2221880657947974E-4 190045 -5 649958904804025 2.2222051418550786E-4 380045 -6 2599517799904025 2.2222136815001908E-4 760045 -7 10397435590104025 2.222217951726579E-4 1520045 -8 41588471170504025 2.2222200869407422E-4 3040045 -9 166351342331304025 2.2222211545730672E-4 6080045 -10 665400284652904025 2.222221688395541E-4 12160045 -11 2661590969296104025 2.2222219553083558E-4 24320045 -12 10646343538582504025 2.2222220887651575E-4 48640045 -13 2548221897775 2.221949452260746E-4 23795 -14 10172996591525 2.2220856997860568E-4 47545 -15 40652233479025 2.222153926588306E-4 95045 -16 162529457254025 2.2221880657947974E-4 190045 -17 649958904804025 2.2222051418550786E-4 380045 -18 2599517799904025 2.2222136815001908E-4 760045 -19 10397435590104025 2.222217951726579E-4 1520045 -20 41588471170504025 2.2222200869407422E-4 3040045 -21 166351342331304025 2.2222211545730672E-4 6080045 -22 665400284652904025 2.222221688395541E-4 12160045 -23 2661590969296104025 2.2222219553083558E-4 24320045 -24 10646343538582504025 2.2222220887651575E-4 48640045 +1 2548221897775 0.0002221949452260746 23795 +2 10172996591525 0.0002222085699786057 47545 +3 40652233479025 0.0002222153926588306 95045 +4 162529457254025 0.0002222188065794797 190045 +5 649958904804025 0.0002222205141855079 380045 +6 2599517799904025 0.0002222213681500191 760045 +7 10397435590104025 0.0002222217951726579 1520045 +8 41588471170504025 0.0002222220086940742 3040045 +9 166351342331304025 0.0002222221154573067 6080045 +10 665400284652904025 0.0002222221688395541 12160045 +11 2661590969296104025 0.0002222221955308356 24320045 +12 10646343538582504025 0.0002222222088765157 48640045 +13 2548221897775 0.0002221949452260746 23795 +14 10172996591525 0.0002222085699786057 47545 +15 40652233479025 0.0002222153926588306 95045 +16 162529457254025 0.0002222188065794797 190045 +17 649958904804025 0.0002222205141855079 380045 +18 2599517799904025 0.0002222213681500191 760045 +19 10397435590104025 0.0002222217951726579 1520045 +20 41588471170504025 0.0002222220086940742 3040045 +21 166351342331304025 0.0002222221154573067 6080045 +22 665400284652904025 0.0002222221688395541 12160045 +23 2661590969296104025 0.0002222221955308356 24320045 +24 10646343538582504025 0.0002222222088765157 48640045 -- !sql_test_Integer_LargeInt_notn_1 -- -1 2548221897775 2.221949452260746E-4 23795 -2 10172996591525 2.2220856997860568E-4 47545 -3 40652233479025 2.222153926588306E-4 95045 -4 162529457254025 2.2221880657947974E-4 190045 -5 649958904804025 2.2222051418550786E-4 380045 -6 2599517799904025 2.2222136815001908E-4 760045 -7 10397435590104025 2.222217951726579E-4 1520045 -8 41588471170504025 2.2222200869407422E-4 3040045 -9 166351342331304025 2.2222211545730672E-4 6080045 -10 665400284652904025 2.222221688395541E-4 12160045 -11 2661590969296104025 2.2222219553083558E-4 24320045 -12 10646343538582504025 2.2222220887651575E-4 48640045 -13 2548221897775 2.221949452260746E-4 23795 -14 10172996591525 2.2220856997860568E-4 47545 -15 40652233479025 2.222153926588306E-4 95045 -16 162529457254025 2.2221880657947974E-4 190045 -17 649958904804025 2.2222051418550786E-4 380045 -18 2599517799904025 2.2222136815001908E-4 760045 -19 10397435590104025 2.222217951726579E-4 1520045 -20 41588471170504025 2.2222200869407422E-4 3040045 -21 166351342331304025 2.2222211545730672E-4 6080045 -22 665400284652904025 2.222221688395541E-4 12160045 -23 2661590969296104025 2.2222219553083558E-4 24320045 -24 10646343538582504025 2.2222220887651575E-4 48640045 +1 2548221897775 0.0002221949452260746 23795 +2 10172996591525 0.0002222085699786057 47545 +3 40652233479025 0.0002222153926588306 95045 +4 162529457254025 0.0002222188065794797 190045 +5 649958904804025 0.0002222205141855079 380045 +6 2599517799904025 0.0002222213681500191 760045 +7 10397435590104025 0.0002222217951726579 1520045 +8 41588471170504025 0.0002222220086940742 3040045 +9 166351342331304025 0.0002222221154573067 6080045 +10 665400284652904025 0.0002222221688395541 12160045 +11 2661590969296104025 0.0002222221955308356 24320045 +12 10646343538582504025 0.0002222222088765157 48640045 +13 2548221897775 0.0002221949452260746 23795 +14 10172996591525 0.0002222085699786057 47545 +15 40652233479025 0.0002222153926588306 95045 +16 162529457254025 0.0002222188065794797 190045 +17 649958904804025 0.0002222205141855079 380045 +18 2599517799904025 0.0002222213681500191 760045 +19 10397435590104025 0.0002222217951726579 1520045 +20 41588471170504025 0.0002222220086940742 3040045 +21 166351342331304025 0.0002222221154573067 6080045 +22 665400284652904025 0.0002222221688395541 12160045 +23 2661590969296104025 0.0002222221955308356 24320045 +24 10646343538582504025 0.0002222222088765157 48640045 -- !sql_test_Integer_LargeInt_3 -- \N \N \N \N @@ -12724,106 +12724,106 @@ 1 23795.10000000149 23794.89999999851 2 47545.20000000298 47544.79999999702 3 95045.30000001192 95044.69999998808 -4 190045.40000000596 190044.59999999404 +4 190045.400000006 190044.599999994 5 380045.5 380044.5 6 760045.6000000238 760044.3999999762 7 1520045.699999988 1520044.300000012 8 3040045.800000012 3040044.199999988 9 6080045.899999976 6080044.100000024 -10 1.2160046E7 1.2160044E7 -11 2.4320046100000024E7 2.4320043899999976E7 -12 4.864004620000005E7 4.864004379999995E7 +10 12160046 12160044 +11 24320046.10000002 24320043.89999998 +12 48640046.20000005 48640043.79999995 13 23795.10000000149 23794.89999999851 14 47545.20000000298 47544.79999999702 15 95045.30000001192 95044.69999998808 -16 190045.40000000596 190044.59999999404 +16 190045.400000006 190044.599999994 17 380045.5 380044.5 18 760045.6000000238 760044.3999999762 19 1520045.699999988 1520044.300000012 20 3040045.800000012 3040044.199999988 21 6080045.899999976 6080044.100000024 -22 1.2160046E7 1.2160044E7 -23 2.4320046100000024E7 2.4320043899999976E7 -24 4.864004620000005E7 4.864004379999995E7 +22 12160046 12160044 +23 24320046.10000002 24320043.89999998 +24 48640046.20000005 48640043.79999995 -- !sql_test_Integer_Float_notn_0 -- 1 23795.10000000149 23794.89999999851 2 47545.20000000298 47544.79999999702 3 95045.30000001192 95044.69999998808 -4 190045.40000000596 190044.59999999404 +4 190045.400000006 190044.599999994 5 380045.5 380044.5 6 760045.6000000238 760044.3999999762 7 1520045.699999988 1520044.300000012 8 3040045.800000012 3040044.199999988 9 6080045.899999976 6080044.100000024 -10 1.2160046E7 1.2160044E7 -11 2.4320046100000024E7 2.4320043899999976E7 -12 4.864004620000005E7 4.864004379999995E7 +10 12160046 12160044 +11 24320046.10000002 24320043.89999998 +12 48640046.20000005 48640043.79999995 13 23795.10000000149 23794.89999999851 14 47545.20000000298 47544.79999999702 15 95045.30000001192 95044.69999998808 -16 190045.40000000596 190044.59999999404 +16 190045.400000006 190044.599999994 17 380045.5 380044.5 18 760045.6000000238 760044.3999999762 19 1520045.699999988 1520044.300000012 20 3040045.800000012 3040044.199999988 21 6080045.899999976 6080044.100000024 -22 1.2160046E7 1.2160044E7 -23 2.4320046100000024E7 2.4320043899999976E7 -24 4.864004620000005E7 4.864004379999995E7 +22 12160046 12160044 +23 24320046.10000002 24320043.89999998 +24 48640046.20000005 48640043.79999995 -- !sql_test_Integer_Float_1 -- \N \N \N \N -1 2379.500035457313 237949.99645426875 0.09964542835950851 -2 9509.000141695142 237724.9964576215 0.19929152727127075 -3 28513.501133024693 316816.6540775039 0.19622325897216797 -4 76018.00113275647 475112.49292027217 0.19716811180114746 -5 190022.5 760090.0 0.0 -6 456027.0181208849 1266741.6163308772 0.36979854106903076 -7 1064031.4818796515 2171492.8941231607 0.6258862018585205 -8 2432036.0362401605 3800056.19337475 0.15469980239868164 +1 2379.500035457313 237949.9964542688 0.09964542835950851 +2 9509.000141695142 237724.9964576215 0.1992915272712708 +3 28513.50113302469 316816.6540775039 0.196223258972168 +4 76018.00113275647 475112.4929202722 0.1971681118011475 +5 190022.5 760090 0 +6 456027.0181208849 1266741.616330877 0.3697985410690308 +7 1064031.481879652 2171492.894123161 0.6258862018585205 +8 2432036.03624016 3800056.19337475 0.1546998023986816 9 5472040.355040431 6755605.734517992 0.6610661745071411 -10 1.2160045E7 1.2160045E7 0.0 -11 2.6752050079835057E7 2.21091313389793E7 0.37287724018096924 -12 5.836805631933808E7 4.053336922268195E7 0.26721835136413574 -13 2379.500035457313 237949.99645426875 0.09964542835950851 -14 9509.000141695142 237724.9964576215 0.19929152727127075 -15 28513.501133024693 316816.6540775039 0.19622325897216797 -16 76018.00113275647 475112.49292027217 0.19716811180114746 -17 190022.5 760090.0 0.0 -18 456027.0181208849 1266741.6163308772 0.36979854106903076 -19 1064031.4818796515 2171492.8941231607 0.6258862018585205 -20 2432036.0362401605 3800056.19337475 0.15469980239868164 +10 12160045 12160045 0 +11 26752050.07983506 22109131.3389793 0.3728772401809692 +12 58368056.31933808 40533369.22268195 0.2672183513641357 +13 2379.500035457313 237949.9964542688 0.09964542835950851 +14 9509.000141695142 237724.9964576215 0.1992915272712708 +15 28513.50113302469 316816.6540775039 0.196223258972168 +16 76018.00113275647 475112.4929202722 0.1971681118011475 +17 190022.5 760090 0 +18 456027.0181208849 1266741.616330877 0.3697985410690308 +19 1064031.481879652 2171492.894123161 0.6258862018585205 +20 2432036.03624016 3800056.19337475 0.1546998023986816 21 5472040.355040431 6755605.734517992 0.6610661745071411 -22 1.2160045E7 1.2160045E7 0.0 -23 2.6752050079835057E7 2.21091313389793E7 0.37287724018096924 -24 5.836805631933808E7 4.053336922268195E7 0.26721835136413574 +22 12160045 12160045 0 +23 26752050.07983506 22109131.3389793 0.3728772401809692 +24 58368056.31933808 40533369.22268195 0.2672183513641357 -- !sql_test_Integer_Float_notn_1 -- -1 2379.500035457313 237949.99645426875 0.09964542835950851 -2 9509.000141695142 237724.9964576215 0.19929152727127075 -3 28513.501133024693 316816.6540775039 0.19622325897216797 -4 76018.00113275647 475112.49292027217 0.19716811180114746 -5 190022.5 760090.0 0.0 -6 456027.0181208849 1266741.6163308772 0.36979854106903076 -7 1064031.4818796515 2171492.8941231607 0.6258862018585205 -8 2432036.0362401605 3800056.19337475 0.15469980239868164 +1 2379.500035457313 237949.9964542688 0.09964542835950851 +2 9509.000141695142 237724.9964576215 0.1992915272712708 +3 28513.50113302469 316816.6540775039 0.196223258972168 +4 76018.00113275647 475112.4929202722 0.1971681118011475 +5 190022.5 760090 0 +6 456027.0181208849 1266741.616330877 0.3697985410690308 +7 1064031.481879652 2171492.894123161 0.6258862018585205 +8 2432036.03624016 3800056.19337475 0.1546998023986816 9 5472040.355040431 6755605.734517992 0.6610661745071411 -10 1.2160045E7 1.2160045E7 0.0 -11 2.6752050079835057E7 2.21091313389793E7 0.37287724018096924 -12 5.836805631933808E7 4.053336922268195E7 0.26721835136413574 -13 2379.500035457313 237949.99645426875 0.09964542835950851 -14 9509.000141695142 237724.9964576215 0.19929152727127075 -15 28513.501133024693 316816.6540775039 0.19622325897216797 -16 76018.00113275647 475112.49292027217 0.19716811180114746 -17 190022.5 760090.0 0.0 -18 456027.0181208849 1266741.6163308772 0.36979854106903076 -19 1064031.4818796515 2171492.8941231607 0.6258862018585205 -20 2432036.0362401605 3800056.19337475 0.15469980239868164 +10 12160045 12160045 0 +11 26752050.07983506 22109131.3389793 0.3728772401809692 +12 58368056.31933808 40533369.22268195 0.2672183513641357 +13 2379.500035457313 237949.9964542688 0.09964542835950851 +14 9509.000141695142 237724.9964576215 0.1992915272712708 +15 28513.50113302469 316816.6540775039 0.196223258972168 +16 76018.00113275647 475112.4929202722 0.1971681118011475 +17 190022.5 760090 0 +18 456027.0181208849 1266741.616330877 0.3697985410690308 +19 1064031.481879652 2171492.894123161 0.6258862018585205 +20 2432036.03624016 3800056.19337475 0.1546998023986816 21 5472040.355040431 6755605.734517992 0.6610661745071411 -22 1.2160045E7 1.2160045E7 0.0 -23 2.6752050079835057E7 2.21091313389793E7 0.37287724018096924 -24 5.836805631933808E7 4.053336922268195E7 0.26721835136413574 +22 12160045 12160045 0 +23 26752050.07983506 22109131.3389793 0.3728772401809692 +24 58368056.31933808 40533369.22268195 0.2672183513641357 -- !sql_test_Integer_Float_3 -- \N \N \N \N @@ -12889,9 +12889,9 @@ 7 1520049.0218 1520040.9782 8 3040050.6745 3040039.3255 9 6080053.0141 6080036.9859 -10 1.21600563248E7 1.21600336752E7 -11 2.43200610086E7 2.43200289914E7 -12 4.8640067634E7 4.8640022366E7 +10 12160056.3248 12160033.6752 +11 24320061.0086 24320028.9914 +12 48640067.634 48640022.366 13 23795.5244 23794.4756 14 47545.7416 47544.2584 15 95046.0368 95043.9632 @@ -12901,9 +12901,9 @@ 19 1520049.0218 1520040.9782 20 3040050.6745 3040039.3255 21 6080053.0141 6080036.9859 -22 1.21600563248E7 1.21600336752E7 -23 2.43200610086E7 2.43200289914E7 -24 4.8640067634E7 4.8640022366E7 +22 12160056.3248 12160033.6752 +23 24320061.0086 24320028.9914 +24 48640067.634 48640022.366 -- !sql_test_Integer_Double_notn_0 -- 1 23795.5244 23794.4756 @@ -12915,9 +12915,9 @@ 7 1520049.0218 1520040.9782 8 3040050.6745 3040039.3255 9 6080053.0141 6080036.9859 -10 1.21600563248E7 1.21600336752E7 -11 2.43200610086E7 2.43200289914E7 -12 4.8640067634E7 4.8640022366E7 +10 12160056.3248 12160033.6752 +11 24320061.0086 24320028.9914 +12 48640067.634 48640022.366 13 23795.5244 23794.4756 14 47545.7416 47544.2584 15 95046.0368 95043.9632 @@ -12927,62 +12927,62 @@ 19 1520049.0218 1520040.9782 20 3040050.6745 3040039.3255 21 6080053.0141 6080036.9859 -22 1.21600563248E7 1.21600336752E7 -23 2.43200610086E7 2.43200289914E7 -24 4.8640067634E7 4.8640022366E7 +22 12160056.3248 12160033.6752 +23 24320061.0086 24320028.9914 +24 48640067.634 48640022.366 -- !sql_test_Integer_Double_1 -- \N \N \N \N 1 12478.098 45375.66742944317 0.3500000000010317 -2 35259.372 64111.380798273996 0.2823999999976312 +2 35259.372 64111.380798274 0.2823999999976312 3 98542.65599999999 91671.48919753087 0.5072000000051458 -4 275394.2095 131146.91877717205 1.3313999999928248 -5 771871.395 187122.10733628753 0.21799999997407316 -6 2169776.466 266234.06193078327 0.17679999999886498 -7 6113316.981 377951.4147893978 1.6682000000682118 -8 1.72507353525E7 535737.9504802185 5.393499999946707 -9 4.87260886345E7 758668.4718184201 3.7812000006727544 -10 1.37710077616E8 1073753.6203729867 7.025600000262454 -11 3.89329872387E8 1519186.2498906837 4.000399998065632 -12 1.10091877853E9 2148981.399664222 9.045999999267067 +4 275394.2095 131146.918777172 1.331399999992825 +5 771871.395 187122.1073362875 0.2179999999740732 +6 2169776.466 266234.0619307833 0.176799999998865 +7 6113316.981 377951.4147893978 1.668200000068212 +8 17250735.3525 535737.9504802185 5.393499999946707 +9 48726088.6345 758668.4718184201 3.781200000672754 +10 137710077.616 1073753.620372987 7.025600000262454 +11 389329872.387 1519186.249890684 4.000399998065632 +12 1100918778.53 2148981.399664222 9.045999999267067 13 12478.098 45375.66742944317 0.3500000000010317 -14 35259.372 64111.380798273996 0.2823999999976312 +14 35259.372 64111.380798274 0.2823999999976312 15 98542.65599999999 91671.48919753087 0.5072000000051458 -16 275394.2095 131146.91877717205 1.3313999999928248 -17 771871.395 187122.10733628753 0.21799999997407316 -18 2169776.466 266234.06193078327 0.17679999999886498 -19 6113316.981 377951.4147893978 1.6682000000682118 -20 1.72507353525E7 535737.9504802185 5.393499999946707 -21 4.87260886345E7 758668.4718184201 3.7812000006727544 -22 1.37710077616E8 1073753.6203729867 7.025600000262454 -23 3.89329872387E8 1519186.2498906837 4.000399998065632 -24 1.10091877853E9 2148981.399664222 9.045999999267067 +16 275394.2095 131146.918777172 1.331399999992825 +17 771871.395 187122.1073362875 0.2179999999740732 +18 2169776.466 266234.0619307833 0.176799999998865 +19 6113316.981 377951.4147893978 1.668200000068212 +20 17250735.3525 535737.9504802185 5.393499999946707 +21 48726088.6345 758668.4718184201 3.781200000672754 +22 137710077.616 1073753.620372987 7.025600000262454 +23 389329872.387 1519186.249890684 4.000399998065632 +24 1100918778.53 2148981.399664222 9.045999999267067 -- !sql_test_Integer_Double_notn_1 -- 1 12478.098 45375.66742944317 0.3500000000010317 -2 35259.372 64111.380798273996 0.2823999999976312 +2 35259.372 64111.380798274 0.2823999999976312 3 98542.65599999999 91671.48919753087 0.5072000000051458 -4 275394.2095 131146.91877717205 1.3313999999928248 -5 771871.395 187122.10733628753 0.21799999997407316 -6 2169776.466 266234.06193078327 0.17679999999886498 -7 6113316.981 377951.4147893978 1.6682000000682118 -8 1.72507353525E7 535737.9504802185 5.393499999946707 -9 4.87260886345E7 758668.4718184201 3.7812000006727544 -10 1.37710077616E8 1073753.6203729867 7.025600000262454 -11 3.89329872387E8 1519186.2498906837 4.000399998065632 -12 1.10091877853E9 2148981.399664222 9.045999999267067 +4 275394.2095 131146.918777172 1.331399999992825 +5 771871.395 187122.1073362875 0.2179999999740732 +6 2169776.466 266234.0619307833 0.176799999998865 +7 6113316.981 377951.4147893978 1.668200000068212 +8 17250735.3525 535737.9504802185 5.393499999946707 +9 48726088.6345 758668.4718184201 3.781200000672754 +10 137710077.616 1073753.620372987 7.025600000262454 +11 389329872.387 1519186.249890684 4.000399998065632 +12 1100918778.53 2148981.399664222 9.045999999267067 13 12478.098 45375.66742944317 0.3500000000010317 -14 35259.372 64111.380798273996 0.2823999999976312 +14 35259.372 64111.380798274 0.2823999999976312 15 98542.65599999999 91671.48919753087 0.5072000000051458 -16 275394.2095 131146.91877717205 1.3313999999928248 -17 771871.395 187122.10733628753 0.21799999997407316 -18 2169776.466 266234.06193078327 0.17679999999886498 -19 6113316.981 377951.4147893978 1.6682000000682118 -20 1.72507353525E7 535737.9504802185 5.393499999946707 -21 4.87260886345E7 758668.4718184201 3.7812000006727544 -22 1.37710077616E8 1073753.6203729867 7.025600000262454 -23 3.89329872387E8 1519186.2498906837 4.000399998065632 -24 1.10091877853E9 2148981.399664222 9.045999999267067 +16 275394.2095 131146.918777172 1.331399999992825 +17 771871.395 187122.1073362875 0.2179999999740732 +18 2169776.466 266234.0619307833 0.176799999998865 +19 6113316.981 377951.4147893978 1.668200000068212 +20 17250735.3525 535737.9504802185 5.393499999946707 +21 48726088.6345 758668.4718184201 3.781200000672754 +22 137710077.616 1073753.620372987 7.025600000262454 +23 389329872.387 1519186.249890684 4.000399998065632 +24 1100918778.53 2148981.399664222 9.045999999267067 -- !sql_test_Integer_Double_3 -- \N \N \N \N @@ -13039,109 +13039,109 @@ -- !sql_test_Integer_DecimalV2_0 -- \N \N \N -1 23819.395000000 23770.605000000 -2 47579.484000000 47510.516000000 -3 95093.756000000 94996.244000000 -4 190113.943000000 189976.057000000 -5 380142.494000000 379947.506000000 -6 760182.874000000 759907.126000000 -7 1520239.980000000 1519850.020000000 +1 23819.395200000 23770.604800000 +2 47579.483700000 47510.516300000 +3 95093.755800000 94996.244200000 +4 190113.942900000 189976.057100000 +5 380142.494200000 379947.505800000 +6 760182.873600000 759907.126400000 +7 1520239.979800000 1519850.020200000 8 3040320.741000000 3039769.259000000 -9 6080434.955000000 6079655.045000000 +9 6080434.955300000 6079655.044700000 10 12160596.479000000 12159493.521000000 -11 24320824.908000000 24319265.092000000 -12 48641147.957000000 48638942.043000000 -13 23819.395000000 23770.605000000 -14 47579.484000000 47510.516000000 -15 95093.756000000 94996.244000000 -16 190113.943000000 189976.057000000 -17 380142.494000000 379947.506000000 -18 760182.874000000 759907.126000000 -19 1520239.980000000 1519850.020000000 +11 24320824.908400000 24319265.091600000 +12 48641147.956500000 48638942.043500000 +13 23819.395200000 23770.604800000 +14 47579.483700000 47510.516300000 +15 95093.755800000 94996.244200000 +16 190113.942900000 189976.057100000 +17 380142.494200000 379947.505800000 +18 760182.873600000 759907.126400000 +19 1520239.979800000 1519850.020200000 20 3040320.741000000 3039769.259000000 -21 6080434.955000000 6079655.045000000 +21 6080434.955300000 6079655.044700000 22 12160596.479000000 12159493.521000000 -23 24320824.908000000 24319265.092000000 -24 48641147.957000000 48638942.043000000 +23 24320824.908400000 24319265.091600000 +24 48641147.956500000 48638942.043500000 -- !sql_test_Integer_DecimalV2_notn_0 -- -1 23819.395000000 23770.605000000 -2 47579.484000000 47510.516000000 -3 95093.756000000 94996.244000000 -4 190113.943000000 189976.057000000 -5 380142.494000000 379947.506000000 -6 760182.874000000 759907.126000000 -7 1520239.980000000 1519850.020000000 +1 23819.395200000 23770.604800000 +2 47579.483700000 47510.516300000 +3 95093.755800000 94996.244200000 +4 190113.942900000 189976.057100000 +5 380142.494200000 379947.505800000 +6 760182.873600000 759907.126400000 +7 1520239.979800000 1519850.020200000 8 3040320.741000000 3039769.259000000 -9 6080434.955000000 6079655.045000000 +9 6080434.955300000 6079655.044700000 10 12160596.479000000 12159493.521000000 -11 24320824.908000000 24319265.092000000 -12 48641147.957000000 48638942.043000000 -13 23819.395000000 23770.605000000 -14 47579.484000000 47510.516000000 -15 95093.756000000 94996.244000000 -16 190113.943000000 189976.057000000 -17 380142.494000000 379947.506000000 -18 760182.874000000 759907.126000000 -19 1520239.980000000 1519850.020000000 +11 24320824.908400000 24319265.091600000 +12 48641147.956500000 48638942.043500000 +13 23819.395200000 23770.604800000 +14 47579.483700000 47510.516300000 +15 95093.755800000 94996.244200000 +16 190113.942900000 189976.057100000 +17 380142.494200000 379947.505800000 +18 760182.873600000 759907.126400000 +19 1520239.979800000 1519850.020200000 20 3040320.741000000 3039769.259000000 -21 6080434.955000000 6079655.045000000 +21 6080434.955300000 6079655.044700000 22 12160596.479000000 12159493.521000000 -23 24320824.908000000 24319265.092000000 -24 48641147.957000000 48638942.043000000 +23 24320824.908400000 24319265.091600000 +24 48641147.956500000 48638942.043500000 -- !sql_test_Integer_DecimalV2_1 -- \N \N \N \N -1 580479.025000000 975.404796065 9.875000000 -2 1639541.780000000 1378.755364807 26.048000000 -3 4634014.020000000 1949.401099352 19.556000000 -4 13102272.435000000 2756.552514396 38.092000000 -5 37052107.230000000 3898.137321271 13.388000000 -6 104790444.330000000 5512.605712462 83.512000000 -7 296378374.100000000 7795.902143810 175.900000000 +1 580483.784000000 975.396799370 9.680000000 +2 1639527.516500000 1378.767359651 26.461400000 +3 4633995.011000000 1949.409095943 19.945800000 +4 13102253.430500000 2756.556512708 38.367600000 +5 37052183.239000000 3898.129324616 12.608400000 +6 104790140.312000000 5512.621705678 85.716800000 +7 296378070.091000000 7795.910140435 177.459000000 8 838265048.345000000 11025.001722631 0.475000000 -9 2370943947.975000000 15591.658011822 256.595000000 +9 2370945771.988500000 15591.646016864 251.917700000 10 6706009456.555000000 22049.878599185 484.529000000 -11 18967397655.860000000 31183.222892957 173.836000000 -12 53647878113.065000000 44099.674783332 744.257000000 -13 580479.025000000 975.404796065 9.875000000 -14 1639541.780000000 1378.755364807 26.048000000 -15 4634014.020000000 1949.401099352 19.556000000 -16 13102272.435000000 2756.552514396 38.092000000 -17 37052107.230000000 3898.137321271 13.388000000 -18 104790444.330000000 5512.605712462 83.512000000 -19 296378374.100000000 7795.902143810 175.900000000 +11 18967407383.878000000 31183.206899682 161.362800000 +12 53647853793.042500000 44099.694774907 766.306500000 +13 580483.784000000 975.396799370 9.680000000 +14 1639527.516500000 1378.767359651 26.461400000 +15 4633995.011000000 1949.409095943 19.945800000 +16 13102253.430500000 2756.556512708 38.367600000 +17 37052183.239000000 3898.129324616 12.608400000 +18 104790140.312000000 5512.621705678 85.716800000 +19 296378070.091000000 7795.910140435 177.459000000 20 838265048.345000000 11025.001722631 0.475000000 -21 2370943947.975000000 15591.658011822 256.595000000 +21 2370945771.988500000 15591.646016864 251.917700000 22 6706009456.555000000 22049.878599185 484.529000000 -23 18967397655.860000000 31183.222892957 173.836000000 -24 53647878113.065000000 44099.674783332 744.257000000 +23 18967407383.878000000 31183.206899682 161.362800000 +24 53647853793.042500000 44099.694774907 766.306500000 -- !sql_test_Integer_DecimalV2_notn_1 -- -1 580479.025000000 975.404796065 9.875000000 -2 1639541.780000000 1378.755364807 26.048000000 -3 4634014.020000000 1949.401099352 19.556000000 -4 13102272.435000000 2756.552514396 38.092000000 -5 37052107.230000000 3898.137321271 13.388000000 -6 104790444.330000000 5512.605712462 83.512000000 -7 296378374.100000000 7795.902143810 175.900000000 +1 580483.784000000 975.396799370 9.680000000 +2 1639527.516500000 1378.767359651 26.461400000 +3 4633995.011000000 1949.409095943 19.945800000 +4 13102253.430500000 2756.556512708 38.367600000 +5 37052183.239000000 3898.129324616 12.608400000 +6 104790140.312000000 5512.621705678 85.716800000 +7 296378070.091000000 7795.910140435 177.459000000 8 838265048.345000000 11025.001722631 0.475000000 -9 2370943947.975000000 15591.658011822 256.595000000 +9 2370945771.988500000 15591.646016864 251.917700000 10 6706009456.555000000 22049.878599185 484.529000000 -11 18967397655.860000000 31183.222892957 173.836000000 -12 53647878113.065000000 44099.674783332 744.257000000 -13 580479.025000000 975.404796065 9.875000000 -14 1639541.780000000 1378.755364807 26.048000000 -15 4634014.020000000 1949.401099352 19.556000000 -16 13102272.435000000 2756.552514396 38.092000000 -17 37052107.230000000 3898.137321271 13.388000000 -18 104790444.330000000 5512.605712462 83.512000000 -19 296378374.100000000 7795.902143810 175.900000000 +11 18967407383.878000000 31183.206899682 161.362800000 +12 53647853793.042500000 44099.694774907 766.306500000 +13 580483.784000000 975.396799370 9.680000000 +14 1639527.516500000 1378.767359651 26.461400000 +15 4633995.011000000 1949.409095943 19.945800000 +16 13102253.430500000 2756.556512708 38.367600000 +17 37052183.239000000 3898.129324616 12.608400000 +18 104790140.312000000 5512.621705678 85.716800000 +19 296378070.091000000 7795.910140435 177.459000000 20 838265048.345000000 11025.001722631 0.475000000 -21 2370943947.975000000 15591.658011822 256.595000000 +21 2370945771.988500000 15591.646016864 251.917700000 22 6706009456.555000000 22049.878599185 484.529000000 -23 18967397655.860000000 31183.222892957 173.836000000 -24 53647878113.065000000 44099.674783332 744.257000000 +23 18967407383.878000000 31183.206899682 161.362800000 +24 53647853793.042500000 44099.694774907 766.306500000 -- !sql_test_Integer_DecimalV2_2 -- \N \N @@ -13586,13 +13586,13 @@ 15 95353.359 94736.641 16 190481.033 189608.967 17 380661.608 379428.392 -18 760916.989 759173.011 +18 760916.9889999999 759173.0110000001 19 1521278.161 1518811.839 20 3041788.94 3038301.06 21 6082511.294 6077578.706 -22 1.216353286E7 1.215655714E7 -23 2.4324977574E7 2.4315112426E7 -24 4.864702071E7 4.863306929E7 +22 12163532.86 12156557.14 +23 24324977.574 24315112.426 +24 48647020.71 48633069.29 -- !sql_test_Integer_Char_notn_0 -- 1 \N \N @@ -13612,13 +13612,13 @@ 15 95353.359 94736.641 16 190481.033 189608.967 17 380661.608 379428.392 -18 760916.989 759173.011 +18 760916.9889999999 759173.0110000001 19 1521278.161 1518811.839 20 3041788.94 3038301.06 21 6082511.294 6077578.706 -22 1.216353286E7 1.215655714E7 -23 2.4324977574E7 2.4315112426E7 -24 4.864702071E7 4.863306929E7 +22 12163532.86 12156557.14 +23 24324977.574 24315112.426 +24 48647020.71 48633069.29 -- !sql_test_Integer_Char_1 -- \N \N \N \N @@ -13634,18 +13634,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3671306.755 154.22356746106334 34.49400000000196 -14 1.036927923E7 218.00232927086486 0.5080000000012888 -15 2.9307981154999997E7 308.22839612270116 70.42800000000602 -16 8.2865891485E7 435.85003887320454 370.6449999999933 -17 2.3433878735999998E8 616.3478255228606 214.4720000000325 -18 6.62750879505E8 871.6222337667103 542.5809999999715 -19 1.8744602122450001E9 1232.6411555344355 790.6479999999283 -20 5.3016560773E9 1743.2050414578482 357.5799999999049 -21 1.499517850323E10 2465.2555615834935 630.2900000003228 -22 4.2412534553700005E10 3486.391368919624 1365.0399999995561 -23 1.1996042164582999E11 4930.497748234492 2455.180000001901 -24 3.3929884830695E11 6972.773380774143 5394.879999999746 +13 3671306.755 154.2235674610633 34.49400000000196 +14 10369279.23 218.0023292708649 0.5080000000012888 +15 29307981.155 308.2283961227012 70.42800000000602 +16 82865891.485 435.8500388732045 370.6449999999933 +17 234338787.36 616.3478255228606 214.4720000000325 +18 662750879.505 871.6222337667103 542.5809999999715 +19 1874460212.245 1232.641155534435 790.6479999999283 +20 5301656077.3 1743.205041457848 357.5799999999049 +21 14995178503.23 2465.255561583494 630.2900000003228 +22 42412534553.7 3486.391368919624 1365.039999999556 +23 119960421645.83 4930.497748234492 2455.180000001901 +24 339298848306.95 6972.773380774143 5394.879999999746 -- !sql_test_Integer_Char_notn_1 -- 1 \N \N \N @@ -13660,18 +13660,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3671306.755 154.22356746106334 34.49400000000196 -14 1.036927923E7 218.00232927086486 0.5080000000012888 -15 2.9307981154999997E7 308.22839612270116 70.42800000000602 -16 8.2865891485E7 435.85003887320454 370.6449999999933 -17 2.3433878735999998E8 616.3478255228606 214.4720000000325 -18 6.62750879505E8 871.6222337667103 542.5809999999715 -19 1.8744602122450001E9 1232.6411555344355 790.6479999999283 -20 5.3016560773E9 1743.2050414578482 357.5799999999049 -21 1.499517850323E10 2465.2555615834935 630.2900000003228 -22 4.2412534553700005E10 3486.391368919624 1365.0399999995561 -23 1.1996042164582999E11 4930.497748234492 2455.180000001901 -24 3.3929884830695E11 6972.773380774143 5394.879999999746 +13 3671306.755 154.2235674610633 34.49400000000196 +14 10369279.23 218.0023292708649 0.5080000000012888 +15 29307981.155 308.2283961227012 70.42800000000602 +16 82865891.485 435.8500388732045 370.6449999999933 +17 234338787.36 616.3478255228606 214.4720000000325 +18 662750879.505 871.6222337667103 542.5809999999715 +19 1874460212.245 1232.641155534435 790.6479999999283 +20 5301656077.3 1743.205041457848 357.5799999999049 +21 14995178503.23 2465.255561583494 630.2900000003228 +22 42412534553.7 3486.391368919624 1365.039999999556 +23 119960421645.83 4930.497748234492 2455.180000001901 +24 339298848306.95 6972.773380774143 5394.879999999746 -- !sql_test_Integer_Char_3 -- \N \N \N \N @@ -13742,16 +13742,16 @@ 12 \N \N 13 26114.121 21475.879 14 50823.082 44266.918 -15 99679.741 90410.259 +15 99679.74099999999 90410.25900000001 16 196598.688 183491.312 17 389312.73 370777.27 18 773151.137 746938.863 19 1538579.585 1501510.415 20 3066256.654 3013833.346 21 6117113.731 6042976.269 -22 1.2212467999E7 1.2107622001E7 -23 2.4394182243E7 2.4245907757E7 -24 4.8744890843E7 4.8535199157E7 +22 12212467.999 12107622.001 +23 24394182.243 24245907.757 +24 48744890.843 48535199.157 -- !sql_test_Integer_Varchar_notn_0 -- 1 \N \N @@ -13768,16 +13768,16 @@ 12 \N \N 13 26114.121 21475.879 14 50823.082 44266.918 -15 99679.741 90410.259 +15 99679.74099999999 90410.25900000001 16 196598.688 183491.312 17 389312.73 370777.27 18 773151.137 746938.863 19 1538579.585 1501510.415 20 3066256.654 3013833.346 21 6117113.731 6042976.269 -22 1.2212467999E7 1.2107622001E7 -23 2.4394182243E7 2.4245907757E7 -24 4.8744890843E7 4.8535199157E7 +22 12212467.999 12107622.001 +23 24394182.243 24245907.757 +24 48744890.843 48535199.157 -- !sql_test_Integer_Varchar_1 -- \N \N \N \N @@ -13793,18 +13793,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.5183484195E7 10.260352952691989 603.789999999999 -14 1.5585640869E8 14.50390807795534 1651.8520000000017 -15 4.4050895834499997E8 20.507079036347445 2350.1800000000003 -16 1.24549563596E9 28.99817629401949 6541.735999999997 -17 3.52215444785E9 41.007344840645985 68.0700000000179 -18 9.961253896165E9 57.99153480541215 12995.190999999964 -19 2.8173403256324997E10 82.01127783546274 209.0300000000716 -20 7.968460768443E10 115.98066264723317 25704.790000000157 -21 2.25379552572895E11 164.02085628450567 773.1160000000382 -22 6.374660268749551E11 231.96011735230942 50332.23099999921 -23 1.803021085935935E12 328.04086065083374 3029.2959999992745 -24 5.099706521582935E12 463.9196329414796 96419.69100000302 +13 55183484.195 10.26035295269199 603.7899999999991 +14 155856408.69 14.50390807795534 1651.852000000002 +15 440508958.345 20.50707903634745 2350.18 +16 1245495635.96 28.99817629401949 6541.735999999997 +17 3522154447.85 41.00734484064598 68.0700000000179 +18 9961253896.165001 57.99153480541215 12995.19099999996 +19 28173403256.325 82.01127783546274 209.0300000000716 +20 79684607684.42999 115.9806626472332 25704.79000000016 +21 225379552572.895 164.0208562845057 773.1160000000382 +22 637466026874.9551 231.9601173523094 50332.23099999921 +23 1803021085935.935 328.0408606508337 3029.295999999274 +24 5099706521582.935 463.9196329414796 96419.69100000302 -- !sql_test_Integer_Varchar_notn_1 -- 1 \N \N \N @@ -13819,18 +13819,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.5183484195E7 10.260352952691989 603.789999999999 -14 1.5585640869E8 14.50390807795534 1651.8520000000017 -15 4.4050895834499997E8 20.507079036347445 2350.1800000000003 -16 1.24549563596E9 28.99817629401949 6541.735999999997 -17 3.52215444785E9 41.007344840645985 68.0700000000179 -18 9.961253896165E9 57.99153480541215 12995.190999999964 -19 2.8173403256324997E10 82.01127783546274 209.0300000000716 -20 7.968460768443E10 115.98066264723317 25704.790000000157 -21 2.25379552572895E11 164.02085628450567 773.1160000000382 -22 6.374660268749551E11 231.96011735230942 50332.23099999921 -23 1.803021085935935E12 328.04086065083374 3029.2959999992745 -24 5.099706521582935E12 463.9196329414796 96419.69100000302 +13 55183484.195 10.26035295269199 603.7899999999991 +14 155856408.69 14.50390807795534 1651.852000000002 +15 440508958.345 20.50707903634745 2350.18 +16 1245495635.96 28.99817629401949 6541.735999999997 +17 3522154447.85 41.00734484064598 68.0700000000179 +18 9961253896.165001 57.99153480541215 12995.19099999996 +19 28173403256.325 82.01127783546274 209.0300000000716 +20 79684607684.42999 115.9806626472332 25704.79000000016 +21 225379552572.895 164.0208562845057 773.1160000000382 +22 637466026874.9551 231.9601173523094 50332.23099999921 +23 1803021085935.935 328.0408606508337 3029.295999999274 +24 5099706521582.935 463.9196329414796 96419.69100000302 -- !sql_test_Integer_Varchar_3 -- \N \N \N \N @@ -13900,17 +13900,17 @@ 11 \N \N 12 \N \N 13 34399.017 13190.983 -14 62533.793 32556.207000000002 -15 116237.013 73852.987 +14 62533.793 32556.207 +15 116237.013 73852.98699999999 16 220011.255 160078.745 17 422421.012 337668.988 -18 819971.842 700118.158 +18 819971.8419999999 700118.1580000001 19 1604793.017 1435296.983 20 3159895.851 2920194.149 21 6249539.031 5910550.969 -22 1.2399745285E7 1.1920344715E7 -23 2.4659032059E7 2.3981057941E7 -24 4.9119444861E7 4.8160645139E7 +22 12399745.285 11920344.715 +23 24659032.059 23981057.941 +24 49119444.861 48160645.139 -- !sql_test_Integer_String_notn_0 -- 1 \N \N @@ -13926,17 +13926,17 @@ 11 \N \N 12 \N \N 13 34399.017 13190.983 -14 62533.793 32556.207000000002 -15 116237.013 73852.987 +14 62533.793 32556.207 +15 116237.013 73852.98699999999 16 220011.255 160078.745 17 422421.012 337668.988 -18 819971.842 700118.158 +18 819971.8419999999 700118.1580000001 19 1604793.017 1435296.983 20 3159895.851 2920194.149 21 6249539.031 5910550.969 -22 1.2399745285E7 1.1920344715E7 -23 2.4659032059E7 2.3981057941E7 -24 4.9119444861E7 4.8160645139E7 +22 12399745.285 11920344.715 +23 24659032.059 23981057.941 +24 49119444.861 48160645.139 -- !sql_test_Integer_String_1 -- \N \N \N \N @@ -13952,18 +13952,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.52322584515E8 2.2439609442346238 2586.9660000000003 -14 7.12642163185E8 3.1720366009457868 2578.621000000001 -15 2.0141948755849998E9 4.484944398627917 10276.948000000004 -16 5.694936931475E9 6.341966989201687 10247.469999999994 -17 1.610479148054E10 8.968399385954488 41036.90399999998 -18 4.554709662789E10 12.682880903352125 40922.89600000004 -19 1.2882079950076501E11 17.936053890204885 79328.71099999988 -20 3.64351980328295E11 25.365234995285935 43773.72500000012 -21 1.0305313357113949E12 35.87173521172554 147753.91500000042 -22 2.914766252112825E12 50.730206682899855 175030.74999999983 -23 8.244180529297655E12 71.74328445381745 251963.8109999994 -24 2.3318030812033742E13 101.46028181681096 220659.0390000025 +13 252322584.515 2.243960944234624 2586.966 +14 712642163.1849999 3.172036600945787 2578.621000000001 +15 2014194875.585 4.484944398627917 10276.948 +16 5694936931.475 6.341966989201687 10247.46999999999 +17 16104791480.54 8.968399385954488 41036.90399999998 +18 45547096627.89 12.68288090335212 40922.89600000004 +19 128820799500.765 17.93605389020489 79328.71099999988 +20 364351980328.295 25.36523499528593 43773.72500000012 +21 1030531335711.395 35.87173521172554 147753.9150000004 +22 2914766252112.825 50.73020668289985 175030.7499999998 +23 8244180529297.655 71.74328445381745 251963.8109999994 +24 23318030812033.74 101.460281816811 220659.0390000025 -- !sql_test_Integer_String_notn_1 -- 1 \N \N \N @@ -13978,18 +13978,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.52322584515E8 2.2439609442346238 2586.9660000000003 -14 7.12642163185E8 3.1720366009457868 2578.621000000001 -15 2.0141948755849998E9 4.484944398627917 10276.948000000004 -16 5.694936931475E9 6.341966989201687 10247.469999999994 -17 1.610479148054E10 8.968399385954488 41036.90399999998 -18 4.554709662789E10 12.682880903352125 40922.89600000004 -19 1.2882079950076501E11 17.936053890204885 79328.71099999988 -20 3.64351980328295E11 25.365234995285935 43773.72500000012 -21 1.0305313357113949E12 35.87173521172554 147753.91500000042 -22 2.914766252112825E12 50.730206682899855 175030.74999999983 -23 8.244180529297655E12 71.74328445381745 251963.8109999994 -24 2.3318030812033742E13 101.46028181681096 220659.0390000025 +13 252322584.515 2.243960944234624 2586.966 +14 712642163.1849999 3.172036600945787 2578.621000000001 +15 2014194875.585 4.484944398627917 10276.948 +16 5694936931.475 6.341966989201687 10247.46999999999 +17 16104791480.54 8.968399385954488 41036.90399999998 +18 45547096627.89 12.68288090335212 40922.89600000004 +19 128820799500.765 17.93605389020489 79328.71099999988 +20 364351980328.295 25.36523499528593 43773.72500000012 +21 1030531335711.395 35.87173521172554 147753.9150000004 +22 2914766252112.825 50.73020668289985 175030.7499999998 +23 8244180529297.655 71.74328445381745 251963.8109999994 +24 23318030812033.74 101.460281816811 220659.0390000025 -- !sql_test_Integer_String_3 -- \N \N \N \N @@ -14099,55 +14099,55 @@ -- !sql_test_Integer_Date_1 -- \N \N \N \N -1 478762562295 0.0011826363830242897 23795 +1 478762562295 0.00118263638302429 23795 2 956619758590 0.002363036101545593 47545 3 1912334198635 0.004723835421365175 95045 4 3823763173680 0.009445433826447155 190045 -5 7646621313725 0.018888630167385633 380045 +5 7646621313725 0.01888863016738563 380045 6 15292337973770 0.03777502191070056 760045 -7 30583772053815 0.0755478035200954 1520045 -8 61166641733860 0.15109336298430423 3040045 -9 122332384133905 0.30218447440344975 6080045 +7 30583772053815 0.07554780352009539 1520045 +8 61166641733860 0.1510933629843042 3040045 +9 122332384133905 0.3021844744034498 6080045 10 244663875013950 0.604366682223087 12160045 -11 489326868933995 1.2087310678249457 4199734 +11 489326868933995 1.208731067824946 4199734 12 978652881094040 2.417459778953726 8399421 -13 478762562295 0.0011826363830242897 23795 +13 478762562295 0.00118263638302429 23795 14 956619758590 0.002363036101545593 47545 15 1912334198635 0.004723835421365175 95045 16 3823763173680 0.009445433826447155 190045 -17 7646621313725 0.018888630167385633 380045 +17 7646621313725 0.01888863016738563 380045 18 15292337973770 0.03777502191070056 760045 -19 30583772053815 0.0755478035200954 1520045 -20 61166641733860 0.15109336298430423 3040045 -21 122332384133905 0.30218447440344975 6080045 +19 30583772053815 0.07554780352009539 1520045 +20 61166641733860 0.1510933629843042 3040045 +21 122332384133905 0.3021844744034498 6080045 22 244663875013950 0.604366682223087 12160045 -23 489326868933995 1.2087310678249457 4199734 +23 489326868933995 1.208731067824946 4199734 24 978652881094040 2.417459778953726 8399421 -- !sql_test_Integer_Date_notn_1 -- -1 478762562295 0.0011826363830242897 23795 +1 478762562295 0.00118263638302429 23795 2 956619758590 0.002363036101545593 47545 3 1912334198635 0.004723835421365175 95045 4 3823763173680 0.009445433826447155 190045 -5 7646621313725 0.018888630167385633 380045 +5 7646621313725 0.01888863016738563 380045 6 15292337973770 0.03777502191070056 760045 -7 30583772053815 0.0755478035200954 1520045 -8 61166641733860 0.15109336298430423 3040045 -9 122332384133905 0.30218447440344975 6080045 +7 30583772053815 0.07554780352009539 1520045 +8 61166641733860 0.1510933629843042 3040045 +9 122332384133905 0.3021844744034498 6080045 10 244663875013950 0.604366682223087 12160045 -11 489326868933995 1.2087310678249457 4199734 +11 489326868933995 1.208731067824946 4199734 12 978652881094040 2.417459778953726 8399421 -13 478762562295 0.0011826363830242897 23795 +13 478762562295 0.00118263638302429 23795 14 956619758590 0.002363036101545593 47545 15 1912334198635 0.004723835421365175 95045 16 3823763173680 0.009445433826447155 190045 -17 7646621313725 0.018888630167385633 380045 +17 7646621313725 0.01888863016738563 380045 18 15292337973770 0.03777502191070056 760045 -19 30583772053815 0.0755478035200954 1520045 -20 61166641733860 0.15109336298430423 3040045 -21 122332384133905 0.30218447440344975 6080045 +19 30583772053815 0.07554780352009539 1520045 +20 61166641733860 0.1510933629843042 3040045 +21 122332384133905 0.3021844744034498 6080045 22 244663875013950 0.604366682223087 12160045 -23 489326868933995 1.2087310678249457 4199734 +23 489326868933995 1.208731067824946 4199734 24 978652881094040 2.417459778953726 8399421 -- !sql_test_Integer_Date_3 -- @@ -14311,56 +14311,56 @@ -- !sql_test_Integer_DateTime_1 -- \N \N \N \N -1 478762562532973795 1.1826363824364483E-9 23795 -2 956619759545749590 2.3630360991847065E-9 47545 -3 1912334201505644135 4.723835414274129E-9 95045 -4 3823763181339573680 9.445433807526528E-9 190045 -5 7646621332881168225 1.88886301200662E-8 380045 -6 -3154406053952268846 3.777502179710311E-8 760045 -7 -6309715986278285917 7.554780325497997E-8 1520045 -8 5826409758087297012 1.5109336237822785E-7 3040045 -9 -6794823829939054907 3.0218447303960043E-7 6080045 -10 4856203282795969942 6.043666791919885E-7 12160045 -11 -8735218356370378137 1.2087310611559412E-6 24320045 -12 975451078326894392 2.4174597644020936E-6 48640045 -13 478762562532973795 1.1826363824364483E-9 23795 -14 956619759545749590 2.3630360991847065E-9 47545 -15 1912334201505644135 4.723835414274129E-9 95045 -16 3823763181339573680 9.445433807526528E-9 190045 -17 7646621332881168225 1.88886301200662E-8 380045 -18 -3154406053952268846 3.777502179710311E-8 760045 -19 -6309715986278285917 7.554780325497997E-8 1520045 -20 5826409758087297012 1.5109336237822785E-7 3040045 -21 -6794823829939054907 3.0218447303960043E-7 6080045 -22 4856203282795969942 6.043666791919885E-7 12160045 -23 -8735218356370378137 1.2087310611559412E-6 24320045 -24 975451078326894392 2.4174597644020936E-6 48640045 +1 478762562532973795 1.182636382436448e-09 23795 +2 956619759545749590 2.363036099184707e-09 47545 +3 1912334201505644135 4.723835414274129e-09 95045 +4 3823763181339573680 9.445433807526528e-09 190045 +5 7646621332881168225 1.88886301200662e-08 380045 +6 -3154406053952268846 3.777502179710311e-08 760045 +7 -6309715986278285917 7.554780325497997e-08 1520045 +8 5826409758087297012 1.510933623782279e-07 3040045 +9 -6794823829939054907 3.021844730396004e-07 6080045 +10 4856203282795969942 6.043666791919885e-07 12160045 +11 -8735218356370378137 1.208731061155941e-06 24320045 +12 975451078326894392 2.417459764402094e-06 48640045 +13 478762562532973795 1.182636382436448e-09 23795 +14 956619759545749590 2.363036099184707e-09 47545 +15 1912334201505644135 4.723835414274129e-09 95045 +16 3823763181339573680 9.445433807526528e-09 190045 +17 7646621332881168225 1.88886301200662e-08 380045 +18 -3154406053952268846 3.777502179710311e-08 760045 +19 -6309715986278285917 7.554780325497997e-08 1520045 +20 5826409758087297012 1.510933623782279e-07 3040045 +21 -6794823829939054907 3.021844730396004e-07 6080045 +22 4856203282795969942 6.043666791919885e-07 12160045 +23 -8735218356370378137 1.208731061155941e-06 24320045 +24 975451078326894392 2.417459764402094e-06 48640045 -- !sql_test_Integer_DateTime_notn_1 -- -1 478762562532973795 1.1826363824364483E-9 23795 -2 956619759545749590 2.3630360991847065E-9 47545 -3 1912334201505644135 4.723835414274129E-9 95045 -4 3823763181339573680 9.445433807526528E-9 190045 -5 7646621332881168225 1.88886301200662E-8 380045 -6 -3154406053952268846 3.777502179710311E-8 760045 -7 -6309715986278285917 7.554780325497997E-8 1520045 -8 5826409758087297012 1.5109336237822785E-7 3040045 -9 -6794823829939054907 3.0218447303960043E-7 6080045 -10 4856203282795969942 6.043666791919885E-7 12160045 -11 -8735218356370378137 1.2087310611559412E-6 24320045 -12 975451078326894392 2.4174597644020936E-6 48640045 -13 478762562532973795 1.1826363824364483E-9 23795 -14 956619759545749590 2.3630360991847065E-9 47545 -15 1912334201505644135 4.723835414274129E-9 95045 -16 3823763181339573680 9.445433807526528E-9 190045 -17 7646621332881168225 1.88886301200662E-8 380045 -18 -3154406053952268846 3.777502179710311E-8 760045 -19 -6309715986278285917 7.554780325497997E-8 1520045 -20 5826409758087297012 1.5109336237822785E-7 3040045 -21 -6794823829939054907 3.0218447303960043E-7 6080045 -22 4856203282795969942 6.043666791919885E-7 12160045 -23 -8735218356370378137 1.2087310611559412E-6 24320045 -24 975451078326894392 2.4174597644020936E-6 48640045 +1 478762562532973795 1.182636382436448e-09 23795 +2 956619759545749590 2.363036099184707e-09 47545 +3 1912334201505644135 4.723835414274129e-09 95045 +4 3823763181339573680 9.445433807526528e-09 190045 +5 7646621332881168225 1.88886301200662e-08 380045 +6 -3154406053952268846 3.777502179710311e-08 760045 +7 -6309715986278285917 7.554780325497997e-08 1520045 +8 5826409758087297012 1.510933623782279e-07 3040045 +9 -6794823829939054907 3.021844730396004e-07 6080045 +10 4856203282795969942 6.043666791919885e-07 12160045 +11 -8735218356370378137 1.208731061155941e-06 24320045 +12 975451078326894392 2.417459764402094e-06 48640045 +13 478762562532973795 1.182636382436448e-09 23795 +14 956619759545749590 2.363036099184707e-09 47545 +15 1912334201505644135 4.723835414274129e-09 95045 +16 3823763181339573680 9.445433807526528e-09 190045 +17 7646621332881168225 1.88886301200662e-08 380045 +18 -3154406053952268846 3.777502179710311e-08 760045 +19 -6309715986278285917 7.554780325497997e-08 1520045 +20 5826409758087297012 1.510933623782279e-07 3040045 +21 -6794823829939054907 3.021844730396004e-07 6080045 +22 4856203282795969942 6.043666791919885e-07 12160045 +23 -8735218356370378137 1.208731061155941e-06 24320045 +24 975451078326894392 2.417459764402094e-06 48640045 -- !sql_test_Integer_DateTime_3 -- \N \N \N \N @@ -14523,55 +14523,55 @@ -- !sql_test_Integer_DateV2_1 -- \N \N \N \N -1 478762562295 0.0011826363830242897 23795 +1 478762562295 0.00118263638302429 23795 2 956619758590 0.002363036101545593 47545 3 1912334198635 0.004723835421365175 95045 4 3823763173680 0.009445433826447155 190045 -5 7646621313725 0.018888630167385633 380045 +5 7646621313725 0.01888863016738563 380045 6 15292337973770 0.03777502191070056 760045 -7 30583772053815 0.0755478035200954 1520045 -8 61166641733860 0.15109336298430423 3040045 -9 122332384133905 0.30218447440344975 6080045 +7 30583772053815 0.07554780352009539 1520045 +8 61166641733860 0.1510933629843042 3040045 +9 122332384133905 0.3021844744034498 6080045 10 244663875013950 0.604366682223087 12160045 -11 489326868933995 1.2087310678249457 4199734 +11 489326868933995 1.208731067824946 4199734 12 978652881094040 2.417459778953726 8399421 -13 478762562295 0.0011826363830242897 23795 +13 478762562295 0.00118263638302429 23795 14 956619758590 0.002363036101545593 47545 15 1912334198635 0.004723835421365175 95045 16 3823763173680 0.009445433826447155 190045 -17 7646621313725 0.018888630167385633 380045 +17 7646621313725 0.01888863016738563 380045 18 15292337973770 0.03777502191070056 760045 -19 30583772053815 0.0755478035200954 1520045 -20 61166641733860 0.15109336298430423 3040045 -21 122332384133905 0.30218447440344975 6080045 +19 30583772053815 0.07554780352009539 1520045 +20 61166641733860 0.1510933629843042 3040045 +21 122332384133905 0.3021844744034498 6080045 22 244663875013950 0.604366682223087 12160045 -23 489326868933995 1.2087310678249457 4199734 +23 489326868933995 1.208731067824946 4199734 24 978652881094040 2.417459778953726 8399421 -- !sql_test_Integer_DateV2_notn_1 -- -1 478762562295 0.0011826363830242897 23795 +1 478762562295 0.00118263638302429 23795 2 956619758590 0.002363036101545593 47545 3 1912334198635 0.004723835421365175 95045 4 3823763173680 0.009445433826447155 190045 -5 7646621313725 0.018888630167385633 380045 +5 7646621313725 0.01888863016738563 380045 6 15292337973770 0.03777502191070056 760045 -7 30583772053815 0.0755478035200954 1520045 -8 61166641733860 0.15109336298430423 3040045 -9 122332384133905 0.30218447440344975 6080045 +7 30583772053815 0.07554780352009539 1520045 +8 61166641733860 0.1510933629843042 3040045 +9 122332384133905 0.3021844744034498 6080045 10 244663875013950 0.604366682223087 12160045 -11 489326868933995 1.2087310678249457 4199734 +11 489326868933995 1.208731067824946 4199734 12 978652881094040 2.417459778953726 8399421 -13 478762562295 0.0011826363830242897 23795 +13 478762562295 0.00118263638302429 23795 14 956619758590 0.002363036101545593 47545 15 1912334198635 0.004723835421365175 95045 16 3823763173680 0.009445433826447155 190045 -17 7646621313725 0.018888630167385633 380045 +17 7646621313725 0.01888863016738563 380045 18 15292337973770 0.03777502191070056 760045 -19 30583772053815 0.0755478035200954 1520045 -20 61166641733860 0.15109336298430423 3040045 -21 122332384133905 0.30218447440344975 6080045 +19 30583772053815 0.07554780352009539 1520045 +20 61166641733860 0.1510933629843042 3040045 +21 122332384133905 0.3021844744034498 6080045 22 244663875013950 0.604366682223087 12160045 -23 489326868933995 1.2087310678249457 4199734 +23 489326868933995 1.208731067824946 4199734 24 978652881094040 2.417459778953726 8399421 -- !sql_test_Integer_DateV2_3 -- @@ -14735,56 +14735,56 @@ -- !sql_test_Integer_DateTimeV2_1 -- \N \N \N \N -1 478762562532973795 1.1826363824364483E-9 23795 -2 956619759545749590 2.3630360991847065E-9 47545 -3 1912334201505644135 4.723835414274129E-9 95045 -4 3823763181339573680 9.445433807526528E-9 190045 -5 7646621332881168225 1.88886301200662E-8 380045 -6 -3154406053952268846 3.777502179710311E-8 760045 -7 -6309715986278285917 7.554780325497997E-8 1520045 -8 5826409758087297012 1.5109336237822785E-7 3040045 -9 -6794823829939054907 3.0218447303960043E-7 6080045 -10 4856203282795969942 6.043666791919885E-7 12160045 -11 -8735218356370378137 1.2087310611559412E-6 24320045 -12 975451078326894392 2.4174597644020936E-6 48640045 -13 478762562532973795 1.1826363824364483E-9 23795 -14 956619759545749590 2.3630360991847065E-9 47545 -15 1912334201505644135 4.723835414274129E-9 95045 -16 3823763181339573680 9.445433807526528E-9 190045 -17 7646621332881168225 1.88886301200662E-8 380045 -18 -3154406053952268846 3.777502179710311E-8 760045 -19 -6309715986278285917 7.554780325497997E-8 1520045 -20 5826409758087297012 1.5109336237822785E-7 3040045 -21 -6794823829939054907 3.0218447303960043E-7 6080045 -22 4856203282795969942 6.043666791919885E-7 12160045 -23 -8735218356370378137 1.2087310611559412E-6 24320045 -24 975451078326894392 2.4174597644020936E-6 48640045 +1 478762562532973795 1.182636382436448e-09 23795 +2 956619759545749590 2.363036099184707e-09 47545 +3 1912334201505644135 4.723835414274129e-09 95045 +4 3823763181339573680 9.445433807526528e-09 190045 +5 7646621332881168225 1.88886301200662e-08 380045 +6 -3154406053952268846 3.777502179710311e-08 760045 +7 -6309715986278285917 7.554780325497997e-08 1520045 +8 5826409758087297012 1.510933623782279e-07 3040045 +9 -6794823829939054907 3.021844730396004e-07 6080045 +10 4856203282795969942 6.043666791919885e-07 12160045 +11 -8735218356370378137 1.208731061155941e-06 24320045 +12 975451078326894392 2.417459764402094e-06 48640045 +13 478762562532973795 1.182636382436448e-09 23795 +14 956619759545749590 2.363036099184707e-09 47545 +15 1912334201505644135 4.723835414274129e-09 95045 +16 3823763181339573680 9.445433807526528e-09 190045 +17 7646621332881168225 1.88886301200662e-08 380045 +18 -3154406053952268846 3.777502179710311e-08 760045 +19 -6309715986278285917 7.554780325497997e-08 1520045 +20 5826409758087297012 1.510933623782279e-07 3040045 +21 -6794823829939054907 3.021844730396004e-07 6080045 +22 4856203282795969942 6.043666791919885e-07 12160045 +23 -8735218356370378137 1.208731061155941e-06 24320045 +24 975451078326894392 2.417459764402094e-06 48640045 -- !sql_test_Integer_DateTimeV2_notn_1 -- -1 478762562532973795 1.1826363824364483E-9 23795 -2 956619759545749590 2.3630360991847065E-9 47545 -3 1912334201505644135 4.723835414274129E-9 95045 -4 3823763181339573680 9.445433807526528E-9 190045 -5 7646621332881168225 1.88886301200662E-8 380045 -6 -3154406053952268846 3.777502179710311E-8 760045 -7 -6309715986278285917 7.554780325497997E-8 1520045 -8 5826409758087297012 1.5109336237822785E-7 3040045 -9 -6794823829939054907 3.0218447303960043E-7 6080045 -10 4856203282795969942 6.043666791919885E-7 12160045 -11 -8735218356370378137 1.2087310611559412E-6 24320045 -12 975451078326894392 2.4174597644020936E-6 48640045 -13 478762562532973795 1.1826363824364483E-9 23795 -14 956619759545749590 2.3630360991847065E-9 47545 -15 1912334201505644135 4.723835414274129E-9 95045 -16 3823763181339573680 9.445433807526528E-9 190045 -17 7646621332881168225 1.88886301200662E-8 380045 -18 -3154406053952268846 3.777502179710311E-8 760045 -19 -6309715986278285917 7.554780325497997E-8 1520045 -20 5826409758087297012 1.5109336237822785E-7 3040045 -21 -6794823829939054907 3.0218447303960043E-7 6080045 -22 4856203282795969942 6.043666791919885E-7 12160045 -23 -8735218356370378137 1.2087310611559412E-6 24320045 -24 975451078326894392 2.4174597644020936E-6 48640045 +1 478762562532973795 1.182636382436448e-09 23795 +2 956619759545749590 2.363036099184707e-09 47545 +3 1912334201505644135 4.723835414274129e-09 95045 +4 3823763181339573680 9.445433807526528e-09 190045 +5 7646621332881168225 1.88886301200662e-08 380045 +6 -3154406053952268846 3.777502179710311e-08 760045 +7 -6309715986278285917 7.554780325497997e-08 1520045 +8 5826409758087297012 1.510933623782279e-07 3040045 +9 -6794823829939054907 3.021844730396004e-07 6080045 +10 4856203282795969942 6.043666791919885e-07 12160045 +11 -8735218356370378137 1.208731061155941e-06 24320045 +12 975451078326894392 2.417459764402094e-06 48640045 +13 478762562532973795 1.182636382436448e-09 23795 +14 956619759545749590 2.363036099184707e-09 47545 +15 1912334201505644135 4.723835414274129e-09 95045 +16 3823763181339573680 9.445433807526528e-09 190045 +17 7646621332881168225 1.88886301200662e-08 380045 +18 -3154406053952268846 3.777502179710311e-08 760045 +19 -6309715986278285917 7.554780325497997e-08 1520045 +20 5826409758087297012 1.510933623782279e-07 3040045 +21 -6794823829939054907 3.021844730396004e-07 6080045 +22 4856203282795969942 6.043666791919885e-07 12160045 +23 -8735218356370378137 1.208731061155941e-06 24320045 +24 975451078326894392 2.417459764402094e-06 48640045 -- !sql_test_Integer_DateTimeV2_3 -- \N \N \N \N @@ -14954,11 +14954,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 3040045 3040045.0 0 -9 6080045 6080045.0 0 -10 12160045 1.2160045E7 0 -11 24320045 2.4320045E7 0 -12 48640045 4.8640045E7 0 +8 3040045 3040045 0 +9 6080045 6080045 0 +10 12160045 12160045 0 +11 24320045 24320045 0 +12 48640045 48640045 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -14966,11 +14966,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 3040045 3040045.0 0 -21 6080045 6080045.0 0 -22 12160045 1.2160045E7 0 -23 24320045 2.4320045E7 0 -24 48640045 4.8640045E7 0 +20 3040045 3040045 0 +21 6080045 6080045 0 +22 12160045 12160045 0 +23 24320045 24320045 0 +24 48640045 48640045 0 -- !sql_test_Integer_Boolean_notn_1 -- 1 0 \N \N @@ -14980,11 +14980,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 3040045 3040045.0 0 -9 6080045 6080045.0 0 -10 12160045 1.2160045E7 0 -11 24320045 2.4320045E7 0 -12 48640045 4.8640045E7 0 +8 3040045 3040045 0 +9 6080045 6080045 0 +10 12160045 12160045 0 +11 24320045 24320045 0 +12 48640045 48640045 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -14992,11 +14992,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 3040045 3040045.0 0 -21 6080045 6080045.0 0 -22 12160045 1.2160045E7 0 -23 24320045 2.4320045E7 0 -24 48640045 4.8640045E7 0 +20 3040045 3040045 0 +21 6080045 6080045 0 +22 12160045 12160045 0 +23 24320045 24320045 0 +24 48640045 48640045 0 -- !sql_test_Integer_Boolean_3 -- \N \N \N \N @@ -15159,56 +15159,56 @@ -- !sql_test_BigInt_TinyInt_1 -- \N \N \N \N -1 5354529 5354529.0 0 +1 5354529 5354529 0 2 21396558 5349139.5 1 -3 64157337 7128593.0 0 -4 171043116 1.069019475E7 3 -5 427553895 1.71021558E7 4 -6 1026064674 2.85017965E7 3 -7 2394075453 4.885868271428572E7 5 -8 5472086232 8.5501347375E7 3 -9 12312097011 1.5200119766666666E8 6 -10 27360107790 2.736010779E8 9 -11 60192118569 4.974555253636364E8 4 -12 131328129348 9.1200089825E8 3 -13 5354529 5354529.0 0 +3 64157337 7128593 0 +4 171043116 10690194.75 3 +5 427553895 17102155.8 4 +6 1026064674 28501796.5 3 +7 2394075453 48858682.71428572 5 +8 5472086232 85501347.375 3 +9 12312097011 152001197.6666667 6 +10 27360107790 273601077.9 9 +11 60192118569 497455525.3636364 4 +12 131328129348 912000898.25 3 +13 5354529 5354529 0 14 21396558 5349139.5 1 -15 64157337 7128593.0 0 -16 171043116 1.069019475E7 3 -17 427553895 1.71021558E7 4 -18 1026064674 2.85017965E7 3 -19 2394075453 4.885868271428572E7 5 -20 5472086232 8.5501347375E7 3 -21 12312097011 1.5200119766666666E8 6 -22 27360107790 2.736010779E8 9 -23 60192118569 4.974555253636364E8 4 -24 131328129348 9.1200089825E8 3 +15 64157337 7128593 0 +16 171043116 10690194.75 3 +17 427553895 17102155.8 4 +18 1026064674 28501796.5 3 +19 2394075453 48858682.71428572 5 +20 5472086232 85501347.375 3 +21 12312097011 152001197.6666667 6 +22 27360107790 273601077.9 9 +23 60192118569 497455525.3636364 4 +24 131328129348 912000898.25 3 -- !sql_test_BigInt_TinyInt_notn_1 -- -1 5354529 5354529.0 0 +1 5354529 5354529 0 2 21396558 5349139.5 1 -3 64157337 7128593.0 0 -4 171043116 1.069019475E7 3 -5 427553895 1.71021558E7 4 -6 1026064674 2.85017965E7 3 -7 2394075453 4.885868271428572E7 5 -8 5472086232 8.5501347375E7 3 -9 12312097011 1.5200119766666666E8 6 -10 27360107790 2.736010779E8 9 -11 60192118569 4.974555253636364E8 4 -12 131328129348 9.1200089825E8 3 -13 5354529 5354529.0 0 +3 64157337 7128593 0 +4 171043116 10690194.75 3 +5 427553895 17102155.8 4 +6 1026064674 28501796.5 3 +7 2394075453 48858682.71428572 5 +8 5472086232 85501347.375 3 +9 12312097011 152001197.6666667 6 +10 27360107790 273601077.9 9 +11 60192118569 497455525.3636364 4 +12 131328129348 912000898.25 3 +13 5354529 5354529 0 14 21396558 5349139.5 1 -15 64157337 7128593.0 0 -16 171043116 1.069019475E7 3 -17 427553895 1.71021558E7 4 -18 1026064674 2.85017965E7 3 -19 2394075453 4.885868271428572E7 5 -20 5472086232 8.5501347375E7 3 -21 12312097011 1.5200119766666666E8 6 -22 27360107790 2.736010779E8 9 -23 60192118569 4.974555253636364E8 4 -24 131328129348 9.1200089825E8 3 +15 64157337 7128593 0 +16 171043116 10690194.75 3 +17 427553895 17102155.8 4 +18 1026064674 28501796.5 3 +19 2394075453 48858682.71428572 5 +20 5472086232 85501347.375 3 +21 12312097011 152001197.6666667 6 +22 27360107790 273601077.9 9 +23 60192118569 497455525.3636364 4 +24 131328129348 912000898.25 3 -- !sql_test_BigInt_TinyInt_2 -- \N \N @@ -15689,56 +15689,56 @@ -- !sql_test_BigInt_Integer_1 -- \N \N \N \N -1 127411017555 225.02748476570707 654 +1 127411017555 225.0274847657071 654 2 508649675055 225.0137553896309 654 3 2032611365055 225.0068809511284 654 -4 8126472245055 225.00344129022074 654 -5 32497944005055 225.00172084884684 654 -6 129975887525055 225.00086047536658 654 +4 8126472245055 225.0034412902207 654 +5 32497944005055 225.0017208488468 654 +6 129975887525055 225.0008604753666 654 7 519871774565055 225.0004302504202 654 -8 2079423548645055 225.00021512839447 654 -9 8317567096805055 225.00010756499336 654 -10 33270014193125055 225.00005378269572 654 -11 133079548385765055 225.00002689139762 654 -12 532317176771045055 225.00001344571123 654 -13 127411017555 225.02748476570707 654 +8 2079423548645055 225.0002151283945 654 +9 8317567096805055 225.0001075649934 654 +10 33270014193125055 225.0000537826957 654 +11 133079548385765055 225.0000268913976 654 +12 532317176771045055 225.0000134457112 654 +13 127411017555 225.0274847657071 654 14 508649675055 225.0137553896309 654 15 2032611365055 225.0068809511284 654 -16 8126472245055 225.00344129022074 654 -17 32497944005055 225.00172084884684 654 -18 129975887525055 225.00086047536658 654 +16 8126472245055 225.0034412902207 654 +17 32497944005055 225.0017208488468 654 +18 129975887525055 225.0008604753666 654 19 519871774565055 225.0004302504202 654 -20 2079423548645055 225.00021512839447 654 -21 8317567096805055 225.00010756499336 654 -22 33270014193125055 225.00005378269572 654 -23 133079548385765055 225.00002689139762 654 -24 532317176771045055 225.00001344571123 654 +20 2079423548645055 225.0002151283945 654 +21 8317567096805055 225.0001075649934 654 +22 33270014193125055 225.0000537826957 654 +23 133079548385765055 225.0000268913976 654 +24 532317176771045055 225.0000134457112 654 -- !sql_test_BigInt_Integer_notn_1 -- -1 127411017555 225.02748476570707 654 +1 127411017555 225.0274847657071 654 2 508649675055 225.0137553896309 654 3 2032611365055 225.0068809511284 654 -4 8126472245055 225.00344129022074 654 -5 32497944005055 225.00172084884684 654 -6 129975887525055 225.00086047536658 654 +4 8126472245055 225.0034412902207 654 +5 32497944005055 225.0017208488468 654 +6 129975887525055 225.0008604753666 654 7 519871774565055 225.0004302504202 654 -8 2079423548645055 225.00021512839447 654 -9 8317567096805055 225.00010756499336 654 -10 33270014193125055 225.00005378269572 654 -11 133079548385765055 225.00002689139762 654 -12 532317176771045055 225.00001344571123 654 -13 127411017555 225.02748476570707 654 +8 2079423548645055 225.0002151283945 654 +9 8317567096805055 225.0001075649934 654 +10 33270014193125055 225.0000537826957 654 +11 133079548385765055 225.0000268913976 654 +12 532317176771045055 225.0000134457112 654 +13 127411017555 225.0274847657071 654 14 508649675055 225.0137553896309 654 15 2032611365055 225.0068809511284 654 -16 8126472245055 225.00344129022074 654 -17 32497944005055 225.00172084884684 654 -18 129975887525055 225.00086047536658 654 +16 8126472245055 225.0034412902207 654 +17 32497944005055 225.0017208488468 654 +18 129975887525055 225.0008604753666 654 19 519871774565055 225.0004302504202 654 -20 2079423548645055 225.00021512839447 654 -21 8317567096805055 225.00010756499336 654 -22 33270014193125055 225.00005378269572 654 -23 133079548385765055 225.00002689139762 654 -24 532317176771045055 225.00001344571123 654 +20 2079423548645055 225.0002151283945 654 +21 8317567096805055 225.0001075649934 654 +22 33270014193125055 225.0000537826957 654 +23 133079548385765055 225.0000268913976 654 +24 532317176771045055 225.0000134457112 654 -- !sql_test_BigInt_Integer_2 -- \N \N @@ -15954,56 +15954,56 @@ -- !sql_test_BigInt_BigInt_1 -- \N \N \N \N -1 28670980811841 1.0 0 -2 114453173561841 1.0 0 -3 457351543436841 1.0 0 -4 1828484220686841 1.0 0 -5 7312093325186841 1.0 0 -6 29244686534186841 1.0 0 -7 116971372952186841 1.0 0 -8 467870745788186841 1.0 0 -9 1871453491460186841 1.0 0 -10 7485754982804186841 1.0 0 -11 -6950586181926916391 1.0 0 -12 9090907488610877145 1.0 0 -13 28670980811841 1.0 0 -14 114453173561841 1.0 0 -15 457351543436841 1.0 0 -16 1828484220686841 1.0 0 -17 7312093325186841 1.0 0 -18 29244686534186841 1.0 0 -19 116971372952186841 1.0 0 -20 467870745788186841 1.0 0 -21 1871453491460186841 1.0 0 -22 7485754982804186841 1.0 0 -23 -6950586181926916391 1.0 0 -24 9090907488610877145 1.0 0 +1 28670980811841 1 0 +2 114453173561841 1 0 +3 457351543436841 1 0 +4 1828484220686841 1 0 +5 7312093325186841 1 0 +6 29244686534186841 1 0 +7 116971372952186841 1 0 +8 467870745788186841 1 0 +9 1871453491460186841 1 0 +10 7485754982804186841 1 0 +11 -6950586181926916391 1 0 +12 9090907488610877145 1 0 +13 28670980811841 1 0 +14 114453173561841 1 0 +15 457351543436841 1 0 +16 1828484220686841 1 0 +17 7312093325186841 1 0 +18 29244686534186841 1 0 +19 116971372952186841 1 0 +20 467870745788186841 1 0 +21 1871453491460186841 1 0 +22 7485754982804186841 1 0 +23 -6950586181926916391 1 0 +24 9090907488610877145 1 0 -- !sql_test_BigInt_BigInt_notn_1 -- -1 28670980811841 1.0 0 -2 114453173561841 1.0 0 -3 457351543436841 1.0 0 -4 1828484220686841 1.0 0 -5 7312093325186841 1.0 0 -6 29244686534186841 1.0 0 -7 116971372952186841 1.0 0 -8 467870745788186841 1.0 0 -9 1871453491460186841 1.0 0 -10 7485754982804186841 1.0 0 -11 -6950586181926916391 1.0 0 -12 9090907488610877145 1.0 0 -13 28670980811841 1.0 0 -14 114453173561841 1.0 0 -15 457351543436841 1.0 0 -16 1828484220686841 1.0 0 -17 7312093325186841 1.0 0 -18 29244686534186841 1.0 0 -19 116971372952186841 1.0 0 -20 467870745788186841 1.0 0 -21 1871453491460186841 1.0 0 -22 7485754982804186841 1.0 0 -23 -6950586181926916391 1.0 0 -24 9090907488610877145 1.0 0 +1 28670980811841 1 0 +2 114453173561841 1 0 +3 457351543436841 1 0 +4 1828484220686841 1 0 +5 7312093325186841 1 0 +6 29244686534186841 1 0 +7 116971372952186841 1 0 +8 467870745788186841 1 0 +9 1871453491460186841 1 0 +10 7485754982804186841 1 0 +11 -6950586181926916391 1 0 +12 9090907488610877145 1 0 +13 28670980811841 1 0 +14 114453173561841 1 0 +15 457351543436841 1 0 +16 1828484220686841 1 0 +17 7312093325186841 1 0 +18 29244686534186841 1 0 +19 116971372952186841 1 0 +20 467870745788186841 1 0 +21 1871453491460186841 1 0 +22 7485754982804186841 1 0 +23 -6950586181926916391 1 0 +24 9090907488610877145 1 0 -- !sql_test_BigInt_BigInt_2 -- \N \N @@ -16221,53 +16221,53 @@ \N \N \N \N 1 573419964281205 0.04999996965187762 5354529 2 2289064166624955 0.04999998481064565 10698279 -3 9147032258812455 0.049999992401493755 21385779 -4 36569687193187455 0.049999996199788885 42760779 +3 9147032258812455 0.04999999240149375 21385779 +4 36569687193187455 0.04999999619978888 42760779 5 146241872061937455 0.04999999809965485 85510779 6 584893741799437455 0.04999999904976752 171010779 -7 2339427481274437455 0.049999999524868784 342010779 +7 2339427481274437455 0.04999999952486878 342010779 8 9357414960224437455 0.04999999976243064 684010779 9 37429069918124437455 0.04999999988121439 1368010779 10 149715099833924437455 0.04999999994060696 2736010779 -11 598858039665524437455 0.049999999970303424 5472010779 +11 598858039665524437455 0.04999999997030342 5472010779 12 2395427439328724437455 0.04999999998515169 10944010779 13 573419964281205 0.04999996965187762 5354529 14 2289064166624955 0.04999998481064565 10698279 -15 9147032258812455 0.049999992401493755 21385779 -16 36569687193187455 0.049999996199788885 42760779 +15 9147032258812455 0.04999999240149375 21385779 +16 36569687193187455 0.04999999619978888 42760779 17 146241872061937455 0.04999999809965485 85510779 18 584893741799437455 0.04999999904976752 171010779 -19 2339427481274437455 0.049999999524868784 342010779 +19 2339427481274437455 0.04999999952486878 342010779 20 9357414960224437455 0.04999999976243064 684010779 21 37429069918124437455 0.04999999988121439 1368010779 22 149715099833924437455 0.04999999994060696 2736010779 -23 598858039665524437455 0.049999999970303424 5472010779 +23 598858039665524437455 0.04999999997030342 5472010779 24 2395427439328724437455 0.04999999998515169 10944010779 -- !sql_test_BigInt_LargeInt_notn_1 -- 1 573419964281205 0.04999996965187762 5354529 2 2289064166624955 0.04999998481064565 10698279 -3 9147032258812455 0.049999992401493755 21385779 -4 36569687193187455 0.049999996199788885 42760779 +3 9147032258812455 0.04999999240149375 21385779 +4 36569687193187455 0.04999999619978888 42760779 5 146241872061937455 0.04999999809965485 85510779 6 584893741799437455 0.04999999904976752 171010779 -7 2339427481274437455 0.049999999524868784 342010779 +7 2339427481274437455 0.04999999952486878 342010779 8 9357414960224437455 0.04999999976243064 684010779 9 37429069918124437455 0.04999999988121439 1368010779 10 149715099833924437455 0.04999999994060696 2736010779 -11 598858039665524437455 0.049999999970303424 5472010779 +11 598858039665524437455 0.04999999997030342 5472010779 12 2395427439328724437455 0.04999999998515169 10944010779 13 573419964281205 0.04999996965187762 5354529 14 2289064166624955 0.04999998481064565 10698279 -15 9147032258812455 0.049999992401493755 21385779 -16 36569687193187455 0.049999996199788885 42760779 +15 9147032258812455 0.04999999240149375 21385779 +16 36569687193187455 0.04999999619978888 42760779 17 146241872061937455 0.04999999809965485 85510779 18 584893741799437455 0.04999999904976752 171010779 -19 2339427481274437455 0.049999999524868784 342010779 +19 2339427481274437455 0.04999999952486878 342010779 20 9357414960224437455 0.04999999976243064 684010779 21 37429069918124437455 0.04999999988121439 1368010779 22 149715099833924437455 0.04999999994060696 2736010779 -23 598858039665524437455 0.049999999970303424 5472010779 +23 598858039665524437455 0.04999999997030342 5472010779 24 2395427439328724437455 0.04999999998515169 10944010779 -- !sql_test_BigInt_LargeInt_3 -- @@ -16378,56 +16378,56 @@ -- !sql_test_BigInt_Float_0 -- \N \N \N -1 5354529.1000000015 5354528.8999999985 -2 1.0698279200000003E7 1.0698278799999997E7 -3 2.1385779300000012E7 2.1385778699999988E7 -4 4.2760779400000006E7 4.2760778599999994E7 -5 8.55107795E7 8.55107785E7 -6 1.7101077960000002E8 1.7101077839999998E8 -7 3.420107797E8 3.420107783E8 -8 6.840107798E8 6.840107782E8 -9 1.3680107799E9 1.3680107781E9 -10 2.73601078E9 2.736010778E9 -11 5.4720107801E9 5.4720107779E9 -12 1.09440107802E10 1.09440107778E10 -13 5354529.1000000015 5354528.8999999985 -14 1.0698279200000003E7 1.0698278799999997E7 -15 2.1385779300000012E7 2.1385778699999988E7 -16 4.2760779400000006E7 4.2760778599999994E7 -17 8.55107795E7 8.55107785E7 -18 1.7101077960000002E8 1.7101077839999998E8 -19 3.420107797E8 3.420107783E8 -20 6.840107798E8 6.840107782E8 -21 1.3680107799E9 1.3680107781E9 -22 2.73601078E9 2.736010778E9 -23 5.4720107801E9 5.4720107779E9 -24 1.09440107802E10 1.09440107778E10 +1 5354529.100000001 5354528.899999999 +2 10698279.2 10698278.8 +3 21385779.30000001 21385778.69999999 +4 42760779.40000001 42760778.59999999 +5 85510779.5 85510778.5 +6 171010779.6 171010778.4 +7 342010779.7 342010778.3 +8 684010779.8 684010778.2 +9 1368010779.9 1368010778.1 +10 2736010780 2736010778 +11 5472010780.1 5472010777.9 +12 10944010780.2 10944010777.8 +13 5354529.100000001 5354528.899999999 +14 10698279.2 10698278.8 +15 21385779.30000001 21385778.69999999 +16 42760779.40000001 42760778.59999999 +17 85510779.5 85510778.5 +18 171010779.6 171010778.4 +19 342010779.7 342010778.3 +20 684010779.8 684010778.2 +21 1368010779.9 1368010778.1 +22 2736010780 2736010778 +23 5472010780.1 5472010777.9 +24 10944010780.2 10944010777.8 -- !sql_test_BigInt_Float_notn_0 -- -1 5354529.1000000015 5354528.8999999985 -2 1.0698279200000003E7 1.0698278799999997E7 -3 2.1385779300000012E7 2.1385778699999988E7 -4 4.2760779400000006E7 4.2760778599999994E7 -5 8.55107795E7 8.55107785E7 -6 1.7101077960000002E8 1.7101077839999998E8 -7 3.420107797E8 3.420107783E8 -8 6.840107798E8 6.840107782E8 -9 1.3680107799E9 1.3680107781E9 -10 2.73601078E9 2.736010778E9 -11 5.4720107801E9 5.4720107779E9 -12 1.09440107802E10 1.09440107778E10 -13 5354529.1000000015 5354528.8999999985 -14 1.0698279200000003E7 1.0698278799999997E7 -15 2.1385779300000012E7 2.1385778699999988E7 -16 4.2760779400000006E7 4.2760778599999994E7 -17 8.55107795E7 8.55107785E7 -18 1.7101077960000002E8 1.7101077839999998E8 -19 3.420107797E8 3.420107783E8 -20 6.840107798E8 6.840107782E8 -21 1.3680107799E9 1.3680107781E9 -22 2.73601078E9 2.736010778E9 -23 5.4720107801E9 5.4720107779E9 -24 1.09440107802E10 1.09440107778E10 +1 5354529.100000001 5354528.899999999 +2 10698279.2 10698278.8 +3 21385779.30000001 21385778.69999999 +4 42760779.40000001 42760778.59999999 +5 85510779.5 85510778.5 +6 171010779.6 171010778.4 +7 342010779.7 342010778.3 +8 684010779.8 684010778.2 +9 1368010779.9 1368010778.1 +10 2736010780 2736010778 +11 5472010780.1 5472010777.9 +12 10944010780.2 10944010777.8 +13 5354529.100000001 5354528.899999999 +14 10698279.2 10698278.8 +15 21385779.30000001 21385778.69999999 +16 42760779.40000001 42760778.59999999 +17 85510779.5 85510778.5 +18 171010779.6 171010778.4 +19 342010779.7 342010778.3 +20 684010779.8 684010778.2 +21 1368010779.9 1368010778.1 +22 2736010780 2736010778 +23 5472010780.1 5472010777.9 +24 10944010780.2 10944010777.8 -- !sql_test_BigInt_Float_3 -- \N \N \N \N @@ -16485,108 +16485,108 @@ -- !sql_test_BigInt_Double_0 -- \N \N \N 1 5354529.5244 5354528.4756 -2 1.06982797416E7 1.06982782584E7 -3 2.13857800368E7 2.13857779632E7 -4 4.27607804491E7 4.27607775509E7 -5 8.5510781031E7 8.5510776969E7 -6 1.710107818548E8 1.710107761452E8 -7 3.420107830218E8 3.420107749782E8 -8 6.840107846745E8 6.840107733255E8 -9 1.3680107870141E9 1.3680107709859E9 -10 2.7360107903248E9 2.7360107676752E9 -11 5.4720107950086E9 5.4720107629914E9 -12 1.0944010801634E10 1.0944010756366E10 +2 10698279.7416 10698278.2584 +3 21385780.0368 21385777.9632 +4 42760780.4491 42760777.5509 +5 85510781.031 85510776.969 +6 171010781.8548 171010776.1452 +7 342010783.0218 342010774.9782 +8 684010784.6745 684010773.3255 +9 1368010787.0141 1368010770.9859 +10 2736010790.3248 2736010767.6752 +11 5472010795.0086 5472010762.9914 +12 10944010801.634 10944010756.366 13 5354529.5244 5354528.4756 -14 1.06982797416E7 1.06982782584E7 -15 2.13857800368E7 2.13857779632E7 -16 4.27607804491E7 4.27607775509E7 -17 8.5510781031E7 8.5510776969E7 -18 1.710107818548E8 1.710107761452E8 -19 3.420107830218E8 3.420107749782E8 -20 6.840107846745E8 6.840107733255E8 -21 1.3680107870141E9 1.3680107709859E9 -22 2.7360107903248E9 2.7360107676752E9 -23 5.4720107950086E9 5.4720107629914E9 -24 1.0944010801634E10 1.0944010756366E10 +14 10698279.7416 10698278.2584 +15 21385780.0368 21385777.9632 +16 42760780.4491 42760777.5509 +17 85510781.031 85510776.969 +18 171010781.8548 171010776.1452 +19 342010783.0218 342010774.9782 +20 684010784.6745 684010773.3255 +21 1368010787.0141 1368010770.9859 +22 2736010790.3248 2736010767.6752 +23 5472010795.0086 5472010762.9914 +24 10944010801.634 10944010756.366 -- !sql_test_BigInt_Double_notn_0 -- 1 5354529.5244 5354528.4756 -2 1.06982797416E7 1.06982782584E7 -3 2.13857800368E7 2.13857779632E7 -4 4.27607804491E7 4.27607775509E7 -5 8.5510781031E7 8.5510776969E7 -6 1.710107818548E8 1.710107761452E8 -7 3.420107830218E8 3.420107749782E8 -8 6.840107846745E8 6.840107733255E8 -9 1.3680107870141E9 1.3680107709859E9 -10 2.7360107903248E9 2.7360107676752E9 -11 5.4720107950086E9 5.4720107629914E9 -12 1.0944010801634E10 1.0944010756366E10 +2 10698279.7416 10698278.2584 +3 21385780.0368 21385777.9632 +4 42760780.4491 42760777.5509 +5 85510781.031 85510776.969 +6 171010781.8548 171010776.1452 +7 342010783.0218 342010774.9782 +8 684010784.6745 684010773.3255 +9 1368010787.0141 1368010770.9859 +10 2736010790.3248 2736010767.6752 +11 5472010795.0086 5472010762.9914 +12 10944010801.634 10944010756.366 13 5354529.5244 5354528.4756 -14 1.06982797416E7 1.06982782584E7 -15 2.13857800368E7 2.13857779632E7 -16 4.27607804491E7 4.27607775509E7 -17 8.5510781031E7 8.5510776969E7 -18 1.710107818548E8 1.710107761452E8 -19 3.420107830218E8 3.420107749782E8 -20 6.840107846745E8 6.840107733255E8 -21 1.3680107870141E9 1.3680107709859E9 -22 2.7360107903248E9 2.7360107676752E9 -23 5.4720107950086E9 5.4720107629914E9 -24 1.0944010801634E10 1.0944010756366E10 +14 10698279.7416 10698278.2584 +15 21385780.0368 21385777.9632 +16 42760780.4491 42760777.5509 +17 85510781.031 85510776.969 +18 171010781.8548 171010776.1452 +19 342010783.0218 342010774.9782 +20 684010784.6745 684010773.3255 +21 1368010787.0141 1368010770.9859 +22 2736010790.3248 2736010767.6752 +23 5472010795.0086 5472010762.9914 +24 10944010801.634 10944010756.366 -- !sql_test_BigInt_Double_1 -- \N \N \N \N -1 2807915.0075999997 1.0210772311212815E7 0.16320000023216608 -2 7933843.7064000005 1.4425942556634303E7 0.4127999994669871 -3 2.21727756672E7 2.062671585648148E7 0.8880000011578368 -4 6.1964644848900005E7 2.9508508039472774E7 0.05719999838553669 -5 1.7367239214900002E8 4.2102796159527324E7 0.323999994166412 -6 4.882015718892E8 5.990289302227827E7 0.06359999974461861 -7 1.3754989509822E9 8.503923094136953E7 3.786000015347698 -8 3.8814191654355E9 1.2054115411049432E8 0.6269999880090502 -9 1.0963375183983898E10 1.7070048776531366E8 6.133300151369909 -10 3.09847748700192E10 2.4159462233328626E8 3.7744000590521765 -11 8.75992317566994E10 3.418169470784453E8 1.2557995647670168 -12 2.4770673997188602E11 4.835208438190333E8 18.537999835090133 -13 2807915.0075999997 1.0210772311212815E7 0.16320000023216608 -14 7933843.7064000005 1.4425942556634303E7 0.4127999994669871 -15 2.21727756672E7 2.062671585648148E7 0.8880000011578368 -16 6.1964644848900005E7 2.9508508039472774E7 0.05719999838553669 -17 1.7367239214900002E8 4.2102796159527324E7 0.323999994166412 -18 4.882015718892E8 5.990289302227827E7 0.06359999974461861 -19 1.3754989509822E9 8.503923094136953E7 3.786000015347698 -20 3.8814191654355E9 1.2054115411049432E8 0.6269999880090502 -21 1.0963375183983898E10 1.7070048776531366E8 6.133300151369909 -22 3.09847748700192E10 2.4159462233328626E8 3.7744000590521765 -23 8.75992317566994E10 3.418169470784453E8 1.2557995647670168 -24 2.4770673997188602E11 4.835208438190333E8 18.537999835090133 +1 2807915.0076 10210772.31121282 0.1632000002321661 +2 7933843.7064 14425942.5566343 0.4127999994669871 +3 22172775.6672 20626715.85648148 0.8880000011578368 +4 61964644.84890001 29508508.03947277 0.05719999838553669 +5 173672392.149 42102796.15952732 0.323999994166412 +6 488201571.8892 59902893.02227827 0.06359999974461861 +7 1375498950.9822 85039230.94136953 3.786000015347698 +8 3881419165.4355 120541154.1104943 0.6269999880090502 +9 10963375183.9839 170700487.7653137 6.133300151369909 +10 30984774870.0192 241594622.3332863 3.774400059052176 +11 87599231756.6994 341816947.0784453 1.255799564767017 +12 247706739971.886 483520843.8190333 18.53799983509013 +13 2807915.0076 10210772.31121282 0.1632000002321661 +14 7933843.7064 14425942.5566343 0.4127999994669871 +15 22172775.6672 20626715.85648148 0.8880000011578368 +16 61964644.84890001 29508508.03947277 0.05719999838553669 +17 173672392.149 42102796.15952732 0.323999994166412 +18 488201571.8892 59902893.02227827 0.06359999974461861 +19 1375498950.9822 85039230.94136953 3.786000015347698 +20 3881419165.4355 120541154.1104943 0.6269999880090502 +21 10963375183.9839 170700487.7653137 6.133300151369909 +22 30984774870.0192 241594622.3332863 3.774400059052176 +23 87599231756.6994 341816947.0784453 1.255799564767017 +24 247706739971.886 483520843.8190333 18.53799983509013 -- !sql_test_BigInt_Double_notn_1 -- -1 2807915.0075999997 1.0210772311212815E7 0.16320000023216608 -2 7933843.7064000005 1.4425942556634303E7 0.4127999994669871 -3 2.21727756672E7 2.062671585648148E7 0.8880000011578368 -4 6.1964644848900005E7 2.9508508039472774E7 0.05719999838553669 -5 1.7367239214900002E8 4.2102796159527324E7 0.323999994166412 -6 4.882015718892E8 5.990289302227827E7 0.06359999974461861 -7 1.3754989509822E9 8.503923094136953E7 3.786000015347698 -8 3.8814191654355E9 1.2054115411049432E8 0.6269999880090502 -9 1.0963375183983898E10 1.7070048776531366E8 6.133300151369909 -10 3.09847748700192E10 2.4159462233328626E8 3.7744000590521765 -11 8.75992317566994E10 3.418169470784453E8 1.2557995647670168 -12 2.4770673997188602E11 4.835208438190333E8 18.537999835090133 -13 2807915.0075999997 1.0210772311212815E7 0.16320000023216608 -14 7933843.7064000005 1.4425942556634303E7 0.4127999994669871 -15 2.21727756672E7 2.062671585648148E7 0.8880000011578368 -16 6.1964644848900005E7 2.9508508039472774E7 0.05719999838553669 -17 1.7367239214900002E8 4.2102796159527324E7 0.323999994166412 -18 4.882015718892E8 5.990289302227827E7 0.06359999974461861 -19 1.3754989509822E9 8.503923094136953E7 3.786000015347698 -20 3.8814191654355E9 1.2054115411049432E8 0.6269999880090502 -21 1.0963375183983898E10 1.7070048776531366E8 6.133300151369909 -22 3.09847748700192E10 2.4159462233328626E8 3.7744000590521765 -23 8.75992317566994E10 3.418169470784453E8 1.2557995647670168 -24 2.4770673997188602E11 4.835208438190333E8 18.537999835090133 +1 2807915.0076 10210772.31121282 0.1632000002321661 +2 7933843.7064 14425942.5566343 0.4127999994669871 +3 22172775.6672 20626715.85648148 0.8880000011578368 +4 61964644.84890001 29508508.03947277 0.05719999838553669 +5 173672392.149 42102796.15952732 0.323999994166412 +6 488201571.8892 59902893.02227827 0.06359999974461861 +7 1375498950.9822 85039230.94136953 3.786000015347698 +8 3881419165.4355 120541154.1104943 0.6269999880090502 +9 10963375183.9839 170700487.7653137 6.133300151369909 +10 30984774870.0192 241594622.3332863 3.774400059052176 +11 87599231756.6994 341816947.0784453 1.255799564767017 +12 247706739971.886 483520843.8190333 18.53799983509013 +13 2807915.0076 10210772.31121282 0.1632000002321661 +14 7933843.7064 14425942.5566343 0.4127999994669871 +15 22172775.6672 20626715.85648148 0.8880000011578368 +16 61964644.84890001 29508508.03947277 0.05719999838553669 +17 173672392.149 42102796.15952732 0.323999994166412 +18 488201571.8892 59902893.02227827 0.06359999974461861 +19 1375498950.9822 85039230.94136953 3.786000015347698 +20 3881419165.4355 120541154.1104943 0.6269999880090502 +21 10963375183.9839 170700487.7653137 6.133300151369909 +22 30984774870.0192 241594622.3332863 3.774400059052176 +23 87599231756.6994 341816947.0784453 1.255799564767017 +24 247706739971.886 483520843.8190333 18.53799983509013 -- !sql_test_BigInt_Double_3 -- \N \N \N \N @@ -17345,17 +17345,17 @@ 11 \N \N 12 \N \N 13 5354683.289 5354374.711 -14 1.0698497094E7 1.0698060906E7 -15 2.1386087359E7 2.1385470641E7 -16 4.2761215033E7 4.2760342967E7 -17 8.5511395608E7 8.5510162392E7 -18 1.71011650989E8 1.71009907011E8 -19 3.42012012161E8 3.42009545839E8 -20 6.8401252294E8 6.8400903506E8 -21 1.368013245294E9 1.368008312706E9 -22 2.73601426686E9 2.73600729114E9 -23 5.472015711574E9 5.472005846426E9 -24 1.094401775471E10 1.094400380329E10 +14 10698497.094 10698060.906 +15 21386087.359 21385470.641 +16 42761215.033 42760342.967 +17 85511395.608 85510162.392 +18 171011650.989 171009907.011 +19 342012012.161 342009545.839 +20 684012522.9400001 684009035.0599999 +21 1368013245.294 1368008312.706 +22 2736014266.86 2736007291.14 +23 5472015711.574 5472005846.426 +24 10944017754.71 10944003803.29 -- !sql_test_BigInt_Char_notn_0 -- 1 \N \N @@ -17371,17 +17371,17 @@ 11 \N \N 12 \N \N 13 5354683.289 5354374.711 -14 1.0698497094E7 1.0698060906E7 -15 2.1386087359E7 2.1385470641E7 -16 4.2761215033E7 4.2760342967E7 -17 8.5511395608E7 8.5510162392E7 -18 1.71011650989E8 1.71009907011E8 -19 3.42012012161E8 3.42009545839E8 -20 6.8401252294E8 6.8400903506E8 -21 1.368013245294E9 1.368008312706E9 -22 2.73601426686E9 2.73600729114E9 -23 5.472015711574E9 5.472005846426E9 -24 1.094401775471E10 1.094400380329E10 +14 10698497.094 10698060.906 +15 21386087.359 21385470.641 +16 42761215.033 42760342.967 +17 85511395.608 85510162.392 +18 171011650.989 171009907.011 +19 342012012.161 342009545.839 +20 684012522.9400001 684009035.0599999 +21 1368013245.294 1368008312.706 +22 2736014266.86 2736007291.14 +23 5472015711.574 5472005846.426 +24 10944017754.71 10944003803.29 -- !sql_test_BigInt_Char_1 -- \N \N \N \N @@ -17397,18 +17397,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 8.261449248809999E8 34704.54147735743 83.54400000044188 -14 2.333230460226E9 49053.52279292415 114.01800000028999 -15 6.594497426660999E9 69353.51003213787 157.27300000135614 -16 1.8645110749707E10 98067.7586329475 330.78899999848375 -17 5.2726630417631996E10 138679.32138408846 198.1680000073154 -18 1.49119518169431E11 196115.75260697096 656.2649999935788 -19 4.21754354242419E11 277344.7903396231 974.6159999838565 -20 1.19287375792926E12 392221.5093409177 888.2599999785966 -21 3.373916776183026E12 554682.7665314841 1890.4920000726452 -22 9.54282255564294E12 784438.2455144415 856.3199999001181 -23 2.6991098096215145E13 1109362.1259407362 621.2120004277986 -24 7.63422454311781E13 1568874.1044280797 728.4599999429247 +13 826144924.8809999 34704.54147735743 83.54400000044188 +14 2333230460.226 49053.52279292415 114.01800000029 +15 6594497426.660999 69353.51003213787 157.2730000013561 +16 18645110749.707 98067.7586329475 330.7889999984837 +17 52726630417.632 138679.3213840885 198.1680000073154 +18 149119518169.431 196115.752606971 656.2649999935788 +19 421754354242.419 277344.7903396231 974.6159999838565 +20 1192873757929.26 392221.5093409177 888.2599999785966 +21 3373916776183.026 554682.7665314841 1890.492000072645 +22 9542822555642.939 784438.2455144415 856.3199999001181 +23 26991098096215.14 1109362.125940736 621.2120004277986 +24 76342245431178.09 1568874.10442808 728.4599999429247 -- !sql_test_BigInt_Char_notn_1 -- 1 \N \N \N @@ -17423,18 +17423,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 8.261449248809999E8 34704.54147735743 83.54400000044188 -14 2.333230460226E9 49053.52279292415 114.01800000028999 -15 6.594497426660999E9 69353.51003213787 157.27300000135614 -16 1.8645110749707E10 98067.7586329475 330.78899999848375 -17 5.2726630417631996E10 138679.32138408846 198.1680000073154 -18 1.49119518169431E11 196115.75260697096 656.2649999935788 -19 4.21754354242419E11 277344.7903396231 974.6159999838565 -20 1.19287375792926E12 392221.5093409177 888.2599999785966 -21 3.373916776183026E12 554682.7665314841 1890.4920000726452 -22 9.54282255564294E12 784438.2455144415 856.3199999001181 -23 2.6991098096215145E13 1109362.1259407362 621.2120004277986 -24 7.63422454311781E13 1568874.1044280797 728.4599999429247 +13 826144924.8809999 34704.54147735743 83.54400000044188 +14 2333230460.226 49053.52279292415 114.01800000029 +15 6594497426.660999 69353.51003213787 157.2730000013561 +16 18645110749.707 98067.7586329475 330.7889999984837 +17 52726630417.632 138679.3213840885 198.1680000073154 +18 149119518169.431 196115.752606971 656.2649999935788 +19 421754354242.419 277344.7903396231 974.6159999838565 +20 1192873757929.26 392221.5093409177 888.2599999785966 +21 3373916776183.026 554682.7665314841 1890.492000072645 +22 9542822555642.939 784438.2455144415 856.3199999001181 +23 26991098096215.14 1109362.125940736 621.2120004277986 +24 76342245431178.09 1568874.10442808 728.4599999429247 -- !sql_test_BigInt_Char_3 -- \N \N \N \N @@ -17504,17 +17504,17 @@ 11 \N \N 12 \N \N 13 5356848.121 5352209.879 -14 1.0701557082E7 1.0695000918E7 -15 2.1390413741E7 2.1381144259E7 -16 4.2767332688E7 4.2754225312E7 -17 8.552004673E7 8.550151127E7 -18 1.71023885137E8 1.70997672863E8 -19 3.42029313585E8 3.41992244415E8 -20 6.84036990654E8 6.83984567346E8 -21 1.368047847731E9 1.367973710269E9 -22 2.736063201999E9 2.735958356001E9 -23 5.472084916243E9 5.471936641757E9 -24 1.0944115624843E10 1.0943905933157E10 +14 10701557.082 10695000.918 +15 21390413.741 21381144.259 +16 42767332.688 42754225.312 +17 85520046.73 85501511.27 +18 171023885.137 170997672.863 +19 342029313.585 341992244.415 +20 684036990.654 683984567.346 +21 1368047847.731 1367973710.269 +22 2736063201.999 2735958356.001 +23 5472084916.243 5471936641.757 +24 10944115624.843 10943905933.157 -- !sql_test_BigInt_Varchar_notn_0 -- 1 \N \N @@ -17530,17 +17530,17 @@ 11 \N \N 12 \N \N 13 5356848.121 5352209.879 -14 1.0701557082E7 1.0695000918E7 -15 2.1390413741E7 2.1381144259E7 -16 4.2767332688E7 4.2754225312E7 -17 8.552004673E7 8.550151127E7 -18 1.71023885137E8 1.70997672863E8 -19 3.42029313585E8 3.41992244415E8 -20 6.84036990654E8 6.83984567346E8 -21 1.368047847731E9 1.367973710269E9 -22 2.736063201999E9 2.735958356001E9 -23 5.472084916243E9 5.471936641757E9 -24 1.0944115624843E10 1.0943905933157E10 +14 10701557.082 10695000.918 +15 21390413.741 21381144.259 +16 42767332.688 42754225.312 +17 85520046.73 85501511.27 +18 171023885.137 170997672.863 +19 342029313.585 341992244.415 +20 684036990.654 683984567.346 +21 1368047847.731 1367973710.269 +22 2736063201.999 2735958356.001 +23 5472084916.243 5471936641.757 +24 10944115624.843 10943905933.157 -- !sql_test_BigInt_Varchar_1 -- \N \N \N \N @@ -17556,18 +17556,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.2417800649009E10 2308.8614177526742 1997.7319999997817 -14 3.5069835820878E10 3263.5788244467344 1897.4340000003917 -15 9.9117546748239E10 4614.233891386811 1084.0260000000671 -16 2.80240804202952E11 6524.689457294885 4518.487999999335 -17 7.924908118616699E11 9226.723156587428 6702.020000004028 -18 2.241290698050723E12 13048.145231504905 1903.4239999918354 -19 6.339027854291715E12 18452.572798365865 10616.58000001611 -20 1.7929053871418465E13 26095.67404636121 17667.870000035695 -21 5.0710423571851445E13 36904.71030691609 26330.176000008592 -22 1.4342989033150622E14 52191.038879710024 2038.190999820763 -23 4.056797928213423E14 73809.2024679148 15010.412999836743 -24 1.1474340359253418E15 104381.92364956235 96840.81700068049 +13 12417800649.009 2308.861417752674 1997.731999999782 +14 35069835820.878 3263.578824446734 1897.434000000392 +15 99117546748.239 4614.233891386811 1084.026000000067 +16 280240804202.952 6524.689457294885 4518.487999999335 +17 792490811861.6699 9226.723156587428 6702.020000004028 +18 2241290698050.723 13048.1452315049 1903.423999991835 +19 6339027854291.715 18452.57279836587 10616.58000001611 +20 17929053871418.46 26095.67404636121 17667.87000003569 +21 50710423571851.45 36904.71030691609 26330.17600000859 +22 143429890331506.2 52191.03887971002 2038.190999820763 +23 405679792821342.3 73809.2024679148 15010.41299983674 +24 1147434035925342 104381.9236495623 96840.81700068049 -- !sql_test_BigInt_Varchar_notn_1 -- 1 \N \N \N @@ -17582,18 +17582,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.2417800649009E10 2308.8614177526742 1997.7319999997817 -14 3.5069835820878E10 3263.5788244467344 1897.4340000003917 -15 9.9117546748239E10 4614.233891386811 1084.0260000000671 -16 2.80240804202952E11 6524.689457294885 4518.487999999335 -17 7.924908118616699E11 9226.723156587428 6702.020000004028 -18 2.241290698050723E12 13048.145231504905 1903.4239999918354 -19 6.339027854291715E12 18452.572798365865 10616.58000001611 -20 1.7929053871418465E13 26095.67404636121 17667.870000035695 -21 5.0710423571851445E13 36904.71030691609 26330.176000008592 -22 1.4342989033150622E14 52191.038879710024 2038.190999820763 -23 4.056797928213423E14 73809.2024679148 15010.412999836743 -24 1.1474340359253418E15 104381.92364956235 96840.81700068049 +13 12417800649.009 2308.861417752674 1997.731999999782 +14 35069835820.878 3263.578824446734 1897.434000000392 +15 99117546748.239 4614.233891386811 1084.026000000067 +16 280240804202.952 6524.689457294885 4518.487999999335 +17 792490811861.6699 9226.723156587428 6702.020000004028 +18 2241290698050.723 13048.1452315049 1903.423999991835 +19 6339027854291.715 18452.57279836587 10616.58000001611 +20 17929053871418.46 26095.67404636121 17667.87000003569 +21 50710423571851.45 36904.71030691609 26330.17600000859 +22 143429890331506.2 52191.03887971002 2038.190999820763 +23 405679792821342.3 73809.2024679148 15010.41299983674 +24 1147434035925342 104381.9236495623 96840.81700068049 -- !sql_test_BigInt_Varchar_3 -- \N \N \N \N @@ -17663,17 +17663,17 @@ 11 \N \N 12 \N \N 13 5365133.017 5343924.983 -14 1.0713267793E7 1.0683290207E7 -15 2.1406971013E7 2.1364586987E7 -16 4.2790745255E7 4.2730812745E7 -17 8.5553155012E7 8.5468402988E7 -18 1.71070705842E8 1.70950852158E8 -19 3.42095527017E8 3.41926030983E8 -20 6.84130629851E8 6.83890928149E8 -21 1.368180273031E9 1.367841284969E9 -22 2.736250479285E9 2.735771078715E9 -23 5.472349766059E9 5.471671791941E9 -24 1.0944490178861E10 1.0943531379139E10 +14 10713267.793 10683290.207 +15 21406971.013 21364586.987 +16 42790745.255 42730812.745 +17 85553155.01199999 85468402.98800001 +18 171070705.842 170950852.158 +19 342095527.017 341926030.983 +20 684130629.851 683890928.149 +21 1368180273.031 1367841284.969 +22 2736250479.285 2735771078.715 +23 5472349766.059 5471671791.941 +24 10944490178.861 10943531379.139 -- !sql_test_BigInt_String_notn_0 -- 1 \N \N @@ -17689,17 +17689,17 @@ 11 \N \N 12 \N \N 13 5365133.017 5343924.983 -14 1.0713267793E7 1.0683290207E7 -15 2.1406971013E7 2.1364586987E7 -16 4.2790745255E7 4.2730812745E7 -17 8.5553155012E7 8.5468402988E7 -18 1.71070705842E8 1.70950852158E8 -19 3.42095527017E8 3.41926030983E8 -20 6.84130629851E8 6.83890928149E8 -21 1.368180273031E9 1.367841284969E9 -22 2.736250479285E9 2.735771078715E9 -23 5.472349766059E9 5.471671791941E9 -24 1.0944490178861E10 1.0943531379139E10 +14 10713267.793 10683290.207 +15 21406971.013 21364586.987 +16 42790745.255 42730812.745 +17 85553155.01199999 85468402.98800001 +18 171070705.842 170950852.158 +19 342095527.017 341926030.983 +20 684130629.851 683890928.149 +21 1368180273.031 1367841284.969 +22 2736250479.285 2735771078.715 +23 5472349766.059 5471671791.941 +24 10944490178.861 10943531379.139 -- !sql_test_BigInt_String_1 -- \N \N \N \N @@ -17715,18 +17715,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.6779516542993E10 504.95288719359843 10104.432000000088 -14 1.60354289387247E11 713.7518678121714 11269.591000000239 -15 4.5320770658312695E11 1009.143350374502 3037.8830000009984 -16 1.281380407512645E12 1426.9643971193598 28899.369999998547 -17 3.623605797033348E12 2017.905295099501 38362.79599999507 -18 1.0248135933429918E13 2853.659116560823 39498.7740000088 -19 2.8984735312875246E13 4035.619842290823 52530.404999971346 -20 8.197927395632292E13 5707.183330721615 21972.343000027904 -21 2.3186966138416012E14 8071.144281181207 24454.799000095838 -22 6.55822563489372E14 11414.299232059737 71726.00999996014 -23 1.854940840789509E15 16142.240931386115 81672.6219998647 -24 5.246557246235101E15 22828.56477298812 270752.0920005634 +13 56779516542.993 504.9528871935984 10104.43200000009 +14 160354289387.247 713.7518678121714 11269.59100000024 +15 453207706583.127 1009.143350374502 3037.883000000998 +16 1281380407512.645 1426.96439711936 28899.36999999855 +17 3623605797033.348 2017.905295099501 38362.79599999507 +18 10248135933429.92 2853.659116560823 39498.7740000088 +19 28984735312875.25 4035.619842290823 52530.40499997135 +20 81979273956322.92 5707.183330721615 21972.3430000279 +21 231869661384160.1 8071.144281181207 24454.79900009584 +22 655822563489372 11414.29923205974 71726.00999996014 +23 1854940840789509 16142.24093138612 81672.6219998647 +24 5246557246235101 22828.56477298812 270752.0920005634 -- !sql_test_BigInt_String_notn_1 -- 1 \N \N \N @@ -17741,18 +17741,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.6779516542993E10 504.95288719359843 10104.432000000088 -14 1.60354289387247E11 713.7518678121714 11269.591000000239 -15 4.5320770658312695E11 1009.143350374502 3037.8830000009984 -16 1.281380407512645E12 1426.9643971193598 28899.369999998547 -17 3.623605797033348E12 2017.905295099501 38362.79599999507 -18 1.0248135933429918E13 2853.659116560823 39498.7740000088 -19 2.8984735312875246E13 4035.619842290823 52530.404999971346 -20 8.197927395632292E13 5707.183330721615 21972.343000027904 -21 2.3186966138416012E14 8071.144281181207 24454.799000095838 -22 6.55822563489372E14 11414.299232059737 71726.00999996014 -23 1.854940840789509E15 16142.240931386115 81672.6219998647 -24 5.246557246235101E15 22828.56477298812 270752.0920005634 +13 56779516542.993 504.9528871935984 10104.43200000009 +14 160354289387.247 713.7518678121714 11269.59100000024 +15 453207706583.127 1009.143350374502 3037.883000000998 +16 1281380407512.645 1426.96439711936 28899.36999999855 +17 3623605797033.348 2017.905295099501 38362.79599999507 +18 10248135933429.92 2853.659116560823 39498.7740000088 +19 28984735312875.25 4035.619842290823 52530.40499997135 +20 81979273956322.92 5707.183330721615 21972.3430000279 +21 231869661384160.1 8071.144281181207 24454.79900009584 +22 655822563489372 11414.29923205974 71726.00999996014 +23 1854940840789509 16142.24093138612 81672.6219998647 +24 5246557246235101 22828.56477298812 270752.0920005634 -- !sql_test_BigInt_String_3 -- \N \N \N \N @@ -17864,52 +17864,52 @@ \N \N \N \N 1 107734735193229 0.2661256906643693 5354529 2 215252604360258 0.5317156273300471 10698279 -3 430288353371037 1.0628954742878376 1265476 -4 860359872756816 2.1252551154296673 2520171 +3 430288353371037 1.062895474287838 1265476 +4 860359872756816 2.125255115429667 2520171 5 1720502954267595 4.24997429213921 5029559 6 3440789202778374 8.499412434383453 10048331 -7 6881361870789153 16.998288296495677 20085867 +7 6881361870789153 16.99828829649568 20085867 8 13762507548799932 33.99603917594104 20040615 9 27524799588810711 67.99153924524718 19950076 -10 55049385036821490 135.98253600466396 19768929 +10 55049385036821490 135.982536004664 19768929 11 110098558668832269 271.9645227650805 19406498 12 220196911404843048 543.9284827690544 18681363 13 107734735193229 0.2661256906643693 5354529 14 215252604360258 0.5317156273300471 10698279 -15 430288353371037 1.0628954742878376 1265476 -16 860359872756816 2.1252551154296673 2520171 +15 430288353371037 1.062895474287838 1265476 +16 860359872756816 2.125255115429667 2520171 17 1720502954267595 4.24997429213921 5029559 18 3440789202778374 8.499412434383453 10048331 -19 6881361870789153 16.998288296495677 20085867 +19 6881361870789153 16.99828829649568 20085867 20 13762507548799932 33.99603917594104 20040615 21 27524799588810711 67.99153924524718 19950076 -22 55049385036821490 135.98253600466396 19768929 +22 55049385036821490 135.982536004664 19768929 23 110098558668832269 271.9645227650805 19406498 24 220196911404843048 543.9284827690544 18681363 -- !sql_test_BigInt_Date_notn_1 -- 1 107734735193229 0.2661256906643693 5354529 2 215252604360258 0.5317156273300471 10698279 -3 430288353371037 1.0628954742878376 1265476 -4 860359872756816 2.1252551154296673 2520171 +3 430288353371037 1.062895474287838 1265476 +4 860359872756816 2.125255115429667 2520171 5 1720502954267595 4.24997429213921 5029559 6 3440789202778374 8.499412434383453 10048331 -7 6881361870789153 16.998288296495677 20085867 +7 6881361870789153 16.99828829649568 20085867 8 13762507548799932 33.99603917594104 20040615 9 27524799588810711 67.99153924524718 19950076 -10 55049385036821490 135.98253600466396 19768929 +10 55049385036821490 135.982536004664 19768929 11 110098558668832269 271.9645227650805 19406498 12 220196911404843048 543.9284827690544 18681363 13 107734735193229 0.2661256906643693 5354529 14 215252604360258 0.5317156273300471 10698279 -15 430288353371037 1.0628954742878376 1265476 -16 860359872756816 2.1252551154296673 2520171 +15 430288353371037 1.062895474287838 1265476 +16 860359872756816 2.125255115429667 2520171 17 1720502954267595 4.24997429213921 5029559 18 3440789202778374 8.499412434383453 10048331 -19 6881361870789153 16.998288296495677 20085867 +19 6881361870789153 16.99828829649568 20085867 20 13762507548799932 33.99603917594104 20040615 21 27524799588810711 67.99153924524718 19950076 -22 55049385036821490 135.98253600466396 19768929 +22 55049385036821490 135.982536004664 19768929 23 110098558668832269 271.9645227650805 19406498 24 220196911404843048 543.9284827690544 18681363 @@ -18127,56 +18127,56 @@ -- !sql_test_BigInt_DateTime_1 -- \N \N \N \N -1 -2945729195477665167 2.661256905320888E-7 5354529 -2 -6108324309199814934 5.31715626798815E-7 10698279 -3 6013240321631995969 1.0628954726923032E-6 21385779 -4 -6637096984102489136 2.125255111172461E-6 42760779 -5 4955759722777515207 4.249974281492256E-6 85510779 -6 -8751928658133958018 8.49941240882393E-6 171010779 -7 726355443845320085 1.699828823684459E-5 342010779 -8 1236525017748445996 3.399603903957373E-5 684010779 -9 2257555063750819139 6.799153893838094E-5 1368010779 -10 4300996963035686746 1.359825353226666E-4 2736010779 -11 8390644387053543281 2.7196452126455433E-4 5472010779 -12 -1871277576836173944 5.43928479494937E-4 10944010779 -13 -2945729195477665167 2.661256905320888E-7 5354529 -14 -6108324309199814934 5.31715626798815E-7 10698279 -15 6013240321631995969 1.0628954726923032E-6 21385779 -16 -6637096984102489136 2.125255111172461E-6 42760779 -17 4955759722777515207 4.249974281492256E-6 85510779 -18 -8751928658133958018 8.49941240882393E-6 171010779 -19 726355443845320085 1.699828823684459E-5 342010779 -20 1236525017748445996 3.399603903957373E-5 684010779 -21 2257555063750819139 6.799153893838094E-5 1368010779 -22 4300996963035686746 1.359825353226666E-4 2736010779 -23 8390644387053543281 2.7196452126455433E-4 5472010779 -24 -1871277576836173944 5.43928479494937E-4 10944010779 +1 -2945729195477665167 2.661256905320888e-07 5354529 +2 -6108324309199814934 5.31715626798815e-07 10698279 +3 6013240321631995969 1.062895472692303e-06 21385779 +4 -6637096984102489136 2.125255111172461e-06 42760779 +5 4955759722777515207 4.249974281492256e-06 85510779 +6 -8751928658133958018 8.49941240882393e-06 171010779 +7 726355443845320085 1.699828823684459e-05 342010779 +8 1236525017748445996 3.399603903957373e-05 684010779 +9 2257555063750819139 6.799153893838094e-05 1368010779 +10 4300996963035686746 0.0001359825353226666 2736010779 +11 8390644387053543281 0.0002719645212645543 5472010779 +12 -1871277576836173944 0.000543928479494937 10944010779 +13 -2945729195477665167 2.661256905320888e-07 5354529 +14 -6108324309199814934 5.31715626798815e-07 10698279 +15 6013240321631995969 1.062895472692303e-06 21385779 +16 -6637096984102489136 2.125255111172461e-06 42760779 +17 4955759722777515207 4.249974281492256e-06 85510779 +18 -8751928658133958018 8.49941240882393e-06 171010779 +19 726355443845320085 1.699828823684459e-05 342010779 +20 1236525017748445996 3.399603903957373e-05 684010779 +21 2257555063750819139 6.799153893838094e-05 1368010779 +22 4300996963035686746 0.0001359825353226666 2736010779 +23 8390644387053543281 0.0002719645212645543 5472010779 +24 -1871277576836173944 0.000543928479494937 10944010779 -- !sql_test_BigInt_DateTime_notn_1 -- -1 -2945729195477665167 2.661256905320888E-7 5354529 -2 -6108324309199814934 5.31715626798815E-7 10698279 -3 6013240321631995969 1.0628954726923032E-6 21385779 -4 -6637096984102489136 2.125255111172461E-6 42760779 -5 4955759722777515207 4.249974281492256E-6 85510779 -6 -8751928658133958018 8.49941240882393E-6 171010779 -7 726355443845320085 1.699828823684459E-5 342010779 -8 1236525017748445996 3.399603903957373E-5 684010779 -9 2257555063750819139 6.799153893838094E-5 1368010779 -10 4300996963035686746 1.359825353226666E-4 2736010779 -11 8390644387053543281 2.7196452126455433E-4 5472010779 -12 -1871277576836173944 5.43928479494937E-4 10944010779 -13 -2945729195477665167 2.661256905320888E-7 5354529 -14 -6108324309199814934 5.31715626798815E-7 10698279 -15 6013240321631995969 1.0628954726923032E-6 21385779 -16 -6637096984102489136 2.125255111172461E-6 42760779 -17 4955759722777515207 4.249974281492256E-6 85510779 -18 -8751928658133958018 8.49941240882393E-6 171010779 -19 726355443845320085 1.699828823684459E-5 342010779 -20 1236525017748445996 3.399603903957373E-5 684010779 -21 2257555063750819139 6.799153893838094E-5 1368010779 -22 4300996963035686746 1.359825353226666E-4 2736010779 -23 8390644387053543281 2.7196452126455433E-4 5472010779 -24 -1871277576836173944 5.43928479494937E-4 10944010779 +1 -2945729195477665167 2.661256905320888e-07 5354529 +2 -6108324309199814934 5.31715626798815e-07 10698279 +3 6013240321631995969 1.062895472692303e-06 21385779 +4 -6637096984102489136 2.125255111172461e-06 42760779 +5 4955759722777515207 4.249974281492256e-06 85510779 +6 -8751928658133958018 8.49941240882393e-06 171010779 +7 726355443845320085 1.699828823684459e-05 342010779 +8 1236525017748445996 3.399603903957373e-05 684010779 +9 2257555063750819139 6.799153893838094e-05 1368010779 +10 4300996963035686746 0.0001359825353226666 2736010779 +11 8390644387053543281 0.0002719645212645543 5472010779 +12 -1871277576836173944 0.000543928479494937 10944010779 +13 -2945729195477665167 2.661256905320888e-07 5354529 +14 -6108324309199814934 5.31715626798815e-07 10698279 +15 6013240321631995969 1.062895472692303e-06 21385779 +16 -6637096984102489136 2.125255111172461e-06 42760779 +17 4955759722777515207 4.249974281492256e-06 85510779 +18 -8751928658133958018 8.49941240882393e-06 171010779 +19 726355443845320085 1.699828823684459e-05 342010779 +20 1236525017748445996 3.399603903957373e-05 684010779 +21 2257555063750819139 6.799153893838094e-05 1368010779 +22 4300996963035686746 0.0001359825353226666 2736010779 +23 8390644387053543281 0.0002719645212645543 5472010779 +24 -1871277576836173944 0.000543928479494937 10944010779 -- !sql_test_BigInt_DateTime_2 -- \N \N @@ -18394,52 +18394,52 @@ \N \N \N \N 1 107734735193229 0.2661256906643693 5354529 2 215252604360258 0.5317156273300471 10698279 -3 430288353371037 1.0628954742878376 1265476 -4 860359872756816 2.1252551154296673 2520171 +3 430288353371037 1.062895474287838 1265476 +4 860359872756816 2.125255115429667 2520171 5 1720502954267595 4.24997429213921 5029559 6 3440789202778374 8.499412434383453 10048331 -7 6881361870789153 16.998288296495677 20085867 +7 6881361870789153 16.99828829649568 20085867 8 13762507548799932 33.99603917594104 20040615 9 27524799588810711 67.99153924524718 19950076 -10 55049385036821490 135.98253600466396 19768929 +10 55049385036821490 135.982536004664 19768929 11 110098558668832269 271.9645227650805 19406498 12 220196911404843048 543.9284827690544 18681363 13 107734735193229 0.2661256906643693 5354529 14 215252604360258 0.5317156273300471 10698279 -15 430288353371037 1.0628954742878376 1265476 -16 860359872756816 2.1252551154296673 2520171 +15 430288353371037 1.062895474287838 1265476 +16 860359872756816 2.125255115429667 2520171 17 1720502954267595 4.24997429213921 5029559 18 3440789202778374 8.499412434383453 10048331 -19 6881361870789153 16.998288296495677 20085867 +19 6881361870789153 16.99828829649568 20085867 20 13762507548799932 33.99603917594104 20040615 21 27524799588810711 67.99153924524718 19950076 -22 55049385036821490 135.98253600466396 19768929 +22 55049385036821490 135.982536004664 19768929 23 110098558668832269 271.9645227650805 19406498 24 220196911404843048 543.9284827690544 18681363 -- !sql_test_BigInt_DateV2_notn_1 -- 1 107734735193229 0.2661256906643693 5354529 2 215252604360258 0.5317156273300471 10698279 -3 430288353371037 1.0628954742878376 1265476 -4 860359872756816 2.1252551154296673 2520171 +3 430288353371037 1.062895474287838 1265476 +4 860359872756816 2.125255115429667 2520171 5 1720502954267595 4.24997429213921 5029559 6 3440789202778374 8.499412434383453 10048331 -7 6881361870789153 16.998288296495677 20085867 +7 6881361870789153 16.99828829649568 20085867 8 13762507548799932 33.99603917594104 20040615 9 27524799588810711 67.99153924524718 19950076 -10 55049385036821490 135.98253600466396 19768929 +10 55049385036821490 135.982536004664 19768929 11 110098558668832269 271.9645227650805 19406498 12 220196911404843048 543.9284827690544 18681363 13 107734735193229 0.2661256906643693 5354529 14 215252604360258 0.5317156273300471 10698279 -15 430288353371037 1.0628954742878376 1265476 -16 860359872756816 2.1252551154296673 2520171 +15 430288353371037 1.062895474287838 1265476 +16 860359872756816 2.125255115429667 2520171 17 1720502954267595 4.24997429213921 5029559 18 3440789202778374 8.499412434383453 10048331 -19 6881361870789153 16.998288296495677 20085867 +19 6881361870789153 16.99828829649568 20085867 20 13762507548799932 33.99603917594104 20040615 21 27524799588810711 67.99153924524718 19950076 -22 55049385036821490 135.98253600466396 19768929 +22 55049385036821490 135.982536004664 19768929 23 110098558668832269 271.9645227650805 19406498 24 220196911404843048 543.9284827690544 18681363 @@ -18657,56 +18657,56 @@ -- !sql_test_BigInt_DateTimeV2_1 -- \N \N \N \N -1 -2945729195477665167 2.661256905320888E-7 5354529 -2 -6108324309199814934 5.31715626798815E-7 10698279 -3 6013240321631995969 1.0628954726923032E-6 21385779 -4 -6637096984102489136 2.125255111172461E-6 42760779 -5 4955759722777515207 4.249974281492256E-6 85510779 -6 -8751928658133958018 8.49941240882393E-6 171010779 -7 726355443845320085 1.699828823684459E-5 342010779 -8 1236525017748445996 3.399603903957373E-5 684010779 -9 2257555063750819139 6.799153893838094E-5 1368010779 -10 4300996963035686746 1.359825353226666E-4 2736010779 -11 8390644387053543281 2.7196452126455433E-4 5472010779 -12 -1871277576836173944 5.43928479494937E-4 10944010779 -13 -2945729195477665167 2.661256905320888E-7 5354529 -14 -6108324309199814934 5.31715626798815E-7 10698279 -15 6013240321631995969 1.0628954726923032E-6 21385779 -16 -6637096984102489136 2.125255111172461E-6 42760779 -17 4955759722777515207 4.249974281492256E-6 85510779 -18 -8751928658133958018 8.49941240882393E-6 171010779 -19 726355443845320085 1.699828823684459E-5 342010779 -20 1236525017748445996 3.399603903957373E-5 684010779 -21 2257555063750819139 6.799153893838094E-5 1368010779 -22 4300996963035686746 1.359825353226666E-4 2736010779 -23 8390644387053543281 2.7196452126455433E-4 5472010779 -24 -1871277576836173944 5.43928479494937E-4 10944010779 +1 -2945729195477665167 2.661256905320888e-07 5354529 +2 -6108324309199814934 5.31715626798815e-07 10698279 +3 6013240321631995969 1.062895472692303e-06 21385779 +4 -6637096984102489136 2.125255111172461e-06 42760779 +5 4955759722777515207 4.249974281492256e-06 85510779 +6 -8751928658133958018 8.49941240882393e-06 171010779 +7 726355443845320085 1.699828823684459e-05 342010779 +8 1236525017748445996 3.399603903957373e-05 684010779 +9 2257555063750819139 6.799153893838094e-05 1368010779 +10 4300996963035686746 0.0001359825353226666 2736010779 +11 8390644387053543281 0.0002719645212645543 5472010779 +12 -1871277576836173944 0.000543928479494937 10944010779 +13 -2945729195477665167 2.661256905320888e-07 5354529 +14 -6108324309199814934 5.31715626798815e-07 10698279 +15 6013240321631995969 1.062895472692303e-06 21385779 +16 -6637096984102489136 2.125255111172461e-06 42760779 +17 4955759722777515207 4.249974281492256e-06 85510779 +18 -8751928658133958018 8.49941240882393e-06 171010779 +19 726355443845320085 1.699828823684459e-05 342010779 +20 1236525017748445996 3.399603903957373e-05 684010779 +21 2257555063750819139 6.799153893838094e-05 1368010779 +22 4300996963035686746 0.0001359825353226666 2736010779 +23 8390644387053543281 0.0002719645212645543 5472010779 +24 -1871277576836173944 0.000543928479494937 10944010779 -- !sql_test_BigInt_DateTimeV2_notn_1 -- -1 -2945729195477665167 2.661256905320888E-7 5354529 -2 -6108324309199814934 5.31715626798815E-7 10698279 -3 6013240321631995969 1.0628954726923032E-6 21385779 -4 -6637096984102489136 2.125255111172461E-6 42760779 -5 4955759722777515207 4.249974281492256E-6 85510779 -6 -8751928658133958018 8.49941240882393E-6 171010779 -7 726355443845320085 1.699828823684459E-5 342010779 -8 1236525017748445996 3.399603903957373E-5 684010779 -9 2257555063750819139 6.799153893838094E-5 1368010779 -10 4300996963035686746 1.359825353226666E-4 2736010779 -11 8390644387053543281 2.7196452126455433E-4 5472010779 -12 -1871277576836173944 5.43928479494937E-4 10944010779 -13 -2945729195477665167 2.661256905320888E-7 5354529 -14 -6108324309199814934 5.31715626798815E-7 10698279 -15 6013240321631995969 1.0628954726923032E-6 21385779 -16 -6637096984102489136 2.125255111172461E-6 42760779 -17 4955759722777515207 4.249974281492256E-6 85510779 -18 -8751928658133958018 8.49941240882393E-6 171010779 -19 726355443845320085 1.699828823684459E-5 342010779 -20 1236525017748445996 3.399603903957373E-5 684010779 -21 2257555063750819139 6.799153893838094E-5 1368010779 -22 4300996963035686746 1.359825353226666E-4 2736010779 -23 8390644387053543281 2.7196452126455433E-4 5472010779 -24 -1871277576836173944 5.43928479494937E-4 10944010779 +1 -2945729195477665167 2.661256905320888e-07 5354529 +2 -6108324309199814934 5.31715626798815e-07 10698279 +3 6013240321631995969 1.062895472692303e-06 21385779 +4 -6637096984102489136 2.125255111172461e-06 42760779 +5 4955759722777515207 4.249974281492256e-06 85510779 +6 -8751928658133958018 8.49941240882393e-06 171010779 +7 726355443845320085 1.699828823684459e-05 342010779 +8 1236525017748445996 3.399603903957373e-05 684010779 +9 2257555063750819139 6.799153893838094e-05 1368010779 +10 4300996963035686746 0.0001359825353226666 2736010779 +11 8390644387053543281 0.0002719645212645543 5472010779 +12 -1871277576836173944 0.000543928479494937 10944010779 +13 -2945729195477665167 2.661256905320888e-07 5354529 +14 -6108324309199814934 5.31715626798815e-07 10698279 +15 6013240321631995969 1.062895472692303e-06 21385779 +16 -6637096984102489136 2.125255111172461e-06 42760779 +17 4955759722777515207 4.249974281492256e-06 85510779 +18 -8751928658133958018 8.49941240882393e-06 171010779 +19 726355443845320085 1.699828823684459e-05 342010779 +20 1236525017748445996 3.399603903957373e-05 684010779 +21 2257555063750819139 6.799153893838094e-05 1368010779 +22 4300996963035686746 0.0001359825353226666 2736010779 +23 8390644387053543281 0.0002719645212645543 5472010779 +24 -1871277576836173944 0.000543928479494937 10944010779 -- !sql_test_BigInt_DateTimeV2_2 -- \N \N @@ -18929,11 +18929,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 684010779 6.84010779E8 0 -9 1368010779 1.368010779E9 0 -10 2736010779 2.736010779E9 0 -11 5472010779 5.472010779E9 0 -12 10944010779 1.0944010779E10 0 +8 684010779 684010779 0 +9 1368010779 1368010779 0 +10 2736010779 2736010779 0 +11 5472010779 5472010779 0 +12 10944010779 10944010779 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -18941,11 +18941,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 684010779 6.84010779E8 0 -21 1368010779 1.368010779E9 0 -22 2736010779 2.736010779E9 0 -23 5472010779 5.472010779E9 0 -24 10944010779 1.0944010779E10 0 +20 684010779 684010779 0 +21 1368010779 1368010779 0 +22 2736010779 2736010779 0 +23 5472010779 5472010779 0 +24 10944010779 10944010779 0 -- !sql_test_BigInt_Boolean_notn_1 -- 1 0 \N \N @@ -18955,11 +18955,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 684010779 6.84010779E8 0 -9 1368010779 1.368010779E9 0 -10 2736010779 2.736010779E9 0 -11 5472010779 5.472010779E9 0 -12 10944010779 1.0944010779E10 0 +8 684010779 684010779 0 +9 1368010779 1368010779 0 +10 2736010779 2736010779 0 +11 5472010779 5472010779 0 +12 10944010779 10944010779 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -18967,11 +18967,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 684010779 6.84010779E8 0 -21 1368010779 1.368010779E9 0 -22 2736010779 2.736010779E9 0 -23 5472010779 5.472010779E9 0 -24 10944010779 1.0944010779E10 0 +20 684010779 684010779 0 +21 1368010779 1368010779 0 +22 2736010779 2736010779 0 +23 5472010779 5472010779 0 +24 10944010779 10944010779 0 -- !sql_test_BigInt_Boolean_2 -- \N \N @@ -19187,56 +19187,56 @@ -- !sql_test_LargeInt_TinyInt_1 -- \N \N \N \N -1 107090645 1.07090645E8 0 -2 427931290 1.069828225E8 1 -3 1283146935 1.4257188166666666E8 2 -4 3420862580 2.1380391125E8 1 -5 8551078225 3.42043129E8 0 -6 20521293870 5.700359408333334E8 5 -7 47881509515 9.771736635714285E8 4 -8 109441725160 1.710026955625E9 5 -9 246241940805 3.0400239605555553E9 5 -10 547202156450 5.4720215645E9 5 -11 1203842372095 9.949110513181818E9 2 -12 2626562587740 1.8240017970416668E10 5 -13 107090645 1.07090645E8 0 -14 427931290 1.069828225E8 1 -15 1283146935 1.4257188166666666E8 2 -16 3420862580 2.1380391125E8 1 -17 8551078225 3.42043129E8 0 -18 20521293870 5.700359408333334E8 5 -19 47881509515 9.771736635714285E8 4 -20 109441725160 1.710026955625E9 5 -21 246241940805 3.0400239605555553E9 5 -22 547202156450 5.4720215645E9 5 -23 1203842372095 9.949110513181818E9 2 -24 2626562587740 1.8240017970416668E10 5 +1 107090645 107090645 0 +2 427931290 106982822.5 1 +3 1283146935 142571881.6666667 2 +4 3420862580 213803911.25 1 +5 8551078225 342043129 0 +6 20521293870 570035940.8333334 5 +7 47881509515 977173663.5714285 4 +8 109441725160 1710026955.625 5 +9 246241940805 3040023960.555555 5 +10 547202156450 5472021564.5 5 +11 1203842372095 9949110513.181818 2 +12 2626562587740 18240017970.41667 5 +13 107090645 107090645 0 +14 427931290 106982822.5 1 +15 1283146935 142571881.6666667 2 +16 3420862580 213803911.25 1 +17 8551078225 342043129 0 +18 20521293870 570035940.8333334 5 +19 47881509515 977173663.5714285 4 +20 109441725160 1710026955.625 5 +21 246241940805 3040023960.555555 5 +22 547202156450 5472021564.5 5 +23 1203842372095 9949110513.181818 2 +24 2626562587740 18240017970.41667 5 -- !sql_test_LargeInt_TinyInt_notn_1 -- -1 107090645 1.07090645E8 0 -2 427931290 1.069828225E8 1 -3 1283146935 1.4257188166666666E8 2 -4 3420862580 2.1380391125E8 1 -5 8551078225 3.42043129E8 0 -6 20521293870 5.700359408333334E8 5 -7 47881509515 9.771736635714285E8 4 -8 109441725160 1.710026955625E9 5 -9 246241940805 3.0400239605555553E9 5 -10 547202156450 5.4720215645E9 5 -11 1203842372095 9.949110513181818E9 2 -12 2626562587740 1.8240017970416668E10 5 -13 107090645 1.07090645E8 0 -14 427931290 1.069828225E8 1 -15 1283146935 1.4257188166666666E8 2 -16 3420862580 2.1380391125E8 1 -17 8551078225 3.42043129E8 0 -18 20521293870 5.700359408333334E8 5 -19 47881509515 9.771736635714285E8 4 -20 109441725160 1.710026955625E9 5 -21 246241940805 3.0400239605555553E9 5 -22 547202156450 5.4720215645E9 5 -23 1203842372095 9.949110513181818E9 2 -24 2626562587740 1.8240017970416668E10 5 +1 107090645 107090645 0 +2 427931290 106982822.5 1 +3 1283146935 142571881.6666667 2 +4 3420862580 213803911.25 1 +5 8551078225 342043129 0 +6 20521293870 570035940.8333334 5 +7 47881509515 977173663.5714285 4 +8 109441725160 1710026955.625 5 +9 246241940805 3040023960.555555 5 +10 547202156450 5472021564.5 5 +11 1203842372095 9949110513.181818 2 +12 2626562587740 18240017970.41667 5 +13 107090645 107090645 0 +14 427931290 106982822.5 1 +15 1283146935 142571881.6666667 2 +16 3420862580 213803911.25 1 +17 8551078225 342043129 0 +18 20521293870 570035940.8333334 5 +19 47881509515 977173663.5714285 4 +20 109441725160 1710026955.625 5 +21 246241940805 3040023960.555555 5 +22 547202156450 5472021564.5 5 +23 1203842372095 9949110513.181818 2 +24 2626562587740 18240017970.41667 5 -- !sql_test_LargeInt_TinyInt_2 -- \N \N @@ -19452,56 +19452,56 @@ -- !sql_test_LargeInt_SmallInt_1 -- \N \N \N \N -1 1070906450 1.07090645E7 5 -2 4279312900 1.069828225E7 5 -3 17108625800 1.0692891125E7 5 -4 68417251600 1.06901955625E7 45 -5 273634503200 1.068884778125E7 125 -6 1094469006400 1.0688173890625E7 285 -7 4377738012800 1.06878369453125E7 605 -8 17510676025600 1.068766847265625E7 605 -9 70042152051200 1.0687584236328125E7 605 -10 280167504102400 1.0687542118164062E7 605 -11 1120667808204800 1.0687521059082031E7 605 -12 4482666816409600 1.0687510529541016E7 10845 -13 1070906450 1.07090645E7 5 -14 4279312900 1.069828225E7 5 -15 17108625800 1.0692891125E7 5 -16 68417251600 1.06901955625E7 45 -17 273634503200 1.068884778125E7 125 -18 1094469006400 1.0688173890625E7 285 -19 4377738012800 1.06878369453125E7 605 -20 17510676025600 1.068766847265625E7 605 -21 70042152051200 1.0687584236328125E7 605 -22 280167504102400 1.0687542118164062E7 605 -23 1120667808204800 1.0687521059082031E7 605 -24 4482666816409600 1.0687510529541016E7 10845 +1 1070906450 10709064.5 5 +2 4279312900 10698282.25 5 +3 17108625800 10692891.125 5 +4 68417251600 10690195.5625 45 +5 273634503200 10688847.78125 125 +6 1094469006400 10688173.890625 285 +7 4377738012800 10687836.9453125 605 +8 17510676025600 10687668.47265625 605 +9 70042152051200 10687584.23632812 605 +10 280167504102400 10687542.11816406 605 +11 1120667808204800 10687521.05908203 605 +12 4482666816409600 10687510.52954102 10845 +13 1070906450 10709064.5 5 +14 4279312900 10698282.25 5 +15 17108625800 10692891.125 5 +16 68417251600 10690195.5625 45 +17 273634503200 10688847.78125 125 +18 1094469006400 10688173.890625 285 +19 4377738012800 10687836.9453125 605 +20 17510676025600 10687668.47265625 605 +21 70042152051200 10687584.23632812 605 +22 280167504102400 10687542.11816406 605 +23 1120667808204800 10687521.05908203 605 +24 4482666816409600 10687510.52954102 10845 -- !sql_test_LargeInt_SmallInt_notn_1 -- -1 1070906450 1.07090645E7 5 -2 4279312900 1.069828225E7 5 -3 17108625800 1.0692891125E7 5 -4 68417251600 1.06901955625E7 45 -5 273634503200 1.068884778125E7 125 -6 1094469006400 1.0688173890625E7 285 -7 4377738012800 1.06878369453125E7 605 -8 17510676025600 1.068766847265625E7 605 -9 70042152051200 1.0687584236328125E7 605 -10 280167504102400 1.0687542118164062E7 605 -11 1120667808204800 1.0687521059082031E7 605 -12 4482666816409600 1.0687510529541016E7 10845 -13 1070906450 1.07090645E7 5 -14 4279312900 1.069828225E7 5 -15 17108625800 1.0692891125E7 5 -16 68417251600 1.06901955625E7 45 -17 273634503200 1.068884778125E7 125 -18 1094469006400 1.0688173890625E7 285 -19 4377738012800 1.06878369453125E7 605 -20 17510676025600 1.068766847265625E7 605 -21 70042152051200 1.0687584236328125E7 605 -22 280167504102400 1.0687542118164062E7 605 -23 1120667808204800 1.0687521059082031E7 605 -24 4482666816409600 1.0687510529541016E7 10845 +1 1070906450 10709064.5 5 +2 4279312900 10698282.25 5 +3 17108625800 10692891.125 5 +4 68417251600 10690195.5625 45 +5 273634503200 10688847.78125 125 +6 1094469006400 10688173.890625 285 +7 4377738012800 10687836.9453125 605 +8 17510676025600 10687668.47265625 605 +9 70042152051200 10687584.23632812 605 +10 280167504102400 10687542.11816406 605 +11 1120667808204800 10687521.05908203 605 +12 4482666816409600 10687510.52954102 10845 +13 1070906450 10709064.5 5 +14 4279312900 10698282.25 5 +15 17108625800 10692891.125 5 +16 68417251600 10690195.5625 45 +17 273634503200 10688847.78125 125 +18 1094469006400 10688173.890625 285 +19 4377738012800 10687836.9453125 605 +20 17510676025600 10687668.47265625 605 +21 70042152051200 10687584.23632812 605 +22 280167504102400 10687542.11816406 605 +23 1120667808204800 10687521.05908203 605 +24 4482666816409600 10687510.52954102 10845 -- !sql_test_LargeInt_SmallInt_2 -- \N \N @@ -19719,7 +19719,7 @@ \N \N \N \N 1 2548221897775 4500.552426980458 13145 2 10172996591525 4500.276474918498 13145 -3 40652233479025 4500.1383029091485 13145 +3 40652233479025 4500.138302909148 13145 4 162529457254025 4500.069167828672 13145 5 649958904804025 4500.034588009315 13145 6 2599517799904025 4500.017295028584 13145 @@ -19731,7 +19731,7 @@ 12 10646343538582504025 4500.000270250573 13145 13 2548221897775 4500.552426980458 13145 14 10172996591525 4500.276474918498 13145 -15 40652233479025 4500.1383029091485 13145 +15 40652233479025 4500.138302909148 13145 16 162529457254025 4500.069167828672 13145 17 649958904804025 4500.034588009315 13145 18 2599517799904025 4500.017295028584 13145 @@ -19745,7 +19745,7 @@ -- !sql_test_LargeInt_Integer_notn_1 -- 1 2548221897775 4500.552426980458 13145 2 10172996591525 4500.276474918498 13145 -3 40652233479025 4500.1383029091485 13145 +3 40652233479025 4500.138302909148 13145 4 162529457254025 4500.069167828672 13145 5 649958904804025 4500.034588009315 13145 6 2599517799904025 4500.017295028584 13145 @@ -19757,7 +19757,7 @@ 12 10646343538582504025 4500.000270250573 13145 13 2548221897775 4500.552426980458 13145 14 10172996591525 4500.276474918498 13145 -15 40652233479025 4500.1383029091485 13145 +15 40652233479025 4500.138302909148 13145 16 162529457254025 4500.069167828672 13145 17 649958904804025 4500.034588009315 13145 18 2599517799904025 4500.017295028584 13145 @@ -19983,54 +19983,54 @@ -- !sql_test_LargeInt_BigInt_1 -- \N \N \N \N 1 573419964281205 20.00001213925632 65 -2 2289064166624955 20.000006075743585 65 +2 2289064166624955 20.00000607574358 65 3 9147032258812455 20.00000303940296 65 -4 36569687193187455 20.000001520084563 65 -5 146241872061937455 20.000000760138086 65 +4 36569687193187455 20.00000152008456 65 +5 146241872061937455 20.00000076013809 65 6 584893741799437455 20.000000380093 65 7 2339427481274437455 20.00000019005249 65 -8 9357414960224437455 20.000000095027744 65 -9 37429069918124437455 20.000000047514245 65 -10 149715099833924437455 20.000000023757217 65 -11 598858039665524437455 20.000000011878633 65 +8 9357414960224437455 20.00000009502774 65 +9 37429069918124437455 20.00000004751424 65 +10 149715099833924437455 20.00000002375722 65 +11 598858039665524437455 20.00000001187863 65 12 2395427439328724437455 20.00000000593932 65 13 573419964281205 20.00001213925632 65 -14 2289064166624955 20.000006075743585 65 +14 2289064166624955 20.00000607574358 65 15 9147032258812455 20.00000303940296 65 -16 36569687193187455 20.000001520084563 65 -17 146241872061937455 20.000000760138086 65 +16 36569687193187455 20.00000152008456 65 +17 146241872061937455 20.00000076013809 65 18 584893741799437455 20.000000380093 65 19 2339427481274437455 20.00000019005249 65 -20 9357414960224437455 20.000000095027744 65 -21 37429069918124437455 20.000000047514245 65 -22 149715099833924437455 20.000000023757217 65 -23 598858039665524437455 20.000000011878633 65 +20 9357414960224437455 20.00000009502774 65 +21 37429069918124437455 20.00000004751424 65 +22 149715099833924437455 20.00000002375722 65 +23 598858039665524437455 20.00000001187863 65 24 2395427439328724437455 20.00000000593932 65 -- !sql_test_LargeInt_BigInt_notn_1 -- 1 573419964281205 20.00001213925632 65 -2 2289064166624955 20.000006075743585 65 +2 2289064166624955 20.00000607574358 65 3 9147032258812455 20.00000303940296 65 -4 36569687193187455 20.000001520084563 65 -5 146241872061937455 20.000000760138086 65 +4 36569687193187455 20.00000152008456 65 +5 146241872061937455 20.00000076013809 65 6 584893741799437455 20.000000380093 65 7 2339427481274437455 20.00000019005249 65 -8 9357414960224437455 20.000000095027744 65 -9 37429069918124437455 20.000000047514245 65 -10 149715099833924437455 20.000000023757217 65 -11 598858039665524437455 20.000000011878633 65 +8 9357414960224437455 20.00000009502774 65 +9 37429069918124437455 20.00000004751424 65 +10 149715099833924437455 20.00000002375722 65 +11 598858039665524437455 20.00000001187863 65 12 2395427439328724437455 20.00000000593932 65 13 573419964281205 20.00001213925632 65 -14 2289064166624955 20.000006075743585 65 +14 2289064166624955 20.00000607574358 65 15 9147032258812455 20.00000303940296 65 -16 36569687193187455 20.000001520084563 65 -17 146241872061937455 20.000000760138086 65 +16 36569687193187455 20.00000152008456 65 +17 146241872061937455 20.00000076013809 65 18 584893741799437455 20.000000380093 65 19 2339427481274437455 20.00000019005249 65 -20 9357414960224437455 20.000000095027744 65 -21 37429069918124437455 20.000000047514245 65 -22 149715099833924437455 20.000000023757217 65 -23 598858039665524437455 20.000000011878633 65 +20 9357414960224437455 20.00000009502774 65 +21 37429069918124437455 20.00000004751424 65 +22 149715099833924437455 20.00000002375722 65 +23 598858039665524437455 20.00000001187863 65 24 2395427439328724437455 20.00000000593932 65 -- !sql_test_LargeInt_BigInt_2 -- @@ -20247,56 +20247,56 @@ -- !sql_test_LargeInt_LargeInt_1 -- \N \N \N \N -1 11468406246516025 1.0 0 -2 45781297240266025 1.0 0 -3 182940672977766025 1.0 0 -4 731393799452766025 1.0 0 -5 2924837552402766025 1.0 0 -6 11697875058302766025 1.0 0 -7 46788550070102766025 1.0 0 -8 187148300093702766025 1.0 0 -9 748581400140902766025 1.0 0 -10 2994302000235302766025 1.0 0 -11 11977160800424102766025 1.0 0 -12 47908548800801702766025 1.0 0 -13 11468406246516025 1.0 0 -14 45781297240266025 1.0 0 -15 182940672977766025 1.0 0 -16 731393799452766025 1.0 0 -17 2924837552402766025 1.0 0 -18 11697875058302766025 1.0 0 -19 46788550070102766025 1.0 0 -20 187148300093702766025 1.0 0 -21 748581400140902766025 1.0 0 -22 2994302000235302766025 1.0 0 -23 11977160800424102766025 1.0 0 -24 47908548800801702766025 1.0 0 +1 11468406246516025 1 0 +2 45781297240266025 1 0 +3 182940672977766025 1 0 +4 731393799452766025 1 0 +5 2924837552402766025 1 0 +6 11697875058302766025 1 0 +7 46788550070102766025 1 0 +8 187148300093702766025 1 0 +9 748581400140902766025 1 0 +10 2994302000235302766025 1 0 +11 11977160800424102766025 1 0 +12 47908548800801702766025 1 0 +13 11468406246516025 1 0 +14 45781297240266025 1 0 +15 182940672977766025 1 0 +16 731393799452766025 1 0 +17 2924837552402766025 1 0 +18 11697875058302766025 1 0 +19 46788550070102766025 1 0 +20 187148300093702766025 1 0 +21 748581400140902766025 1 0 +22 2994302000235302766025 1 0 +23 11977160800424102766025 1 0 +24 47908548800801702766025 1 0 -- !sql_test_LargeInt_LargeInt_notn_1 -- -1 11468406246516025 1.0 0 -2 45781297240266025 1.0 0 -3 182940672977766025 1.0 0 -4 731393799452766025 1.0 0 -5 2924837552402766025 1.0 0 -6 11697875058302766025 1.0 0 -7 46788550070102766025 1.0 0 -8 187148300093702766025 1.0 0 -9 748581400140902766025 1.0 0 -10 2994302000235302766025 1.0 0 -11 11977160800424102766025 1.0 0 -12 47908548800801702766025 1.0 0 -13 11468406246516025 1.0 0 -14 45781297240266025 1.0 0 -15 182940672977766025 1.0 0 -16 731393799452766025 1.0 0 -17 2924837552402766025 1.0 0 -18 11697875058302766025 1.0 0 -19 46788550070102766025 1.0 0 -20 187148300093702766025 1.0 0 -21 748581400140902766025 1.0 0 -22 2994302000235302766025 1.0 0 -23 11977160800424102766025 1.0 0 -24 47908548800801702766025 1.0 0 +1 11468406246516025 1 0 +2 45781297240266025 1 0 +3 182940672977766025 1 0 +4 731393799452766025 1 0 +5 2924837552402766025 1 0 +6 11697875058302766025 1 0 +7 46788550070102766025 1 0 +8 187148300093702766025 1 0 +9 748581400140902766025 1 0 +10 2994302000235302766025 1 0 +11 11977160800424102766025 1 0 +12 47908548800801702766025 1 0 +13 11468406246516025 1 0 +14 45781297240266025 1 0 +15 182940672977766025 1 0 +16 731393799452766025 1 0 +17 2924837552402766025 1 0 +18 11697875058302766025 1 0 +19 46788550070102766025 1 0 +20 187148300093702766025 1 0 +21 748581400140902766025 1 0 +22 2994302000235302766025 1 0 +23 11977160800424102766025 1 0 +24 47908548800801702766025 1 0 -- !sql_test_LargeInt_LargeInt_2 -- \N \N @@ -20459,56 +20459,56 @@ -- !sql_test_LargeInt_Float_0 -- \N \N \N -1 1.070906451E8 1.070906449E8 -2 2.139656452E8 2.139656448E8 -3 4.277156453E8 4.277156447E8 -4 8.552156454E8 8.552156446E8 -5 1.7102156455E9 1.7102156445E9 -6 3.4202156456E9 3.4202156444E9 -7 6.8402156457E9 6.8402156443E9 -8 1.36802156458E10 1.36802156442E10 -9 2.73602156459E10 2.73602156441E10 -10 5.4720215646E10 5.4720215644E10 -11 1.094402156461E11 1.094402156439E11 -12 2.188802156462E11 2.188802156438E11 -13 1.070906451E8 1.070906449E8 -14 2.139656452E8 2.139656448E8 -15 4.277156453E8 4.277156447E8 -16 8.552156454E8 8.552156446E8 -17 1.7102156455E9 1.7102156445E9 -18 3.4202156456E9 3.4202156444E9 -19 6.8402156457E9 6.8402156443E9 -20 1.36802156458E10 1.36802156442E10 -21 2.73602156459E10 2.73602156441E10 -22 5.4720215646E10 5.4720215644E10 -23 1.094402156461E11 1.094402156439E11 -24 2.188802156462E11 2.188802156438E11 +1 107090645.1 107090644.9 +2 213965645.2 213965644.8 +3 427715645.3 427715644.7 +4 855215645.4 855215644.6 +5 1710215645.5 1710215644.5 +6 3420215645.6 3420215644.4 +7 6840215645.7 6840215644.3 +8 13680215645.8 13680215644.2 +9 27360215645.9 27360215644.1 +10 54720215646 54720215644 +11 109440215646.1 109440215643.9 +12 218880215646.2 218880215643.8 +13 107090645.1 107090644.9 +14 213965645.2 213965644.8 +15 427715645.3 427715644.7 +16 855215645.4 855215644.6 +17 1710215645.5 1710215644.5 +18 3420215645.6 3420215644.4 +19 6840215645.7 6840215644.3 +20 13680215645.8 13680215644.2 +21 27360215645.9 27360215644.1 +22 54720215646 54720215644 +23 109440215646.1 109440215643.9 +24 218880215646.2 218880215643.8 -- !sql_test_LargeInt_Float_notn_0 -- -1 1.070906451E8 1.070906449E8 -2 2.139656452E8 2.139656448E8 -3 4.277156453E8 4.277156447E8 -4 8.552156454E8 8.552156446E8 -5 1.7102156455E9 1.7102156445E9 -6 3.4202156456E9 3.4202156444E9 -7 6.8402156457E9 6.8402156443E9 -8 1.36802156458E10 1.36802156442E10 -9 2.73602156459E10 2.73602156441E10 -10 5.4720215646E10 5.4720215644E10 -11 1.094402156461E11 1.094402156439E11 -12 2.188802156462E11 2.188802156438E11 -13 1.070906451E8 1.070906449E8 -14 2.139656452E8 2.139656448E8 -15 4.277156453E8 4.277156447E8 -16 8.552156454E8 8.552156446E8 -17 1.7102156455E9 1.7102156445E9 -18 3.4202156456E9 3.4202156444E9 -19 6.8402156457E9 6.8402156443E9 -20 1.36802156458E10 1.36802156442E10 -21 2.73602156459E10 2.73602156441E10 -22 5.4720215646E10 5.4720215644E10 -23 1.094402156461E11 1.094402156439E11 -24 2.188802156462E11 2.188802156438E11 +1 107090645.1 107090644.9 +2 213965645.2 213965644.8 +3 427715645.3 427715644.7 +4 855215645.4 855215644.6 +5 1710215645.5 1710215644.5 +6 3420215645.6 3420215644.4 +7 6840215645.7 6840215644.3 +8 13680215645.8 13680215644.2 +9 27360215645.9 27360215644.1 +10 54720215646 54720215644 +11 109440215646.1 109440215643.9 +12 218880215646.2 218880215643.8 +13 107090645.1 107090644.9 +14 213965645.2 213965644.8 +15 427715645.3 427715644.7 +16 855215645.4 855215644.6 +17 1710215645.5 1710215644.5 +18 3420215645.6 3420215644.4 +19 6840215645.7 6840215644.3 +20 13680215645.8 13680215644.2 +21 27360215645.9 27360215644.1 +22 54720215646 54720215644 +23 109440215646.1 109440215643.9 +24 218880215646.2 218880215643.8 -- !sql_test_LargeInt_Float_3 -- \N \N \N \N @@ -20565,109 +20565,109 @@ -- !sql_test_LargeInt_Double_0 -- \N \N \N -1 1.070906455244E8 1.070906444756E8 -2 2.139656457416E8 2.139656442584E8 -3 4.277156460368E8 4.277156439632E8 -4 8.552156464491E8 8.552156435509E8 -5 1.710215647031E9 1.710215642969E9 -6 3.4202156478548E9 3.4202156421452E9 -7 6.8402156490218E9 6.8402156409782E9 -8 1.36802156506745E10 1.36802156393255E10 -9 2.73602156530141E10 2.73602156369859E10 -10 5.47202156563248E10 5.47202156336752E10 -11 1.094402156610086E11 1.094402156289914E11 -12 2.18880215667634E11 2.18880215622366E11 -13 1.070906455244E8 1.070906444756E8 -14 2.139656457416E8 2.139656442584E8 -15 4.277156460368E8 4.277156439632E8 -16 8.552156464491E8 8.552156435509E8 -17 1.710215647031E9 1.710215642969E9 -18 3.4202156478548E9 3.4202156421452E9 -19 6.8402156490218E9 6.8402156409782E9 -20 1.36802156506745E10 1.36802156393255E10 -21 2.73602156530141E10 2.73602156369859E10 -22 5.47202156563248E10 5.47202156336752E10 -23 1.094402156610086E11 1.094402156289914E11 -24 2.18880215667634E11 2.18880215622366E11 +1 107090645.5244 107090644.4756 +2 213965645.7416 213965644.2584 +3 427715646.0368 427715643.9632 +4 855215646.4491 855215643.5509 +5 1710215647.031 1710215642.969 +6 3420215647.8548 3420215642.1452 +7 6840215649.0218 6840215640.9782 +8 13680215650.6745 13680215639.3255 +9 27360215653.0141 27360215636.9859 +10 54720215656.3248 54720215633.6752 +11 109440215661.0086 109440215628.9914 +12 218880215667.634 218880215622.366 +13 107090645.5244 107090644.4756 +14 213965645.7416 213965644.2584 +15 427715646.0368 427715643.9632 +16 855215646.4491 855215643.5509 +17 1710215647.031 1710215642.969 +18 3420215647.8548 3420215642.1452 +19 6840215649.0218 6840215640.9782 +20 13680215650.6745 13680215639.3255 +21 27360215653.0141 27360215636.9859 +22 54720215656.3248 54720215633.6752 +23 109440215661.0086 109440215628.9914 +24 218880215667.634 218880215622.366 -- !sql_test_LargeInt_Double_notn_0 -- -1 1.070906455244E8 1.070906444756E8 -2 2.139656457416E8 2.139656442584E8 -3 4.277156460368E8 4.277156439632E8 -4 8.552156464491E8 8.552156435509E8 -5 1.710215647031E9 1.710215642969E9 -6 3.4202156478548E9 3.4202156421452E9 -7 6.8402156490218E9 6.8402156409782E9 -8 1.36802156506745E10 1.36802156393255E10 -9 2.73602156530141E10 2.73602156369859E10 -10 5.47202156563248E10 5.47202156336752E10 -11 1.094402156610086E11 1.094402156289914E11 -12 2.18880215667634E11 2.18880215622366E11 -13 1.070906455244E8 1.070906444756E8 -14 2.139656457416E8 2.139656442584E8 -15 4.277156460368E8 4.277156439632E8 -16 8.552156464491E8 8.552156435509E8 -17 1.710215647031E9 1.710215642969E9 -18 3.4202156478548E9 3.4202156421452E9 -19 6.8402156490218E9 6.8402156409782E9 -20 1.36802156506745E10 1.36802156393255E10 -21 2.73602156530141E10 2.73602156369859E10 -22 5.47202156563248E10 5.47202156336752E10 -23 1.094402156610086E11 1.094402156289914E11 -24 2.18880215667634E11 2.18880215622366E11 +1 107090645.5244 107090644.4756 +2 213965645.7416 213965644.2584 +3 427715646.0368 427715643.9632 +4 855215646.4491 855215643.5509 +5 1710215647.031 1710215642.969 +6 3420215647.8548 3420215642.1452 +7 6840215649.0218 6840215640.9782 +8 13680215650.6745 13680215639.3255 +9 27360215653.0141 27360215636.9859 +10 54720215656.3248 54720215633.6752 +11 109440215661.0086 109440215628.9914 +12 218880215667.634 218880215622.366 +13 107090645.5244 107090644.4756 +14 213965645.7416 213965644.2584 +15 427715646.0368 427715643.9632 +16 855215646.4491 855215643.5509 +17 1710215647.031 1710215642.969 +18 3420215647.8548 3420215642.1452 +19 6840215649.0218 6840215640.9782 +20 13680215650.6745 13680215639.3255 +21 27360215653.0141 27360215636.9859 +22 54720215656.3248 54720215633.6752 +23 109440215661.0086 109440215628.9914 +24 218880215667.634 218880215622.366 -- !sql_test_LargeInt_Double_1 -- \N \N \N \N -1 5.6158334238E7 2.042155701754386E8 0.09200000464332447 -2 1.5867692233200002E8 2.88518938781014E8 0.5791999893397382 -3 4.43455580736E8 4.1253437982253087E8 0.8528000231567412 -4 1.2392929911695E9 5.90170205644883E8 0.9344999677107313 -5 3.4734479749950004E9 8.420559551944854E8 0.3949998833282353 -6 9.764031623346E9 1.1980578832142358E9 0.611599994892372 -7 2.7509979281060997E10 1.7007846349893084E9 3.9788003069539624 -8 7.76283836775525E10 2.41082309366464E9 3.771499760181003 -9 2.1926750420059448E11 3.414009763416978E9 3.3417030273981965 -10 6.19695498136496E11 4.83189245240534E9 4.590401181043532 -11 1.751984636174547E12 6.836338945629224E9 10.07299129534033 -12 4.95413480090893E12 9.670416879252453E9 5.713996701802657 -13 5.6158334238E7 2.042155701754386E8 0.09200000464332447 -14 1.5867692233200002E8 2.88518938781014E8 0.5791999893397382 -15 4.43455580736E8 4.1253437982253087E8 0.8528000231567412 -16 1.2392929911695E9 5.90170205644883E8 0.9344999677107313 -17 3.4734479749950004E9 8.420559551944854E8 0.3949998833282353 -18 9.764031623346E9 1.1980578832142358E9 0.611599994892372 -19 2.7509979281060997E10 1.7007846349893084E9 3.9788003069539624 -20 7.76283836775525E10 2.41082309366464E9 3.771499760181003 -21 2.1926750420059448E11 3.414009763416978E9 3.3417030273981965 -22 6.19695498136496E11 4.83189245240534E9 4.590401181043532 -23 1.751984636174547E12 6.836338945629224E9 10.07299129534033 -24 4.95413480090893E12 9.670416879252453E9 5.713996701802657 +1 56158334.238 204215570.1754386 0.09200000464332447 +2 158676922.332 288518938.781014 0.5791999893397382 +3 443455580.736 412534379.8225309 0.8528000231567412 +4 1239292991.1695 590170205.644883 0.9344999677107313 +5 3473447974.995 842055955.1944854 0.3949998833282353 +6 9764031623.346001 1198057883.214236 0.611599994892372 +7 27509979281.061 1700784634.989308 3.978800306953962 +8 77628383677.55251 2410823093.66464 3.771499760181003 +9 219267504200.5945 3414009763.416978 3.341703027398196 +10 619695498136.496 4831892452.40534 4.590401181043532 +11 1751984636174.547 6836338945.629224 10.07299129534033 +12 4954134800908.93 9670416879.252453 5.713996701802657 +13 56158334.238 204215570.1754386 0.09200000464332447 +14 158676922.332 288518938.781014 0.5791999893397382 +15 443455580.736 412534379.8225309 0.8528000231567412 +16 1239292991.1695 590170205.644883 0.9344999677107313 +17 3473447974.995 842055955.1944854 0.3949998833282353 +18 9764031623.346001 1198057883.214236 0.611599994892372 +19 27509979281.061 1700784634.989308 3.978800306953962 +20 77628383677.55251 2410823093.66464 3.771499760181003 +21 219267504200.5945 3414009763.416978 3.341703027398196 +22 619695498136.496 4831892452.40534 4.590401181043532 +23 1751984636174.547 6836338945.629224 10.07299129534033 +24 4954134800908.93 9670416879.252453 5.713996701802657 -- !sql_test_LargeInt_Double_notn_1 -- -1 5.6158334238E7 2.042155701754386E8 0.09200000464332447 -2 1.5867692233200002E8 2.88518938781014E8 0.5791999893397382 -3 4.43455580736E8 4.1253437982253087E8 0.8528000231567412 -4 1.2392929911695E9 5.90170205644883E8 0.9344999677107313 -5 3.4734479749950004E9 8.420559551944854E8 0.3949998833282353 -6 9.764031623346E9 1.1980578832142358E9 0.611599994892372 -7 2.7509979281060997E10 1.7007846349893084E9 3.9788003069539624 -8 7.76283836775525E10 2.41082309366464E9 3.771499760181003 -9 2.1926750420059448E11 3.414009763416978E9 3.3417030273981965 -10 6.19695498136496E11 4.83189245240534E9 4.590401181043532 -11 1.751984636174547E12 6.836338945629224E9 10.07299129534033 -12 4.95413480090893E12 9.670416879252453E9 5.713996701802657 -13 5.6158334238E7 2.042155701754386E8 0.09200000464332447 -14 1.5867692233200002E8 2.88518938781014E8 0.5791999893397382 -15 4.43455580736E8 4.1253437982253087E8 0.8528000231567412 -16 1.2392929911695E9 5.90170205644883E8 0.9344999677107313 -17 3.4734479749950004E9 8.420559551944854E8 0.3949998833282353 -18 9.764031623346E9 1.1980578832142358E9 0.611599994892372 -19 2.7509979281060997E10 1.7007846349893084E9 3.9788003069539624 -20 7.76283836775525E10 2.41082309366464E9 3.771499760181003 -21 2.1926750420059448E11 3.414009763416978E9 3.3417030273981965 -22 6.19695498136496E11 4.83189245240534E9 4.590401181043532 -23 1.751984636174547E12 6.836338945629224E9 10.07299129534033 -24 4.95413480090893E12 9.670416879252453E9 5.713996701802657 +1 56158334.238 204215570.1754386 0.09200000464332447 +2 158676922.332 288518938.781014 0.5791999893397382 +3 443455580.736 412534379.8225309 0.8528000231567412 +4 1239292991.1695 590170205.644883 0.9344999677107313 +5 3473447974.995 842055955.1944854 0.3949998833282353 +6 9764031623.346001 1198057883.214236 0.611599994892372 +7 27509979281.061 1700784634.989308 3.978800306953962 +8 77628383677.55251 2410823093.66464 3.771499760181003 +9 219267504200.5945 3414009763.416978 3.341703027398196 +10 619695498136.496 4831892452.40534 4.590401181043532 +11 1751984636174.547 6836338945.629224 10.07299129534033 +12 4954134800908.93 9670416879.252453 5.713996701802657 +13 56158334.238 204215570.1754386 0.09200000464332447 +14 158676922.332 288518938.781014 0.5791999893397382 +15 443455580.736 412534379.8225309 0.8528000231567412 +16 1239292991.1695 590170205.644883 0.9344999677107313 +17 3473447974.995 842055955.1944854 0.3949998833282353 +18 9764031623.346001 1198057883.214236 0.611599994892372 +19 27509979281.061 1700784634.989308 3.978800306953962 +20 77628383677.55251 2410823093.66464 3.771499760181003 +21 219267504200.5945 3414009763.416978 3.341703027398196 +22 619695498136.496 4831892452.40534 4.590401181043532 +23 1751984636174.547 6836338945.629224 10.07299129534033 +24 4954134800908.93 9670416879.252453 5.713996701802657 -- !sql_test_LargeInt_Double_3 -- \N \N \N \N @@ -21425,18 +21425,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07090799289E8 1.07090490711E8 -14 2.13965863094E8 2.13965426906E8 -15 4.27715953359E8 4.27715336641E8 -16 8.55216081033E8 8.55215208967E8 -17 1.710216261608E9 1.710215028392E9 -18 3.420216516989E9 3.420214773011E9 -19 6.840216878161E9 6.840214411839E9 -20 1.368021738894E10 1.368021390106E10 -21 2.7360218111294E10 2.7360213178706E10 -22 5.472021913286E10 5.472021215714E10 -23 1.09440220577574E11 1.09440210712426E11 -24 2.1888022262071E11 2.1888020866929E11 +13 107090799.289 107090490.711 +14 213965863.094 213965426.906 +15 427715953.359 427715336.641 +16 855216081.033 855215208.967 +17 1710216261.608 1710215028.392 +18 3420216516.989 3420214773.011 +19 6840216878.161 6840214411.839 +20 13680217388.94 13680213901.06 +21 27360218111.294 27360213178.706 +22 54720219132.86 54720212157.14 +23 109440220577.574 109440210712.426 +24 218880222620.71 218880208669.29 -- !sql_test_LargeInt_Char_notn_0 -- 1 \N \N @@ -21451,18 +21451,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07090799289E8 1.07090490711E8 -14 2.13965863094E8 2.13965426906E8 -15 4.27715953359E8 4.27715336641E8 -16 8.55216081033E8 8.55215208967E8 -17 1.710216261608E9 1.710215028392E9 -18 3.420216516989E9 3.420214773011E9 -19 6.840216878161E9 6.840214411839E9 -20 1.368021738894E10 1.368021390106E10 -21 2.7360218111294E10 2.7360213178706E10 -22 5.472021913286E10 5.472021215714E10 -23 1.09440220577574E11 1.09440210712426E11 -24 2.1888022262071E11 2.1888020866929E11 +13 107090799.289 107090490.711 +14 213965863.094 213965426.906 +15 427715953.359 427715336.641 +16 855216081.033 855215208.967 +17 1710216261.608 1710215028.392 +18 3420216516.989 3420214773.011 +19 6840216878.161 6840214411.839 +20 13680217388.94 13680213901.06 +21 27360218111.294 27360213178.706 +22 54720219132.86 54720212157.14 +23 109440220577.574 109440210712.426 +24 218880222620.71 218880208669.29 -- !sql_test_LargeInt_Char_1 -- \N \N \N \N @@ -21478,18 +21478,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.6522908526404999E10 694091.2508344731 38.70100000883781 -14 4.666462338063E10 981070.7538951095 164.4200000057998 -15 1.31889968576555E11 1387070.411436021 126.87000002712296 -16 3.7290224333628503E11 1961355.321730236 140.2849999696747 -17 1.0545326484321599E12 2773586.533097203 328.7120001463086 -18 2.9823904200679053E12 3922315.126681644 110.46499987157631 -19 8.435087165003846E12 5546895.859502531 1059.9049996771282 -20 2.38574752719413E13 7844430.224090278 390.79999957193195 -21 6.7478335683969625E13 1.1093655356985016E7 880.4300014529053 -22 1.9085645133956972E14 1.56887649289249E7 3239.9599980023613 -23 5.398219622449202E14 2.2187242531992424E7 2624.092008555972 -24 1.526844909076983E15 3.137748209787964E7 682.7799988584939 +13 16522908526.405 694091.2508344731 38.70100000883781 +14 46664623380.63 981070.7538951095 164.4200000057998 +15 131889968576.555 1387070.411436021 126.870000027123 +16 372902243336.285 1961355.321730236 140.2849999696747 +17 1054532648432.16 2773586.533097203 328.7120001463086 +18 2982390420067.905 3922315.126681644 110.4649998715763 +19 8435087165003.846 5546895.859502531 1059.904999677128 +20 23857475271941.3 7844430.224090278 390.7999995719319 +21 67478335683969.62 11093655.35698502 880.4300014529053 +22 190856451339569.7 15688764.9289249 3239.959998002361 +23 539821962244920.2 22187242.53199242 2624.092008555972 +24 1526844909076983 31377482.09787964 682.7799988584939 -- !sql_test_LargeInt_Char_notn_1 -- 1 \N \N \N @@ -21504,18 +21504,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.6522908526404999E10 694091.2508344731 38.70100000883781 -14 4.666462338063E10 981070.7538951095 164.4200000057998 -15 1.31889968576555E11 1387070.411436021 126.87000002712296 -16 3.7290224333628503E11 1961355.321730236 140.2849999696747 -17 1.0545326484321599E12 2773586.533097203 328.7120001463086 -18 2.9823904200679053E12 3922315.126681644 110.46499987157631 -19 8.435087165003846E12 5546895.859502531 1059.9049996771282 -20 2.38574752719413E13 7844430.224090278 390.79999957193195 -21 6.7478335683969625E13 1.1093655356985016E7 880.4300014529053 -22 1.9085645133956972E14 1.56887649289249E7 3239.9599980023613 -23 5.398219622449202E14 2.2187242531992424E7 2624.092008555972 -24 1.526844909076983E15 3.137748209787964E7 682.7799988584939 +13 16522908526.405 694091.2508344731 38.70100000883781 +14 46664623380.63 981070.7538951095 164.4200000057998 +15 131889968576.555 1387070.411436021 126.870000027123 +16 372902243336.285 1961355.321730236 140.2849999696747 +17 1054532648432.16 2773586.533097203 328.7120001463086 +18 2982390420067.905 3922315.126681644 110.4649998715763 +19 8435087165003.846 5546895.859502531 1059.904999677128 +20 23857475271941.3 7844430.224090278 390.7999995719319 +21 67478335683969.62 11093655.35698502 880.4300014529053 +22 190856451339569.7 15688764.9289249 3239.959998002361 +23 539821962244920.2 22187242.53199242 2624.092008555972 +24 1526844909076983 31377482.09787964 682.7799988584939 -- !sql_test_LargeInt_Char_3 -- \N \N \N \N @@ -21584,18 +21584,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07092964121E8 1.07088325879E8 -14 2.13968923082E8 2.13962366918E8 -15 4.27720279741E8 4.27711010259E8 -16 8.55222198688E8 8.55209091312E8 -17 1.71022491273E9 1.71020637727E9 -18 3.420228751137E9 3.420202538863E9 -19 6.840234179585E9 6.840197110415E9 -20 1.3680241856654E10 1.3680189433346E10 -21 2.7360252713731E10 2.7360178576269E10 -22 5.4720268067999E10 5.4720163222001E10 -23 1.09440289782243E11 1.09440141507757E11 -24 2.18880320490843E11 2.18880110799157E11 +13 107092964.121 107088325.879 +14 213968923.082 213962366.918 +15 427720279.741 427711010.259 +16 855222198.688 855209091.312 +17 1710224912.73 1710206377.27 +18 3420228751.137 3420202538.863 +19 6840234179.585 6840197110.415 +20 13680241856.654 13680189433.346 +21 27360252713.731 27360178576.269 +22 54720268067.999 54720163222.001 +23 109440289782.243 109440141507.757 +24 218880320490.843 218880110799.157 -- !sql_test_LargeInt_Varchar_notn_0 -- 1 \N \N @@ -21610,18 +21610,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07092964121E8 1.07088325879E8 -14 2.13968923082E8 2.13962366918E8 -15 4.27720279741E8 4.27711010259E8 -16 8.55222198688E8 8.55209091312E8 -17 1.71022491273E9 1.71020637727E9 -18 3.420228751137E9 3.420202538863E9 -19 6.840234179585E9 6.840197110415E9 -20 1.3680241856654E10 1.3680189433346E10 -21 2.7360252713731E10 2.7360178576269E10 -22 5.4720268067999E10 5.4720163222001E10 -23 1.09440289782243E11 1.09440141507757E11 -24 2.18880320490843E11 2.18880110799157E11 +13 107092964.121 107088325.879 +14 213968923.082 213962366.918 +15 427720279.741 427711010.259 +16 855222198.688 855209091.312 +17 1710224912.73 1710206377.27 +18 3420228751.137 3420202538.863 +19 6840234179.585 6840197110.415 +20 13680241856.654 13680189433.346 +21 27360252713.731 27360178576.269 +22 54720268067.999 54720163222.001 +23 109440289782.243 109440141507.757 +24 218880320490.843 218880110799.157 -- !sql_test_LargeInt_Varchar_1 -- \N \N \N \N @@ -21637,18 +21637,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.48356163723045E11 46177.25638291404 594.5829999956322 -14 7.0139692949289E11 65271.596317602794 1954.778000007836 -15 1.982351236222945E12 92284.69185225236 3206.556000001343 -16 5.60481651004876E12 130493.7990639774 5236.8159999867075 -17 1.584981683963585E13 184534.47014533225 4357.18000008056 -18 4.482581481291337E13 260962.90958960674 11921.205999836708 -19 1.2678055829058231E14 369051.4594742747 8516.165000322224 -20 3.585810791321268E14 521913.4834070372 12670.898000713914 -21 1.0142084738464965E15 738094.2078918213 7706.286000171851 -22 2.8685978100376195E15 1043820.7788341143 40828.81999641526 -23 8.113595861245767E15 1476184.0502350484 3724.2879967348417 -24 2.2948680725321812E16 2087638.4736112047 49656.16601360985 +13 248356163723.045 46177.25638291404 594.5829999956322 +14 701396929492.89 65271.59631760279 1954.778000007836 +15 1982351236222.945 92284.69185225236 3206.556000001343 +16 5604816510048.76 130493.7990639774 5236.815999986708 +17 15849816839635.85 184534.4701453322 4357.18000008056 +18 44825814812913.37 260962.9095896067 11921.20599983671 +19 126780558290582.3 369051.4594742747 8516.165000322224 +20 358581079132126.8 521913.4834070372 12670.89800071391 +21 1014208473846496 738094.2078918213 7706.286000171851 +22 2868597810037620 1043820.778834114 40828.81999641526 +23 8113595861245767 1476184.050235048 3724.287996734842 +24 2.294868072532181e+16 2087638.473611205 49656.16601360985 -- !sql_test_LargeInt_Varchar_notn_1 -- 1 \N \N \N @@ -21663,18 +21663,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.48356163723045E11 46177.25638291404 594.5829999956322 -14 7.0139692949289E11 65271.596317602794 1954.778000007836 -15 1.982351236222945E12 92284.69185225236 3206.556000001343 -16 5.60481651004876E12 130493.7990639774 5236.8159999867075 -17 1.584981683963585E13 184534.47014533225 4357.18000008056 -18 4.482581481291337E13 260962.90958960674 11921.205999836708 -19 1.2678055829058231E14 369051.4594742747 8516.165000322224 -20 3.585810791321268E14 521913.4834070372 12670.898000713914 -21 1.0142084738464965E15 738094.2078918213 7706.286000171851 -22 2.8685978100376195E15 1043820.7788341143 40828.81999641526 -23 8.113595861245767E15 1476184.0502350484 3724.2879967348417 -24 2.2948680725321812E16 2087638.4736112047 49656.16601360985 +13 248356163723.045 46177.25638291404 594.5829999956322 +14 701396929492.89 65271.59631760279 1954.778000007836 +15 1982351236222.945 92284.69185225236 3206.556000001343 +16 5604816510048.76 130493.7990639774 5236.815999986708 +17 15849816839635.85 184534.4701453322 4357.18000008056 +18 44825814812913.37 260962.9095896067 11921.20599983671 +19 126780558290582.3 369051.4594742747 8516.165000322224 +20 358581079132126.8 521913.4834070372 12670.89800071391 +21 1014208473846496 738094.2078918213 7706.286000171851 +22 2868597810037620 1043820.778834114 40828.81999641526 +23 8113595861245767 1476184.050235048 3724.287996734842 +24 2.294868072532181e+16 2087638.473611205 49656.16601360985 -- !sql_test_LargeInt_Varchar_3 -- \N \N \N \N @@ -21743,18 +21743,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07101249017E8 1.07080040983E8 -14 2.13980633793E8 2.13950656207E8 -15 4.27736837013E8 4.27694452987E8 -16 8.55245611255E8 8.55185678745E8 -17 1.710258021012E9 1.710173268988E9 -18 3.420275571842E9 3.420155718158E9 -19 6.840300393017E9 6.840130896983E9 -20 1.3680335495851E10 1.3680095794149E10 -21 2.7360385139031E10 2.7360046150969E10 -22 5.4720455345285E10 5.4719975944715E10 -23 1.09440554632059E11 1.09439876657941E11 -24 2.18880695044861E11 2.18879736245139E11 +13 107101249.017 107080040.983 +14 213980633.793 213950656.207 +15 427736837.013 427694452.987 +16 855245611.255 855185678.745 +17 1710258021.012 1710173268.988 +18 3420275571.842 3420155718.158 +19 6840300393.017 6840130896.983 +20 13680335495.851 13680095794.149 +21 27360385139.031 27360046150.969 +22 54720455345.285 54719975944.715 +23 109440554632.059 109439876657.941 +24 218880695044.861 218879736245.139 -- !sql_test_LargeInt_String_notn_0 -- 1 \N \N @@ -21769,18 +21769,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07101249017E8 1.07080040983E8 -14 2.13980633793E8 2.13950656207E8 -15 4.27736837013E8 4.27694452987E8 -16 8.55245611255E8 8.55185678745E8 -17 1.710258021012E9 1.710173268988E9 -18 3.420275571842E9 3.420155718158E9 -19 6.840300393017E9 6.840130896983E9 -20 1.3680335495851E10 1.3680095794149E10 -21 2.7360385139031E10 2.7360046150969E10 -22 5.4720455345285E10 5.4719975944715E10 -23 1.09440554632059E11 1.09439876657941E11 -24 2.18880695044861E11 2.18879736245139E11 +13 107101249.017 107080040.983 +14 213980633.793 213950656.207 +15 427736837.013 427694452.987 +16 855245611.255 855185678.745 +17 1710258021.012 1710173268.988 +18 3420275571.842 3420155718.158 +19 6840300393.017 6840130896.983 +20 13680335495.851 13680095794.149 +21 27360385139.031 27360046150.969 +22 54720455345.285 54719975944.715 +23 109440554632.059 109439876657.941 +24 218880695044.861 218879736245.139 -- !sql_test_LargeInt_String_1 -- \N \N \N \N @@ -21796,18 +21796,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.135591020120965E12 10099.063873624495 677.3170000017635 -14 3.207086762016485E12 14275.04169281676 624.9250000047778 -15 9.064155509143385E12 20182.870074683327 18438.63400001997 -16 2.5627610098059477E13 28539.290111493745 8693.55499997093 -17 7.247211869510775E13 40358.10743587669 4552.703999901336 -18 2.049627225638431E14 57073.18341587231 10991.53400017607 -19 5.79694711766126E14 80712.39761279605 33696.89599942684 -20 1.6395854869167638E15 114143.66715677305 79959.3070005581 -21 4.637393238700315E15 161422.88600711845 150172.91800191678 -22 1.311645128536796E16 228285.9849123667 236083.77499920272 -23 3.7098816837824336E16 322844.81881947 277569.20399729395 -24 1.04931144955863024E17 456571.2955953486 141708.3690112682 +13 1135591020120.965 10099.06387362449 677.3170000017635 +14 3207086762016.485 14275.04169281676 624.9250000047778 +15 9064155509143.385 20182.87007468333 18438.63400001997 +16 25627610098059.48 28539.29011149374 8693.554999970929 +17 72472118695107.75 40358.10743587669 4552.703999901336 +18 204962722563843.1 57073.18341587231 10991.53400017607 +19 579694711766126 80712.39761279605 33696.89599942684 +20 1639585486916764 114143.6671567731 79959.3070005581 +21 4637393238700315 161422.8860071184 150172.9180019168 +22 1.311645128536796e+16 228285.9849123667 236083.7749992027 +23 3.709881683782434e+16 322844.81881947 277569.203997294 +24 1.04931144955863e+17 456571.2955953486 141708.3690112682 -- !sql_test_LargeInt_String_notn_1 -- 1 \N \N \N @@ -21822,18 +21822,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.135591020120965E12 10099.063873624495 677.3170000017635 -14 3.207086762016485E12 14275.04169281676 624.9250000047778 -15 9.064155509143385E12 20182.870074683327 18438.63400001997 -16 2.5627610098059477E13 28539.290111493745 8693.55499997093 -17 7.247211869510775E13 40358.10743587669 4552.703999901336 -18 2.049627225638431E14 57073.18341587231 10991.53400017607 -19 5.79694711766126E14 80712.39761279605 33696.89599942684 -20 1.6395854869167638E15 114143.66715677305 79959.3070005581 -21 4.637393238700315E15 161422.88600711845 150172.91800191678 -22 1.311645128536796E16 228285.9849123667 236083.77499920272 -23 3.7098816837824336E16 322844.81881947 277569.20399729395 -24 1.04931144955863024E17 456571.2955953486 141708.3690112682 +13 1135591020120.965 10099.06387362449 677.3170000017635 +14 3207086762016.485 14275.04169281676 624.9250000047778 +15 9064155509143.385 20182.87007468333 18438.63400001997 +16 25627610098059.48 28539.29011149374 8693.554999970929 +17 72472118695107.75 40358.10743587669 4552.703999901336 +18 204962722563843.1 57073.18341587231 10991.53400017607 +19 579694711766126 80712.39761279605 33696.89599942684 +20 1639585486916764 114143.6671567731 79959.3070005581 +21 4637393238700315 161422.8860071184 150172.9180019168 +22 1.311645128536796e+16 228285.9849123667 236083.7749992027 +23 3.709881683782434e+16 322844.81881947 277569.203997294 +24 1.04931144955863e+17 456571.2955953486 141708.3690112682 -- !sql_test_LargeInt_String_3 -- \N \N \N \N @@ -21944,55 +21944,55 @@ -- !sql_test_LargeInt_Date_1 -- \N \N \N \N 1 2154696011684145 5.322517043855358 6489140 -2 4305053395024790 10.634315777168752 12762625 +2 4305053395024790 10.63431577716875 12762625 3 8605768375240435 21.2579127163244 5189282 4 17207198762956080 42.50510553916084 10162877 5 34410060393171725 84.99948907335153 20110025 -6 68815785363387370 169.98825191823624 19883931 +6 68815785363387370 169.9882519182362 19883931 7 137627238723603015 339.9657691604805 19431572 8 275250152283818660 679.9207867493877 18526513 -9 550495993084034305 1359.8307881355101 16715714 -10 1100987702044249950 2719.6507233238453 13092755 +9 550495993084034305 1359.83078813551 16715714 +10 1100987702044249950 2719.650723323845 13092755 11 2201971174684465595 5439.290458532177 5844116 -12 4403938229404681240 10878.569658611656 11461709 +12 4403938229404681240 10878.56965861166 11461709 13 2154696011684145 5.322517043855358 6489140 -14 4305053395024790 10.634315777168752 12762625 +14 4305053395024790 10.63431577716875 12762625 15 8605768375240435 21.2579127163244 5189282 16 17207198762956080 42.50510553916084 10162877 17 34410060393171725 84.99948907335153 20110025 -18 68815785363387370 169.98825191823624 19883931 +18 68815785363387370 169.9882519182362 19883931 19 137627238723603015 339.9657691604805 19431572 20 275250152283818660 679.9207867493877 18526513 -21 550495993084034305 1359.8307881355101 16715714 -22 1100987702044249950 2719.6507233238453 13092755 +21 550495993084034305 1359.83078813551 16715714 +22 1100987702044249950 2719.650723323845 13092755 23 2201971174684465595 5439.290458532177 5844116 -24 4403938229404681240 10878.569658611656 11461709 +24 4403938229404681240 10878.56965861166 11461709 -- !sql_test_LargeInt_Date_notn_1 -- 1 2154696011684145 5.322517043855358 6489140 -2 4305053395024790 10.634315777168752 12762625 +2 4305053395024790 10.63431577716875 12762625 3 8605768375240435 21.2579127163244 5189282 4 17207198762956080 42.50510553916084 10162877 5 34410060393171725 84.99948907335153 20110025 -6 68815785363387370 169.98825191823624 19883931 +6 68815785363387370 169.9882519182362 19883931 7 137627238723603015 339.9657691604805 19431572 8 275250152283818660 679.9207867493877 18526513 -9 550495993084034305 1359.8307881355101 16715714 -10 1100987702044249950 2719.6507233238453 13092755 +9 550495993084034305 1359.83078813551 16715714 +10 1100987702044249950 2719.650723323845 13092755 11 2201971174684465595 5439.290458532177 5844116 -12 4403938229404681240 10878.569658611656 11461709 +12 4403938229404681240 10878.56965861166 11461709 13 2154696011684145 5.322517043855358 6489140 -14 4305053395024790 10.634315777168752 12762625 +14 4305053395024790 10.63431577716875 12762625 15 8605768375240435 21.2579127163244 5189282 16 17207198762956080 42.50510553916084 10162877 17 34410060393171725 84.99948907335153 20110025 -18 68815785363387370 169.98825191823624 19883931 +18 68815785363387370 169.9882519182362 19883931 19 137627238723603015 339.9657691604805 19431572 20 275250152283818660 679.9207867493877 18526513 -21 550495993084034305 1359.8307881355101 16715714 -22 1100987702044249950 2719.6507233238453 13092755 +21 550495993084034305 1359.83078813551 16715714 +22 1100987702044249950 2719.650723323845 13092755 23 2201971174684465595 5439.290458532177 5844116 -24 4403938229404681240 10878.569658611656 11461709 +24 4403938229404681240 10878.56965861166 11461709 -- !sql_test_LargeInt_Date_2 -- \N \N @@ -22208,56 +22208,56 @@ -- !sql_test_LargeInt_DateTime_1 -- \N \N \N \N -1 2154696012755158540645 5.322517041209746E-6 107090645 -2 4305053399325927395790 1.063431576654411E-5 213965645 -3 8605768388158730625935 2.1257912684413712E-5 427715645 -4 17207198797424691356080 4.250510545401671E-5 855215645 -5 34410060479375144586225 8.499948886041244E-5 1710215645 -6 68815785570330937816370 1.6998825140704575E-4 3420215645 -7 137627239206570121046515 3.399657679674588E-4 6840215645 -8 275250153387921504276660 6.799207840220415E-4 13680215645 -9 550495995568588127506805 0.0013598307819981854 27360215645 +1 2154696012755158540645 5.322517041209746e-06 107090645 +2 4305053399325927395790 1.063431576654411e-05 213965645 +3 8605768388158730625935 2.125791268441371e-05 427715645 +4 17207198797424691356080 4.250510545401671e-05 855215645 +5 34410060479375144586225 8.499948886041244e-05 1710215645 +6 68815785570330937816370 0.0001699882514070457 3420215645 +7 137627239206570121046515 0.0003399657679674588 6840215645 +8 275250153387921504276660 0.0006799207840220415 13680215645 +9 550495995568588127506805 0.001359830781998185 27360215645 10 1100987707566066910736950 0.002719650709683899 54720215645 11 2201971186833533373967095 0.005439290428521653 109440215645 -12 4403938255913701917197240 0.010878569593129305 218880215645 -13 2154696012755158540645 5.322517041209746E-6 107090645 -14 4305053399325927395790 1.063431576654411E-5 213965645 -15 8605768388158730625935 2.1257912684413712E-5 427715645 -16 17207198797424691356080 4.250510545401671E-5 855215645 -17 34410060479375144586225 8.499948886041244E-5 1710215645 -18 68815785570330937816370 1.6998825140704575E-4 3420215645 -19 137627239206570121046515 3.399657679674588E-4 6840215645 -20 275250153387921504276660 6.799207840220415E-4 13680215645 -21 550495995568588127506805 0.0013598307819981854 27360215645 +12 4403938255913701917197240 0.01087856959312931 218880215645 +13 2154696012755158540645 5.322517041209746e-06 107090645 +14 4305053399325927395790 1.063431576654411e-05 213965645 +15 8605768388158730625935 2.125791268441371e-05 427715645 +16 17207198797424691356080 4.250510545401671e-05 855215645 +17 34410060479375144586225 8.499948886041244e-05 1710215645 +18 68815785570330937816370 0.0001699882514070457 3420215645 +19 137627239206570121046515 0.0003399657679674588 6840215645 +20 275250153387921504276660 0.0006799207840220415 13680215645 +21 550495995568588127506805 0.001359830781998185 27360215645 22 1100987707566066910736950 0.002719650709683899 54720215645 23 2201971186833533373967095 0.005439290428521653 109440215645 -24 4403938255913701917197240 0.010878569593129305 218880215645 +24 4403938255913701917197240 0.01087856959312931 218880215645 -- !sql_test_LargeInt_DateTime_notn_1 -- -1 2154696012755158540645 5.322517041209746E-6 107090645 -2 4305053399325927395790 1.063431576654411E-5 213965645 -3 8605768388158730625935 2.1257912684413712E-5 427715645 -4 17207198797424691356080 4.250510545401671E-5 855215645 -5 34410060479375144586225 8.499948886041244E-5 1710215645 -6 68815785570330937816370 1.6998825140704575E-4 3420215645 -7 137627239206570121046515 3.399657679674588E-4 6840215645 -8 275250153387921504276660 6.799207840220415E-4 13680215645 -9 550495995568588127506805 0.0013598307819981854 27360215645 +1 2154696012755158540645 5.322517041209746e-06 107090645 +2 4305053399325927395790 1.063431576654411e-05 213965645 +3 8605768388158730625935 2.125791268441371e-05 427715645 +4 17207198797424691356080 4.250510545401671e-05 855215645 +5 34410060479375144586225 8.499948886041244e-05 1710215645 +6 68815785570330937816370 0.0001699882514070457 3420215645 +7 137627239206570121046515 0.0003399657679674588 6840215645 +8 275250153387921504276660 0.0006799207840220415 13680215645 +9 550495995568588127506805 0.001359830781998185 27360215645 10 1100987707566066910736950 0.002719650709683899 54720215645 11 2201971186833533373967095 0.005439290428521653 109440215645 -12 4403938255913701917197240 0.010878569593129305 218880215645 -13 2154696012755158540645 5.322517041209746E-6 107090645 -14 4305053399325927395790 1.063431576654411E-5 213965645 -15 8605768388158730625935 2.1257912684413712E-5 427715645 -16 17207198797424691356080 4.250510545401671E-5 855215645 -17 34410060479375144586225 8.499948886041244E-5 1710215645 -18 68815785570330937816370 1.6998825140704575E-4 3420215645 -19 137627239206570121046515 3.399657679674588E-4 6840215645 -20 275250153387921504276660 6.799207840220415E-4 13680215645 -21 550495995568588127506805 0.0013598307819981854 27360215645 +12 4403938255913701917197240 0.01087856959312931 218880215645 +13 2154696012755158540645 5.322517041209746e-06 107090645 +14 4305053399325927395790 1.063431576654411e-05 213965645 +15 8605768388158730625935 2.125791268441371e-05 427715645 +16 17207198797424691356080 4.250510545401671e-05 855215645 +17 34410060479375144586225 8.499948886041244e-05 1710215645 +18 68815785570330937816370 0.0001699882514070457 3420215645 +19 137627239206570121046515 0.0003399657679674588 6840215645 +20 275250153387921504276660 0.0006799207840220415 13680215645 +21 550495995568588127506805 0.001359830781998185 27360215645 22 1100987707566066910736950 0.002719650709683899 54720215645 23 2201971186833533373967095 0.005439290428521653 109440215645 -24 4403938255913701917197240 0.010878569593129305 218880215645 +24 4403938255913701917197240 0.01087856959312931 218880215645 -- !sql_test_LargeInt_DateTime_2 -- \N \N @@ -22474,55 +22474,55 @@ -- !sql_test_LargeInt_DateV2_1 -- \N \N \N \N 1 2154696011684145 5.322517043855358 6489140 -2 4305053395024790 10.634315777168752 12762625 +2 4305053395024790 10.63431577716875 12762625 3 8605768375240435 21.2579127163244 5189282 4 17207198762956080 42.50510553916084 10162877 5 34410060393171725 84.99948907335153 20110025 -6 68815785363387370 169.98825191823624 19883931 +6 68815785363387370 169.9882519182362 19883931 7 137627238723603015 339.9657691604805 19431572 8 275250152283818660 679.9207867493877 18526513 -9 550495993084034305 1359.8307881355101 16715714 -10 1100987702044249950 2719.6507233238453 13092755 +9 550495993084034305 1359.83078813551 16715714 +10 1100987702044249950 2719.650723323845 13092755 11 2201971174684465595 5439.290458532177 5844116 -12 4403938229404681240 10878.569658611656 11461709 +12 4403938229404681240 10878.56965861166 11461709 13 2154696011684145 5.322517043855358 6489140 -14 4305053395024790 10.634315777168752 12762625 +14 4305053395024790 10.63431577716875 12762625 15 8605768375240435 21.2579127163244 5189282 16 17207198762956080 42.50510553916084 10162877 17 34410060393171725 84.99948907335153 20110025 -18 68815785363387370 169.98825191823624 19883931 +18 68815785363387370 169.9882519182362 19883931 19 137627238723603015 339.9657691604805 19431572 20 275250152283818660 679.9207867493877 18526513 -21 550495993084034305 1359.8307881355101 16715714 -22 1100987702044249950 2719.6507233238453 13092755 +21 550495993084034305 1359.83078813551 16715714 +22 1100987702044249950 2719.650723323845 13092755 23 2201971174684465595 5439.290458532177 5844116 -24 4403938229404681240 10878.569658611656 11461709 +24 4403938229404681240 10878.56965861166 11461709 -- !sql_test_LargeInt_DateV2_notn_1 -- 1 2154696011684145 5.322517043855358 6489140 -2 4305053395024790 10.634315777168752 12762625 +2 4305053395024790 10.63431577716875 12762625 3 8605768375240435 21.2579127163244 5189282 4 17207198762956080 42.50510553916084 10162877 5 34410060393171725 84.99948907335153 20110025 -6 68815785363387370 169.98825191823624 19883931 +6 68815785363387370 169.9882519182362 19883931 7 137627238723603015 339.9657691604805 19431572 8 275250152283818660 679.9207867493877 18526513 -9 550495993084034305 1359.8307881355101 16715714 -10 1100987702044249950 2719.6507233238453 13092755 +9 550495993084034305 1359.83078813551 16715714 +10 1100987702044249950 2719.650723323845 13092755 11 2201971174684465595 5439.290458532177 5844116 -12 4403938229404681240 10878.569658611656 11461709 +12 4403938229404681240 10878.56965861166 11461709 13 2154696011684145 5.322517043855358 6489140 -14 4305053395024790 10.634315777168752 12762625 +14 4305053395024790 10.63431577716875 12762625 15 8605768375240435 21.2579127163244 5189282 16 17207198762956080 42.50510553916084 10162877 17 34410060393171725 84.99948907335153 20110025 -18 68815785363387370 169.98825191823624 19883931 +18 68815785363387370 169.9882519182362 19883931 19 137627238723603015 339.9657691604805 19431572 20 275250152283818660 679.9207867493877 18526513 -21 550495993084034305 1359.8307881355101 16715714 -22 1100987702044249950 2719.6507233238453 13092755 +21 550495993084034305 1359.83078813551 16715714 +22 1100987702044249950 2719.650723323845 13092755 23 2201971174684465595 5439.290458532177 5844116 -24 4403938229404681240 10878.569658611656 11461709 +24 4403938229404681240 10878.56965861166 11461709 -- !sql_test_LargeInt_DateV2_2 -- \N \N @@ -22738,56 +22738,56 @@ -- !sql_test_LargeInt_DateTimeV2_1 -- \N \N \N \N -1 2154696012755158540645 5.322517041209746E-6 107090645 -2 4305053399325927395790 1.063431576654411E-5 213965645 -3 8605768388158730625935 2.1257912684413712E-5 427715645 -4 17207198797424691356080 4.250510545401671E-5 855215645 -5 34410060479375144586225 8.499948886041244E-5 1710215645 -6 68815785570330937816370 1.6998825140704575E-4 3420215645 -7 137627239206570121046515 3.399657679674588E-4 6840215645 -8 275250153387921504276660 6.799207840220415E-4 13680215645 -9 550495995568588127506805 0.0013598307819981854 27360215645 +1 2154696012755158540645 5.322517041209746e-06 107090645 +2 4305053399325927395790 1.063431576654411e-05 213965645 +3 8605768388158730625935 2.125791268441371e-05 427715645 +4 17207198797424691356080 4.250510545401671e-05 855215645 +5 34410060479375144586225 8.499948886041244e-05 1710215645 +6 68815785570330937816370 0.0001699882514070457 3420215645 +7 137627239206570121046515 0.0003399657679674588 6840215645 +8 275250153387921504276660 0.0006799207840220415 13680215645 +9 550495995568588127506805 0.001359830781998185 27360215645 10 1100987707566066910736950 0.002719650709683899 54720215645 11 2201971186833533373967095 0.005439290428521653 109440215645 -12 4403938255913701917197240 0.010878569593129305 218880215645 -13 2154696012755158540645 5.322517041209746E-6 107090645 -14 4305053399325927395790 1.063431576654411E-5 213965645 -15 8605768388158730625935 2.1257912684413712E-5 427715645 -16 17207198797424691356080 4.250510545401671E-5 855215645 -17 34410060479375144586225 8.499948886041244E-5 1710215645 -18 68815785570330937816370 1.6998825140704575E-4 3420215645 -19 137627239206570121046515 3.399657679674588E-4 6840215645 -20 275250153387921504276660 6.799207840220415E-4 13680215645 -21 550495995568588127506805 0.0013598307819981854 27360215645 +12 4403938255913701917197240 0.01087856959312931 218880215645 +13 2154696012755158540645 5.322517041209746e-06 107090645 +14 4305053399325927395790 1.063431576654411e-05 213965645 +15 8605768388158730625935 2.125791268441371e-05 427715645 +16 17207198797424691356080 4.250510545401671e-05 855215645 +17 34410060479375144586225 8.499948886041244e-05 1710215645 +18 68815785570330937816370 0.0001699882514070457 3420215645 +19 137627239206570121046515 0.0003399657679674588 6840215645 +20 275250153387921504276660 0.0006799207840220415 13680215645 +21 550495995568588127506805 0.001359830781998185 27360215645 22 1100987707566066910736950 0.002719650709683899 54720215645 23 2201971186833533373967095 0.005439290428521653 109440215645 -24 4403938255913701917197240 0.010878569593129305 218880215645 +24 4403938255913701917197240 0.01087856959312931 218880215645 -- !sql_test_LargeInt_DateTimeV2_notn_1 -- -1 2154696012755158540645 5.322517041209746E-6 107090645 -2 4305053399325927395790 1.063431576654411E-5 213965645 -3 8605768388158730625935 2.1257912684413712E-5 427715645 -4 17207198797424691356080 4.250510545401671E-5 855215645 -5 34410060479375144586225 8.499948886041244E-5 1710215645 -6 68815785570330937816370 1.6998825140704575E-4 3420215645 -7 137627239206570121046515 3.399657679674588E-4 6840215645 -8 275250153387921504276660 6.799207840220415E-4 13680215645 -9 550495995568588127506805 0.0013598307819981854 27360215645 +1 2154696012755158540645 5.322517041209746e-06 107090645 +2 4305053399325927395790 1.063431576654411e-05 213965645 +3 8605768388158730625935 2.125791268441371e-05 427715645 +4 17207198797424691356080 4.250510545401671e-05 855215645 +5 34410060479375144586225 8.499948886041244e-05 1710215645 +6 68815785570330937816370 0.0001699882514070457 3420215645 +7 137627239206570121046515 0.0003399657679674588 6840215645 +8 275250153387921504276660 0.0006799207840220415 13680215645 +9 550495995568588127506805 0.001359830781998185 27360215645 10 1100987707566066910736950 0.002719650709683899 54720215645 11 2201971186833533373967095 0.005439290428521653 109440215645 -12 4403938255913701917197240 0.010878569593129305 218880215645 -13 2154696012755158540645 5.322517041209746E-6 107090645 -14 4305053399325927395790 1.063431576654411E-5 213965645 -15 8605768388158730625935 2.1257912684413712E-5 427715645 -16 17207198797424691356080 4.250510545401671E-5 855215645 -17 34410060479375144586225 8.499948886041244E-5 1710215645 -18 68815785570330937816370 1.6998825140704575E-4 3420215645 -19 137627239206570121046515 3.399657679674588E-4 6840215645 -20 275250153387921504276660 6.799207840220415E-4 13680215645 -21 550495995568588127506805 0.0013598307819981854 27360215645 +12 4403938255913701917197240 0.01087856959312931 218880215645 +13 2154696012755158540645 5.322517041209746e-06 107090645 +14 4305053399325927395790 1.063431576654411e-05 213965645 +15 8605768388158730625935 2.125791268441371e-05 427715645 +16 17207198797424691356080 4.250510545401671e-05 855215645 +17 34410060479375144586225 8.499948886041244e-05 1710215645 +18 68815785570330937816370 0.0001699882514070457 3420215645 +19 137627239206570121046515 0.0003399657679674588 6840215645 +20 275250153387921504276660 0.0006799207840220415 13680215645 +21 550495995568588127506805 0.001359830781998185 27360215645 22 1100987707566066910736950 0.002719650709683899 54720215645 23 2201971186833533373967095 0.005439290428521653 109440215645 -24 4403938255913701917197240 0.010878569593129305 218880215645 +24 4403938255913701917197240 0.01087856959312931 218880215645 -- !sql_test_LargeInt_DateTimeV2_2 -- \N \N @@ -23010,11 +23010,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 13680215645 1.3680215645E10 0 -9 27360215645 2.7360215645E10 0 -10 54720215645 5.4720215645E10 0 -11 109440215645 1.09440215645E11 0 -12 218880215645 2.18880215645E11 0 +8 13680215645 13680215645 0 +9 27360215645 27360215645 0 +10 54720215645 54720215645 0 +11 109440215645 109440215645 0 +12 218880215645 218880215645 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -23022,11 +23022,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 13680215645 1.3680215645E10 0 -21 27360215645 2.7360215645E10 0 -22 54720215645 5.4720215645E10 0 -23 109440215645 1.09440215645E11 0 -24 218880215645 2.18880215645E11 0 +20 13680215645 13680215645 0 +21 27360215645 27360215645 0 +22 54720215645 54720215645 0 +23 109440215645 109440215645 0 +24 218880215645 218880215645 0 -- !sql_test_LargeInt_Boolean_notn_1 -- 1 0 \N \N @@ -23036,11 +23036,11 @@ 5 0 \N \N 6 0 \N \N 7 0 \N \N -8 13680215645 1.3680215645E10 0 -9 27360215645 2.7360215645E10 0 -10 54720215645 5.4720215645E10 0 -11 109440215645 1.09440215645E11 0 -12 218880215645 2.18880215645E11 0 +8 13680215645 13680215645 0 +9 27360215645 27360215645 0 +10 54720215645 54720215645 0 +11 109440215645 109440215645 0 +12 218880215645 218880215645 0 13 0 \N \N 14 0 \N \N 15 0 \N \N @@ -23048,11 +23048,11 @@ 17 0 \N \N 18 0 \N \N 19 0 \N \N -20 13680215645 1.3680215645E10 0 -21 27360215645 2.7360215645E10 0 -22 54720215645 5.4720215645E10 0 -23 109440215645 1.09440215645E11 0 -24 218880215645 2.18880215645E11 0 +20 13680215645 13680215645 0 +21 27360215645 27360215645 0 +22 54720215645 54720215645 0 +23 109440215645 109440215645 0 +24 218880215645 218880215645 0 -- !sql_test_LargeInt_Boolean_2 -- \N \N diff --git a/regression-test/data/nereids_arith_p0/string.out b/regression-test/data/nereids_arith_p0/string.out index 832ccef67f5ede..de75a46feede4f 100644 --- a/regression-test/data/nereids_arith_p0/string.out +++ b/regression-test/data/nereids_arith_p0/string.out @@ -17,7 +17,7 @@ 14 220.094 216.094 15 311.359 305.359 16 440.033 432.033 -17 621.608 611.608 +17 621.6079999999999 611.6079999999999 18 877.989 865.989 19 1240.161 1226.161 20 1751.94 1735.94 @@ -43,7 +43,7 @@ 14 220.094 216.094 15 311.359 305.359 16 440.033 432.033 -17 621.608 611.608 +17 621.6079999999999 611.6079999999999 18 877.989 865.989 19 1240.161 1226.161 20 1751.94 1735.94 @@ -66,18 +66,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 154.289 154.289 0.28899999999998727 +13 154.289 154.289 0.2889999999999873 14 436.188 109.047 0.09399999999999409 -15 925.077 102.78633333333333 2.3589999999999804 +15 925.077 102.7863333333333 2.35899999999998 16 1744.132 109.00825 0.03300000000001546 -17 3083.04 123.32159999999999 1.6079999999999472 -18 5231.934 145.3315 1.9890000000000327 -19 8632.127 176.16585714285716 1.1610000000000582 +17 3083.04 123.3216 1.607999999999947 +18 5231.934 145.3315 1.989000000000033 +19 8632.127 176.1658571428572 1.161000000000058 20 13951.52 217.9925 7.940000000000055 -21 22196.646 274.03266666666667 0.29399999999986903 +21 22196.646 274.0326666666667 0.293999999999869 22 34878.6 348.786 7.860000000000127 -23 54258.314 448.41581818181817 4.573999999999614 -24 83708.52 581.3091666666667 3.7100000000000364 +23 54258.314 448.4158181818182 4.573999999999614 +24 83708.52 581.3091666666667 3.710000000000036 -- !sql_test_Char_TinyInt_notn_1 -- 1 \N \N \N @@ -92,18 +92,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 154.289 154.289 0.28899999999998727 +13 154.289 154.289 0.2889999999999873 14 436.188 109.047 0.09399999999999409 -15 925.077 102.78633333333333 2.3589999999999804 +15 925.077 102.7863333333333 2.35899999999998 16 1744.132 109.00825 0.03300000000001546 -17 3083.04 123.32159999999999 1.6079999999999472 -18 5231.934 145.3315 1.9890000000000327 -19 8632.127 176.16585714285716 1.1610000000000582 +17 3083.04 123.3216 1.607999999999947 +18 5231.934 145.3315 1.989000000000033 +19 8632.127 176.1658571428572 1.161000000000058 20 13951.52 217.9925 7.940000000000055 -21 22196.646 274.03266666666667 0.29399999999986903 +21 22196.646 274.0326666666667 0.293999999999869 22 34878.6 348.786 7.860000000000127 -23 54258.314 448.41581818181817 4.573999999999614 -24 83708.52 581.3091666666667 3.7100000000000364 +23 54258.314 448.4158181818182 4.573999999999614 +24 83708.52 581.3091666666667 3.710000000000036 -- !sql_test_Char_TinyInt_2 -- \N \N @@ -229,12 +229,12 @@ 14 238.094 198.094 15 348.359 268.359 16 516.033 356.033 -17 776.608 456.60799999999995 +17 776.6079999999999 456.6079999999999 18 1191.989 551.989 19 1873.161 593.1610000000001 -20 3023.94 463.94000000000005 +20 3023.94 463.9400000000001 21 5026.294 -93.70600000000013 -22 8607.86 -1632.1399999999999 +22 8607.860000000001 -1632.14 23 15172.574 -5307.426 24 27455.71 -13504.29 @@ -255,12 +255,12 @@ 14 238.094 198.094 15 348.359 268.359 16 516.033 356.033 -17 776.608 456.60799999999995 +17 776.6079999999999 456.6079999999999 18 1191.989 551.989 19 1873.161 593.1610000000001 -20 3023.94 463.94000000000005 +20 3023.94 463.9400000000001 21 5026.294 -93.70600000000013 -22 8607.86 -1632.1399999999999 +22 8607.860000000001 -1632.14 23 15172.574 -5307.426 24 27455.71 -13504.29 @@ -278,18 +278,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1542.8899999999999 15.428899999999999 4.288999999999987 -14 4361.88 10.9047 18.093999999999994 -15 12334.359999999999 7.708975 28.35899999999998 -16 34882.64 5.4504125000000005 36.033000000000015 -17 98657.28 3.8537999999999997 136.60799999999995 -18 279036.48 2.7249656250000003 231.98900000000003 +13 1542.89 15.4289 4.288999999999987 +14 4361.88 10.9047 18.09399999999999 +15 12334.36 7.708975 28.35899999999998 +16 34882.64 5.450412500000001 36.03300000000002 +17 98657.28 3.8538 136.6079999999999 +18 279036.48 2.724965625 231.989 19 789223.04 1.9268140625 593.1610000000001 -20 2232243.2 1.362453125 463.94000000000005 +20 2232243.2 1.362453125 463.9400000000001 21 6313712.64 0.9633960937499999 2466.294 -22 1.78578432E7 0.68122265625 3487.86 -23 5.050955776E7 0.48169667968749996 4932.574 -24 1.428625408E8 0.34061083984375 6975.71 +22 17857843.2 0.68122265625 3487.86 +23 50509557.76 0.4816966796875 4932.574 +24 142862540.8 0.34061083984375 6975.71 -- !sql_test_Char_SmallInt_notn_1 -- 1 \N \N \N @@ -304,18 +304,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1542.8899999999999 15.428899999999999 4.288999999999987 -14 4361.88 10.9047 18.093999999999994 -15 12334.359999999999 7.708975 28.35899999999998 -16 34882.64 5.4504125000000005 36.033000000000015 -17 98657.28 3.8537999999999997 136.60799999999995 -18 279036.48 2.7249656250000003 231.98900000000003 +13 1542.89 15.4289 4.288999999999987 +14 4361.88 10.9047 18.09399999999999 +15 12334.36 7.708975 28.35899999999998 +16 34882.64 5.450412500000001 36.03300000000002 +17 98657.28 3.8538 136.6079999999999 +18 279036.48 2.724965625 231.989 19 789223.04 1.9268140625 593.1610000000001 -20 2232243.2 1.362453125 463.94000000000005 +20 2232243.2 1.362453125 463.9400000000001 21 6313712.64 0.9633960937499999 2466.294 -22 1.78578432E7 0.68122265625 3487.86 -23 5.050955776E7 0.48169667968749996 4932.574 -24 1.428625408E8 0.34061083984375 6975.71 +22 17857843.2 0.68122265625 3487.86 +23 50509557.76 0.4816966796875 4932.574 +24 142862540.8 0.34061083984375 6975.71 -- !sql_test_Char_SmallInt_2 -- \N \N @@ -442,13 +442,13 @@ 15 95353.359 -94736.641 16 190481.033 -189608.967 17 380661.608 -379428.392 -18 760916.989 -759173.011 +18 760916.9889999999 -759173.0110000001 19 1521278.161 -1518811.839 20 3041788.94 -3038301.06 21 6082511.294 -6077578.706 -22 1.216353286E7 -1.215655714E7 -23 2.4324977574E7 -2.4315112426E7 -24 4.864702071E7 -4.863306929E7 +22 12163532.86 -12156557.14 +23 24324977.574 -24315112.426 +24 48647020.71 -48633069.29 -- !sql_test_Char_Integer_notn_0 -- 1 \N \N @@ -468,13 +468,13 @@ 15 95353.359 -94736.641 16 190481.033 -189608.967 17 380661.608 -379428.392 -18 760916.989 -759173.011 +18 760916.9889999999 -759173.0110000001 19 1521278.161 -1518811.839 20 3041788.94 -3038301.06 21 6082511.294 -6077578.706 -22 1.216353286E7 -1.215655714E7 -23 2.4324977574E7 -2.4315112426E7 -24 4.864702071E7 -4.863306929E7 +22 12163532.86 -12156557.14 +23 24324977.574 -24315112.426 +24 48647020.71 -48633069.29 -- !sql_test_Char_Integer_1 -- \N \N \N \N @@ -491,17 +491,17 @@ 11 \N \N \N 12 \N \N \N 13 3671306.755 0.006484093296911115 154.289 -14 1.036927923E7 0.004587106951309286 218.094 -15 2.9307981154999997E7 0.003244347414382661 308.359 -16 8.2865891485E7 0.002294367123575995 436.033 -17 2.3433878735999998E8 0.0016224604980989092 616.608 -18 6.62750879505E8 0.0011472860159595813 871.989 -19 1.8744602122450001E9 8.112661138321563E-4 1233.161 -20 5.3016560773E9 5.73655982066055E-4 1743.94 -21 1.499517850323E10 4.0563745827539103E-4 2466.294 -22 4.2412534553700005E10 2.868295306472961E-4 3487.86 -23 1.1996042164582999E11 2.0281927932287952E-4 4932.574 -24 3.3929884830695E11 1.4341495777810237E-4 6975.71 +14 10369279.23 0.004587106951309286 218.094 +15 29307981.155 0.003244347414382661 308.359 +16 82865891.485 0.002294367123575995 436.033 +17 234338787.36 0.001622460498098909 616.6079999999999 +18 662750879.505 0.001147286015959581 871.989 +19 1874460212.245 0.0008112661138321563 1233.161 +20 5301656077.3 0.000573655982066055 1743.94 +21 14995178503.23 0.000405637458275391 2466.294 +22 42412534553.7 0.0002868295306472961 3487.86 +23 119960421645.83 0.0002028192793228795 4932.574 +24 339298848306.95 0.0001434149577781024 6975.71 -- !sql_test_Char_Integer_notn_1 -- 1 \N \N \N @@ -517,17 +517,17 @@ 11 \N \N \N 12 \N \N \N 13 3671306.755 0.006484093296911115 154.289 -14 1.036927923E7 0.004587106951309286 218.094 -15 2.9307981154999997E7 0.003244347414382661 308.359 -16 8.2865891485E7 0.002294367123575995 436.033 -17 2.3433878735999998E8 0.0016224604980989092 616.608 -18 6.62750879505E8 0.0011472860159595813 871.989 -19 1.8744602122450001E9 8.112661138321563E-4 1233.161 -20 5.3016560773E9 5.73655982066055E-4 1743.94 -21 1.499517850323E10 4.0563745827539103E-4 2466.294 -22 4.2412534553700005E10 2.868295306472961E-4 3487.86 -23 1.1996042164582999E11 2.0281927932287952E-4 4932.574 -24 3.3929884830695E11 1.4341495777810237E-4 6975.71 +14 10369279.23 0.004587106951309286 218.094 +15 29307981.155 0.003244347414382661 308.359 +16 82865891.485 0.002294367123575995 436.033 +17 234338787.36 0.001622460498098909 616.6079999999999 +18 662750879.505 0.001147286015959581 871.989 +19 1874460212.245 0.0008112661138321563 1233.161 +20 5301656077.3 0.000573655982066055 1743.94 +21 14995178503.23 0.000405637458275391 2466.294 +22 42412534553.7 0.0002868295306472961 3487.86 +23 119960421645.83 0.0002028192793228795 4932.574 +24 339298848306.95 0.0001434149577781024 6975.71 -- !sql_test_Char_Integer_2 -- \N \N @@ -650,17 +650,17 @@ 11 \N \N 12 \N \N 13 5354683.289 -5354374.711 -14 1.0698497094E7 -1.0698060906E7 -15 2.1386087359E7 -2.1385470641E7 -16 4.2761215033E7 -4.2760342967E7 -17 8.5511395608E7 -8.5510162392E7 -18 1.71011650989E8 -1.71009907011E8 -19 3.42012012161E8 -3.42009545839E8 -20 6.8401252294E8 -6.8400903506E8 -21 1.368013245294E9 -1.368008312706E9 -22 2.73601426686E9 -2.73600729114E9 -23 5.472015711574E9 -5.472005846426E9 -24 1.094401775471E10 -1.094400380329E10 +14 10698497.094 -10698060.906 +15 21386087.359 -21385470.641 +16 42761215.033 -42760342.967 +17 85511395.608 -85510162.392 +18 171011650.989 -171009907.011 +19 342012012.161 -342009545.839 +20 684012522.9400001 -684009035.0599999 +21 1368013245.294 -1368008312.706 +22 2736014266.86 -2736007291.14 +23 5472015711.574 -5472005846.426 +24 10944017754.71 -10944003803.29 -- !sql_test_Char_BigInt_notn_0 -- 1 \N \N @@ -676,17 +676,17 @@ 11 \N \N 12 \N \N 13 5354683.289 -5354374.711 -14 1.0698497094E7 -1.0698060906E7 -15 2.1386087359E7 -2.1385470641E7 -16 4.2761215033E7 -4.2760342967E7 -17 8.5511395608E7 -8.5510162392E7 -18 1.71011650989E8 -1.71009907011E8 -19 3.42012012161E8 -3.42009545839E8 -20 6.8401252294E8 -6.8400903506E8 -21 1.368013245294E9 -1.368008312706E9 -22 2.73601426686E9 -2.73600729114E9 -23 5.472015711574E9 -5.472005846426E9 -24 1.094401775471E10 -1.094400380329E10 +14 10698497.094 -10698060.906 +15 21386087.359 -21385470.641 +16 42761215.033 -42760342.967 +17 85511395.608 -85510162.392 +18 171011650.989 -171009907.011 +19 342012012.161 -342009545.839 +20 684012522.9400001 -684009035.0599999 +21 1368013245.294 -1368008312.706 +22 2736014266.86 -2736007291.14 +23 5472015711.574 -5472005846.426 +24 10944017754.71 -10944003803.29 -- !sql_test_Char_BigInt_1 -- \N \N \N \N @@ -702,18 +702,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 8.261449248809999E8 2.8814672588382655E-5 154.289 -14 2.333230460226E9 2.0385895712759032E-5 218.094 -15 6.594497426660999E9 1.4418880883413225E-5 308.359 -16 1.8645110749707E10 1.0197031256142457E-5 436.033 -17 5.2726630417631996E10 7.210880396727528E-6 616.608 -18 1.49119518169431E11 5.099029459423725E-6 871.989 -19 4.21754354242419E11 3.605620277833407E-6 1233.161 -20 1.19287375792926E12 2.549579704795851E-6 1743.94 -21 3.373916776183026E12 1.8028322860166585E-6 2466.294 -22 9.54282255564294E12 1.2747976092677522E-6 3487.86 -23 2.6991098096215145E13 9.01418911477623E-7 4932.574 -24 7.63422454311781E13 6.373997742569292E-7 6975.71 +13 826144924.8809999 2.881467258838266e-05 154.289 +14 2333230460.226 2.038589571275903e-05 218.094 +15 6594497426.660999 1.441888088341322e-05 308.359 +16 18645110749.707 1.019703125614246e-05 436.033 +17 52726630417.632 7.210880396727528e-06 616.6079999999999 +18 149119518169.431 5.099029459423725e-06 871.989 +19 421754354242.419 3.605620277833407e-06 1233.161 +20 1192873757929.26 2.549579704795851e-06 1743.94 +21 3373916776183.026 1.802832286016659e-06 2466.294 +22 9542822555642.939 1.274797609267752e-06 3487.86 +23 26991098096215.14 9.01418911477623e-07 4932.574 +24 76342245431178.09 6.373997742569292e-07 6975.71 -- !sql_test_Char_BigInt_notn_1 -- 1 \N \N \N @@ -728,18 +728,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 8.261449248809999E8 2.8814672588382655E-5 154.289 -14 2.333230460226E9 2.0385895712759032E-5 218.094 -15 6.594497426660999E9 1.4418880883413225E-5 308.359 -16 1.8645110749707E10 1.0197031256142457E-5 436.033 -17 5.2726630417631996E10 7.210880396727528E-6 616.608 -18 1.49119518169431E11 5.099029459423725E-6 871.989 -19 4.21754354242419E11 3.605620277833407E-6 1233.161 -20 1.19287375792926E12 2.549579704795851E-6 1743.94 -21 3.373916776183026E12 1.8028322860166585E-6 2466.294 -22 9.54282255564294E12 1.2747976092677522E-6 3487.86 -23 2.6991098096215145E13 9.01418911477623E-7 4932.574 -24 7.63422454311781E13 6.373997742569292E-7 6975.71 +13 826144924.8809999 2.881467258838266e-05 154.289 +14 2333230460.226 2.038589571275903e-05 218.094 +15 6594497426.660999 1.441888088341322e-05 308.359 +16 18645110749.707 1.019703125614246e-05 436.033 +17 52726630417.632 7.210880396727528e-06 616.6079999999999 +18 149119518169.431 5.099029459423725e-06 871.989 +19 421754354242.419 3.605620277833407e-06 1233.161 +20 1192873757929.26 2.549579704795851e-06 1743.94 +21 3373916776183.026 1.802832286016659e-06 2466.294 +22 9542822555642.939 1.274797609267752e-06 3487.86 +23 26991098096215.14 9.01418911477623e-07 4932.574 +24 76342245431178.09 6.373997742569292e-07 6975.71 -- !sql_test_Char_BigInt_2 -- \N \N @@ -861,18 +861,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07090799289E8 -1.07090490711E8 -14 2.13965863094E8 -2.13965426906E8 -15 4.27715953359E8 -4.27715336641E8 -16 8.55216081033E8 -8.55215208967E8 -17 1.710216261608E9 -1.710215028392E9 -18 3.420216516989E9 -3.420214773011E9 -19 6.840216878161E9 -6.840214411839E9 -20 1.368021738894E10 -1.368021390106E10 -21 2.7360218111294E10 -2.7360213178706E10 -22 5.472021913286E10 -5.472021215714E10 -23 1.09440220577574E11 -1.09440210712426E11 -24 2.1888022262071E11 -2.1888020866929E11 +13 107090799.289 -107090490.711 +14 213965863.094 -213965426.906 +15 427715953.359 -427715336.641 +16 855216081.033 -855215208.967 +17 1710216261.608 -1710215028.392 +18 3420216516.989 -3420214773.011 +19 6840216878.161 -6840214411.839 +20 13680217388.94 -13680213901.06 +21 27360218111.294 -27360213178.706 +22 54720219132.86 -54720212157.14 +23 109440220577.574 -109440210712.426 +24 218880222620.71 -218880208669.29 -- !sql_test_Char_LargeInt_notn_0 -- 1 \N \N @@ -887,18 +887,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07090799289E8 -1.07090490711E8 -14 2.13965863094E8 -2.13965426906E8 -15 4.27715953359E8 -4.27715336641E8 -16 8.55216081033E8 -8.55215208967E8 -17 1.710216261608E9 -1.710215028392E9 -18 3.420216516989E9 -3.420214773011E9 -19 6.840216878161E9 -6.840214411839E9 -20 1.368021738894E10 -1.368021390106E10 -21 2.7360218111294E10 -2.7360213178706E10 -22 5.472021913286E10 -5.472021215714E10 -23 1.09440220577574E11 -1.09440210712426E11 -24 2.1888022262071E11 -2.1888020866929E11 +13 107090799.289 -107090490.711 +14 213965863.094 -213965426.906 +15 427715953.359 -427715336.641 +16 855216081.033 -855215208.967 +17 1710216261.608 -1710215028.392 +18 3420216516.989 -3420214773.011 +19 6840216878.161 -6840214411.839 +20 13680217388.94 -13680213901.06 +21 27360218111.294 -27360213178.706 +22 54720219132.86 -54720212157.14 +23 109440220577.574 -109440210712.426 +24 218880222620.71 -218880208669.29 -- !sql_test_Char_LargeInt_1 -- \N \N \N \N @@ -914,18 +914,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.6522908526404999E10 1.4407327549479227E-6 154.289 -14 4.666462338063E10 1.0192944759893579E-6 218.094 -15 1.31889968576555E11 7.209439346087047E-7 308.359 -16 3.7290224333628503E11 5.098515240562514E-7 436.033 -17 1.0545326484321599E12 3.6054400613321483E-7 616.608 -18 2.9823904200679053E12 2.549514681259228E-7 871.989 -19 8.435087165003846E12 1.8028101217852761E-7 1233.161 -20 2.38574752719413E13 1.2747898463409055E-7 1743.94 -21 6.7478335683969625E13 9.014161408668239E-8 2466.294 -22 1.9085645133956972E14 6.37398803876735E-8 3487.86 -23 5.398219622449202E14 4.507094554711209E-8 4932.574 -24 1.526844909076983E15 3.186998870338216E-8 6975.71 +13 16522908526.405 1.440732754947923e-06 154.289 +14 46664623380.63 1.019294475989358e-06 218.094 +15 131889968576.555 7.209439346087047e-07 308.359 +16 372902243336.285 5.098515240562514e-07 436.033 +17 1054532648432.16 3.605440061332148e-07 616.6079999999999 +18 2982390420067.905 2.549514681259228e-07 871.989 +19 8435087165003.846 1.802810121785276e-07 1233.161 +20 23857475271941.3 1.274789846340906e-07 1743.94 +21 67478335683969.62 9.014161408668239e-08 2466.294 +22 190856451339569.7 6.37398803876735e-08 3487.86 +23 539821962244920.2 4.507094554711209e-08 4932.574 +24 1526844909076983 3.186998870338216e-08 6975.71 -- !sql_test_Char_LargeInt_notn_1 -- 1 \N \N \N @@ -940,18 +940,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.6522908526404999E10 1.4407327549479227E-6 154.289 -14 4.666462338063E10 1.0192944759893579E-6 218.094 -15 1.31889968576555E11 7.209439346087047E-7 308.359 -16 3.7290224333628503E11 5.098515240562514E-7 436.033 -17 1.0545326484321599E12 3.6054400613321483E-7 616.608 -18 2.9823904200679053E12 2.549514681259228E-7 871.989 -19 8.435087165003846E12 1.8028101217852761E-7 1233.161 -20 2.38574752719413E13 1.2747898463409055E-7 1743.94 -21 6.7478335683969625E13 9.014161408668239E-8 2466.294 -22 1.9085645133956972E14 6.37398803876735E-8 3487.86 -23 5.398219622449202E14 4.507094554711209E-8 4932.574 -24 1.526844909076983E15 3.186998870338216E-8 6975.71 +13 16522908526.405 1.440732754947923e-06 154.289 +14 46664623380.63 1.019294475989358e-06 218.094 +15 131889968576.555 7.209439346087047e-07 308.359 +16 372902243336.285 5.098515240562514e-07 436.033 +17 1054532648432.16 3.605440061332148e-07 616.6079999999999 +18 2982390420067.905 2.549514681259228e-07 871.989 +19 8435087165003.846 1.802810121785276e-07 1233.161 +20 23857475271941.3 1.274789846340906e-07 1743.94 +21 67478335683969.62 9.014161408668239e-08 2466.294 +22 190856451339569.7 6.37398803876735e-08 3487.86 +23 539821962244920.2 4.507094554711209e-08 4932.574 +24 1526844909076983 3.186998870338216e-08 6975.71 -- !sql_test_Char_LargeInt_2 -- \N \N @@ -1073,17 +1073,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.3890000014901 154.18899999850987 -14 218.29400000298023 217.89399999701976 -15 308.6590000119209 308.05899998807905 -16 436.4330000059605 435.63299999403955 -17 617.108 616.108 +13 154.3890000014901 154.1889999985099 +14 218.2940000029802 217.8939999970198 +15 308.6590000119209 308.0589999880791 +16 436.4330000059605 435.6329999940396 +17 617.1079999999999 616.1079999999999 18 872.5890000238419 871.3889999761582 -19 1233.8609999880791 1232.461000011921 -20 1744.740000011921 1743.1399999880791 -21 2467.193999976158 2465.3940000238417 +19 1233.860999988079 1232.461000011921 +20 1744.740000011921 1743.139999988079 +21 2467.193999976158 2465.394000023842 22 3488.86 3486.86 -23 4933.6740000238415 4931.473999976158 +23 4933.674000023841 4931.473999976158 24 6976.910000047684 6974.509999952316 -- !sql_test_Char_Float_notn_0 -- @@ -1099,17 +1099,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.3890000014901 154.18899999850987 -14 218.29400000298023 217.89399999701976 -15 308.6590000119209 308.05899998807905 -16 436.4330000059605 435.63299999403955 -17 617.108 616.108 +13 154.3890000014901 154.1889999985099 +14 218.2940000029802 217.8939999970198 +15 308.6590000119209 308.0589999880791 +16 436.4330000059605 435.6329999940396 +17 617.1079999999999 616.1079999999999 18 872.5890000238419 871.3889999761582 -19 1233.8609999880791 1232.461000011921 -20 1744.740000011921 1743.1399999880791 -21 2467.193999976158 2465.3940000238417 +19 1233.860999988079 1232.461000011921 +20 1744.740000011921 1743.139999988079 +21 2467.193999976158 2465.394000023842 22 3488.86 3486.86 -23 4933.6740000238415 4931.473999976158 +23 4933.674000023841 4931.473999976158 24 6976.910000047684 6974.509999952316 -- !sql_test_Char_Float_1 -- @@ -1126,17 +1126,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 15.428900229908525 1542.8899770091475 0.08899770224093118 -14 43.618800649970765 1090.469983750731 0.09399675154685383 -15 92.50770367592573 1027.8632924897156 0.2589877572059436 -16 174.4132025989592 1090.0824837565053 0.032993503093734944 -17 308.304 1233.216 0.10799999999994725 -18 523.1934207898379 1453.3149422504528 0.18896535778048928 -19 863.2126852995754 1761.6586014294387 0.4610209927559481 -20 1395.1520207893848 2179.9249675165865 0.7399740242958615 -21 2219.664541198969 2740.326739260534 0.29406532669054286 +13 15.42890022990852 1542.889977009148 0.08899770224093118 +14 43.61880064997077 1090.469983750731 0.09399675154685383 +15 92.50770367592573 1027.863292489716 0.2589877572059436 +16 174.4132025989592 1090.082483756505 0.03299350309373494 +17 308.304 1233.216 0.1079999999999472 +18 523.1934207898379 1453.314942250453 0.1889653577804893 +19 863.2126852995754 1761.658601429439 0.4610209927559481 +20 1395.152020789385 2179.924967516587 0.7399740242958615 +21 2219.664541198969 2740.326739260534 0.2940653266905429 22 3487.86 3487.86 0.8600000000001273 -23 5425.831517601728 4484.1580846266725 0.17389309310874523 +23 5425.831517601728 4484.158084626672 0.1738930931087452 24 8370.852332627774 5813.091435675166 0.1097228145599729 -- !sql_test_Char_Float_notn_1 -- @@ -1152,17 +1152,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 15.428900229908525 1542.8899770091475 0.08899770224093118 -14 43.618800649970765 1090.469983750731 0.09399675154685383 -15 92.50770367592573 1027.8632924897156 0.2589877572059436 -16 174.4132025989592 1090.0824837565053 0.032993503093734944 -17 308.304 1233.216 0.10799999999994725 -18 523.1934207898379 1453.3149422504528 0.18896535778048928 -19 863.2126852995754 1761.6586014294387 0.4610209927559481 -20 1395.1520207893848 2179.9249675165865 0.7399740242958615 -21 2219.664541198969 2740.326739260534 0.29406532669054286 +13 15.42890022990852 1542.889977009148 0.08899770224093118 +14 43.61880064997077 1090.469983750731 0.09399675154685383 +15 92.50770367592573 1027.863292489716 0.2589877572059436 +16 174.4132025989592 1090.082483756505 0.03299350309373494 +17 308.304 1233.216 0.1079999999999472 +18 523.1934207898379 1453.314942250453 0.1889653577804893 +19 863.2126852995754 1761.658601429439 0.4610209927559481 +20 1395.152020789385 2179.924967516587 0.7399740242958615 +21 2219.664541198969 2740.326739260534 0.2940653266905429 22 3487.86 3487.86 0.8600000000001273 -23 5425.831517601728 4484.1580846266725 0.17389309310874523 +23 5425.831517601728 4484.158084626672 0.1738930931087452 24 8370.852332627774 5813.091435675166 0.1097228145599729 -- !sql_test_Char_Float_2 -- @@ -1285,17 +1285,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.8134 153.76459999999997 +13 154.8134 153.7646 14 218.8356 217.3524 -15 309.3958 307.32219999999995 +15 309.3958 307.3222 16 437.4821 434.5839 17 618.6389999999999 614.577 18 874.8438 869.1342000000001 19 1237.1828 1229.1392 -20 1749.6145000000001 1738.2655 -21 2474.3080999999997 2458.2799 -22 3499.1848 3476.5352000000003 -23 4948.5826 4916.5653999999995 +20 1749.6145 1738.2655 +21 2474.3081 2458.2799 +22 3499.1848 3476.5352 +23 4948.5826 4916.565399999999 24 6998.344 6953.076 -- !sql_test_Char_Double_notn_0 -- @@ -1311,17 +1311,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 154.8134 153.76459999999997 +13 154.8134 153.7646 14 218.8356 217.3524 -15 309.3958 307.32219999999995 +15 309.3958 307.3222 16 437.4821 434.5839 17 618.6389999999999 614.577 18 874.8438 869.1342000000001 19 1237.1828 1229.1392 -20 1749.6145000000001 1738.2655 -21 2474.3080999999997 2458.2799 -22 3499.1848 3476.5352000000003 -23 4948.5826 4916.5653999999995 +20 1749.6145 1738.2655 +21 2474.3081 2458.2799 +22 3499.1848 3476.5352 +23 4948.5826 4916.565399999999 24 6998.344 6953.076 -- !sql_test_Char_Double_1 -- @@ -1338,17 +1338,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 80.90915159999999 294.2200610221205 0.11539999999999395 +13 80.90915159999999 294.2200610221205 0.115399999999994 14 161.7385104 294.0857605177993 0.06359999999998323 -15 319.70661119999994 297.41415895061726 0.4293999999999971 +15 319.7066111999999 297.4141589506173 0.4293999999999971 16 631.8554203 300.8991788006349 1.302999999999999 -17 1252.330848 303.59822747415063 1.2149999999999053 -18 2489.3541972000003 305.44661622530475 1.2750000000000314 -19 4959.5269098 306.61917549356014 2.4902000000001134 +17 1252.330848 303.5982274741506 1.214999999999905 +18 2489.3541972 305.4466162253048 1.275000000000031 +19 4959.5269098 306.6191754935601 2.490200000000113 20 9895.98753 307.3292801127853 1.868500000000024 -21 19765.126745399997 307.74435058209906 5.965300000000141 -22 39499.316928 307.9842469624188 11.146400000000202 -23 78963.6041364 308.1202603600564 1.9251999999992222 +21 19765.1267454 307.7443505820991 5.965300000000141 +22 39499.316928 307.9842469624188 11.1464000000002 +23 78963.6041364 308.1202603600564 1.925199999999222 24 157888.22014 308.1960766987718 4.437999999999931 -- !sql_test_Char_Double_notn_1 -- @@ -1364,17 +1364,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 80.90915159999999 294.2200610221205 0.11539999999999395 +13 80.90915159999999 294.2200610221205 0.115399999999994 14 161.7385104 294.0857605177993 0.06359999999998323 -15 319.70661119999994 297.41415895061726 0.4293999999999971 +15 319.7066111999999 297.4141589506173 0.4293999999999971 16 631.8554203 300.8991788006349 1.302999999999999 -17 1252.330848 303.59822747415063 1.2149999999999053 -18 2489.3541972000003 305.44661622530475 1.2750000000000314 -19 4959.5269098 306.61917549356014 2.4902000000001134 +17 1252.330848 303.5982274741506 1.214999999999905 +18 2489.3541972 305.4466162253048 1.275000000000031 +19 4959.5269098 306.6191754935601 2.490200000000113 20 9895.98753 307.3292801127853 1.868500000000024 -21 19765.126745399997 307.74435058209906 5.965300000000141 -22 39499.316928 307.9842469624188 11.146400000000202 -23 78963.6041364 308.1202603600564 1.9251999999992222 +21 19765.1267454 307.7443505820991 5.965300000000141 +22 39499.316928 307.9842469624188 11.1464000000002 +23 78963.6041364 308.1202603600564 1.925199999999222 24 157888.22014 308.1960766987718 4.437999999999931 -- !sql_test_Char_Double_2 -- @@ -1497,18 +1497,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 178.684 129.89399999999998 -14 252.578 183.60999999999999 -15 357.115 259.60299999999995 -16 504.976 367.09000000000003 -17 714.102 519.1139999999999 -18 1009.863 734.115 -19 1428.141 1038.181 -20 2019.681 1468.199 -21 2856.249 2076.339 -22 4039.339 2936.3810000000003 -23 5712.482 4152.665999999999 -24 8078.667 5872.753 +13 178.684200000 129.893800000 +14 252.577700000 183.610300000 +15 357.114800000 259.603200000 +16 504.975900000 367.090100000 +17 714.102200000 519.113800000 +18 1009.862600000 734.115400000 +19 1428.140800000 1038.181200000 +20 2019.681000000 1468.199000000 +21 2856.249300000 2076.338700000 +22 4039.339000000 2936.381000000 +23 5712.482400000 4152.665600000 +24 8078.666500000 5872.753500000 -- !sql_test_Char_DecimalV2_notn_0 -- 1 \N \N @@ -1523,18 +1523,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 178.684 129.89399999999998 -14 252.578 183.60999999999999 -15 357.115 259.60299999999995 -16 504.976 367.09000000000003 -17 714.102 519.1139999999999 -18 1009.863 734.115 -19 1428.141 1038.181 -20 2019.681 1468.199 -21 2856.249 2076.339 -22 4039.339 2936.3810000000003 -23 5712.482 4152.665999999999 -24 8078.667 5872.753 +13 178.684200000 129.893800000 +14 252.577700000 183.610300000 +15 357.114800000 259.603200000 +16 504.975900000 367.090100000 +17 714.102200000 519.113800000 +18 1009.862600000 734.115400000 +19 1428.140800000 1038.181200000 +20 2019.681000000 1468.199000000 +21 2856.249300000 2076.338700000 +22 4039.339000000 2936.381000000 +23 5712.482400000 4152.665600000 +24 8078.666500000 5872.753500000 -- !sql_test_Char_DecimalV2_1 -- \N \N \N \N @@ -1550,18 +1550,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3763.880155 6.324615699938511 7.91899999999999 -14 7520.753496 6.32449831806055 11.189999999999984 -15 15034.351404 6.324534416276971 15.822999999999979 -16 30061.423119 6.324543463440814 22.37500000000003 -17 60115.580352 6.324573819927379 31.64399999999995 -18 120224.611386 6.324535445406676 44.74500000000006 -19 240441.73178 6.324551236024209 63.28100000000012 -20 480875.75954 6.324558190475845 89.49400000000014 -21 961743.6767699999 6.324560526214563 126.56399999999996 -22 1923481.5449400002 6.324556329434121 178.98599999999988 -23 3846953.9231919996 6.324558794114177 253.12599999999952 -24 7693908.174470001 6.324552997079668 357.9679999999994 +13 3763.911012800 6.324563848625959 7.917800000 +14 7520.688067800 6.324553339693827 11.191800000 +15 15034.289732200 6.324560359998195 15.824200000 +16 30061.379515700 6.324552637037317 22.375600000 +17 60115.703673600 6.324560845670819 31.642800000 +18 120224.262590400 6.324553794199905 44.747400000 +19 240441.485147800 6.324557723415452 63.282200000 +20 480875.759540000 6.324558190475845 89.494000000 +21 961744.416658200 6.324555660610331 126.562200000 +22 1923481.544940000 6.324556329434121 178.986000000 +23 3846955.896221600 6.324555550369761 253.123600000 +24 7693904.686615000 6.324555864170527 357.971000000 -- !sql_test_Char_DecimalV2_notn_1 -- 1 \N \N \N @@ -1576,18 +1576,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3763.880155 6.324615699938511 7.91899999999999 -14 7520.753496 6.32449831806055 11.189999999999984 -15 15034.351404 6.324534416276971 15.822999999999979 -16 30061.423119 6.324543463440814 22.37500000000003 -17 60115.580352 6.324573819927379 31.64399999999995 -18 120224.611386 6.324535445406676 44.74500000000006 -19 240441.73178 6.324551236024209 63.28100000000012 -20 480875.75954 6.324558190475845 89.49400000000014 -21 961743.6767699999 6.324560526214563 126.56399999999996 -22 1923481.5449400002 6.324556329434121 178.98599999999988 -23 3846953.9231919996 6.324558794114177 253.12599999999952 -24 7693908.174470001 6.324552997079668 357.9679999999994 +13 3763.911012800 6.324563848625959 7.917800000 +14 7520.688067800 6.324553339693827 11.191800000 +15 15034.289732200 6.324560359998195 15.824200000 +16 30061.379515700 6.324552637037317 22.375600000 +17 60115.703673600 6.324560845670819 31.642800000 +18 120224.262590400 6.324553794199905 44.747400000 +19 240441.485147800 6.324557723415452 63.282200000 +20 480875.759540000 6.324558190475845 89.494000000 +21 961744.416658200 6.324555660610331 126.562200000 +22 1923481.544940000 6.324556329434121 178.986000000 +23 3846955.896221600 6.324555550369761 253.123600000 +24 7693904.686615000 6.324555864170527 357.971000000 -- !sql_test_Char_DecimalV2_2 -- \N \N @@ -1711,14 +1711,14 @@ 12 \N \N 13 299.633 8.944999999999993 14 374.549 61.63899999999998 -15 475.92499999999995 140.79299999999998 +15 475.925 140.793 16 614.71 257.356 -17 806.396 426.81999999999994 +17 806.396 426.8199999999999 18 1072.888 671.09 -19 1445.171 1021.1510000000001 -20 1967.0610000000001 1520.819 +19 1445.171 1021.151 +20 1967.061 1520.819 21 2700.526 2232.062 -22 3733.203 3242.5170000000003 +22 3733.203 3242.517 23 5189.027999999999 4676.12 24 7243.275 6708.145 @@ -1737,14 +1737,14 @@ 12 \N \N 13 299.633 8.944999999999993 14 374.549 61.63899999999998 -15 475.92499999999995 140.79299999999998 +15 475.925 140.793 16 614.71 257.356 -17 806.396 426.81999999999994 +17 806.396 426.8199999999999 18 1072.888 671.09 -19 1445.171 1021.1510000000001 -20 1967.0610000000001 1520.819 +19 1445.171 1021.151 +20 1967.061 1520.819 21 2700.526 2232.062 -22 3733.203 3242.5170000000003 +22 3733.203 3242.517 23 5189.027999999999 4676.12 24 7243.275 6708.145 @@ -1763,17 +1763,17 @@ 11 \N \N \N 12 \N \N \N 13 22424.980416 1.061543648172611 8.944999999999993 -14 34121.89677 1.3939727078073565 61.63899999999998 -15 51670.484194 1.8402241504839882 140.79299999999998 -16 77909.068341 2.440342069768353 78.67900000000003 -17 117024.79910399999 3.248930385482749 47.243999999999915 +14 34121.89677 1.393972707807356 61.63899999999998 +15 51670.484194 1.840224150483988 140.793 +16 77909.06834100001 2.440342069768353 78.67900000000003 +17 117024.799104 3.248930385482749 47.24399999999991 18 175181.718111 4.34043474581755 68.39300000000003 19 261442.46361 5.816522805528042 173.1110000000001 -20 389109.63674000005 7.816117711914163 182.093 -21 577684.976208 10.529278663888794 123.97399999999988 -22 855722.03598 14.216260500605276 53.05800000000028 -23 1264978.332596 19.233757321001036 59.94799999999947 -24 1866455.8461499999 26.071085530618728 19.020000000000095 +20 389109.63674 7.816117711914163 182.093 +21 577684.976208 10.52927866388879 123.9739999999999 +22 855722.03598 14.21626050060528 53.05800000000028 +23 1264978.332596 19.23375732100104 59.94799999999947 +24 1866455.84615 26.07108553061873 19.0200000000001 -- !sql_test_Char_Decimal32V3_notn_1 -- 1 \N \N \N @@ -1789,17 +1789,17 @@ 11 \N \N \N 12 \N \N \N 13 22424.980416 1.061543648172611 8.944999999999993 -14 34121.89677 1.3939727078073565 61.63899999999998 -15 51670.484194 1.8402241504839882 140.79299999999998 -16 77909.068341 2.440342069768353 78.67900000000003 -17 117024.79910399999 3.248930385482749 47.243999999999915 +14 34121.89677 1.393972707807356 61.63899999999998 +15 51670.484194 1.840224150483988 140.793 +16 77909.06834100001 2.440342069768353 78.67900000000003 +17 117024.799104 3.248930385482749 47.24399999999991 18 175181.718111 4.34043474581755 68.39300000000003 19 261442.46361 5.816522805528042 173.1110000000001 -20 389109.63674000005 7.816117711914163 182.093 -21 577684.976208 10.529278663888794 123.97399999999988 -22 855722.03598 14.216260500605276 53.05800000000028 -23 1264978.332596 19.233757321001036 59.94799999999947 -24 1866455.8461499999 26.071085530618728 19.020000000000095 +20 389109.63674 7.816117711914163 182.093 +21 577684.976208 10.52927866388879 123.9739999999999 +22 855722.03598 14.21626050060528 53.05800000000028 +23 1264978.332596 19.23375732100104 59.94799999999947 +24 1866455.84615 26.07108553061873 19.0200000000001 -- !sql_test_Char_Decimal32V3_2 -- \N \N @@ -1921,15 +1921,15 @@ 10 \N \N 11 \N \N 12 \N \N -13 14721.634660000002 -14413.05666 -14 15896.55077 -15460.362770000002 +13 14721.63466 -14413.05666 +14 15896.55077 -15460.36277 15 17097.92688 -16481.20888 16 18336.71199 -17464.64599 -17 19628.3981 -18395.182099999998 +17 19628.3981 -18395.1821 18 20994.89021 -19250.91221 19 22467.17332 -20000.85132 20 24089.06343 -20601.18343 -21 25922.52854 -20989.940540000003 +21 25922.52854 -20989.94054 22 28055.20565 -21079.48565 23 30611.03076 -20745.88276 24 33765.27787 -19813.85787 @@ -1947,15 +1947,15 @@ 10 \N \N 11 \N \N 12 \N \N -13 14721.634660000002 -14413.05666 -14 15896.55077 -15460.362770000002 +13 14721.63466 -14413.05666 +14 15896.55077 -15460.36277 15 17097.92688 -16481.20888 16 18336.71199 -17464.64599 -17 19628.3981 -18395.182099999998 +17 19628.3981 -18395.1821 18 20994.89021 -19250.91221 19 22467.17332 -20000.85132 20 24089.06343 -20601.18343 -21 25922.52854 -20989.940540000003 +21 25922.52854 -20989.94054 22 28055.20565 -21079.48565 23 30611.03076 -20745.88276 24 33765.27787 -19813.85787 @@ -1974,18 +1974,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2247581.1945357397 0.010591428500502814 154.289 -14 3419377.35079638 0.013910425190399653 218.094 -15 5177214.361908919 0.018366106990003128 308.359 -16 7805286.762046671 0.024358461499900903 436.033 -17 1.1722821869980797E7 0.03243292697619252 616.608 -18 1.754694850320669E7 0.04333316507893347 871.989 -19 2.6184955866543524E7 0.05807479912020697 1233.161 -20 3.89685545545142E7 0.07804566421229207 1743.94 -21 5.784997050859476E7 0.10514449775790824 2466.294 -22 8.5687462198809E7 0.1419713814300488 3487.86 -23 1.2666088817450024E8 0.19208997044104295 4932.574 -24 1.868762564864377E8 0.26038904523770506 6975.71 +13 2247581.19453574 0.01059142850050281 154.289 +14 3419377.35079638 0.01391042519039965 218.094 +15 5177214.361908919 0.01836610699000313 308.359 +16 7805286.762046671 0.0243584614999009 436.033 +17 11722821.8699808 0.03243292697619252 616.6079999999999 +18 17546948.50320669 0.04333316507893347 871.989 +19 26184955.86654352 0.05807479912020697 1233.161 +20 38968554.5545142 0.07804566421229207 1743.94 +21 57849970.50859476 0.1051444977579082 2466.294 +22 85687462.198809 0.1419713814300488 3487.86 +23 126660888.1745002 0.192089970441043 4932.574 +24 186876256.4864377 0.2603890452377051 6975.71 -- !sql_test_Char_Decimal64V3_notn_1 -- 1 \N \N \N @@ -2000,18 +2000,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2247581.1945357397 0.010591428500502814 154.289 -14 3419377.35079638 0.013910425190399653 218.094 -15 5177214.361908919 0.018366106990003128 308.359 -16 7805286.762046671 0.024358461499900903 436.033 -17 1.1722821869980797E7 0.03243292697619252 616.608 -18 1.754694850320669E7 0.04333316507893347 871.989 -19 2.6184955866543524E7 0.05807479912020697 1233.161 -20 3.89685545545142E7 0.07804566421229207 1743.94 -21 5.784997050859476E7 0.10514449775790824 2466.294 -22 8.5687462198809E7 0.1419713814300488 3487.86 -23 1.2666088817450024E8 0.19208997044104295 4932.574 -24 1.868762564864377E8 0.26038904523770506 6975.71 +13 2247581.19453574 0.01059142850050281 154.289 +14 3419377.35079638 0.01391042519039965 218.094 +15 5177214.361908919 0.01836610699000313 308.359 +16 7805286.762046671 0.0243584614999009 436.033 +17 11722821.8699808 0.03243292697619252 616.6079999999999 +18 17546948.50320669 0.04333316507893347 871.989 +19 26184955.86654352 0.05807479912020697 1233.161 +20 38968554.5545142 0.07804566421229207 1743.94 +21 57849970.50859476 0.1051444977579082 2466.294 +22 85687462.198809 0.1419713814300488 3487.86 +23 126660888.1745002 0.192089970441043 4932.574 +24 186876256.4864377 0.2603890452377051 6975.71 -- !sql_test_Char_Decimal64V3_2 -- \N \N @@ -2133,18 +2133,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.45679165634677E8 -1.4567885705667698E8 -14 1.5679034055078802E8 -1.56789904362788E8 -15 1.67901541926899E8 -1.67900925208899E8 -16 1.7901278071201E8 -1.7901190864601E8 -17 1.90124072398121E8 -1.9012283918212098E8 -18 2.01235438890232E8 -2.01233694912232E8 -19 2.12346911173343E8 -2.1234444485134298E8 -20 2.23458533063454E8 -2.23455045183454E8 -21 2.34570366528565E8 -2.34565433940565E8 -22 2.4568249920567602E8 -2.45675523485676E8 -23 2.56795055030787E8 -2.56785189882787E8 -24 2.67908209277898E8 -2.67894257857898E8 +13 145679165.634677 -145678857.056677 +14 156790340.550788 -156789904.362788 +15 167901541.926899 -167900925.208899 +16 179012780.71201 -179011908.64601 +17 190124072.398121 -190122839.182121 +18 201235438.890232 -201233694.912232 +19 212346911.173343 -212344444.851343 +20 223458533.063454 -223455045.183454 +21 234570366.528565 -234565433.940565 +22 245682499.205676 -245675523.485676 +23 256795055.030787 -256785189.882787 +24 267908209.277898 -267894257.857898 -- !sql_test_Char_Decimal128V3_notn_0 -- 1 \N \N @@ -2159,18 +2159,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.45679165634677E8 -1.4567885705667698E8 -14 1.5679034055078802E8 -1.56789904362788E8 -15 1.67901541926899E8 -1.67900925208899E8 -16 1.7901278071201E8 -1.7901190864601E8 -17 1.90124072398121E8 -1.9012283918212098E8 -18 2.01235438890232E8 -2.01233694912232E8 -19 2.12346911173343E8 -2.1234444485134298E8 -20 2.23458533063454E8 -2.23455045183454E8 -21 2.34570366528565E8 -2.34565433940565E8 -22 2.4568249920567602E8 -2.45675523485676E8 -23 2.56795055030787E8 -2.56785189882787E8 -24 2.67908209277898E8 -2.67894257857898E8 +13 145679165.634677 -145678857.056677 +14 156790340.550788 -156789904.362788 +15 167901541.926899 -167900925.208899 +16 179012780.71201 -179011908.64601 +17 190124072.398121 -190122839.182121 +18 201235438.890232 -201233694.912232 +19 212346911.173343 -212344444.851343 +20 223458533.063454 -223455045.183454 +21 234570366.528565 -234565433.940565 +22 245682499.205676 -245675523.485676 +23 256795055.030787 -256785189.882787 +24 267908209.277898 -267894257.857898 -- !sql_test_Char_Decimal128V3_1 -- \N \N \N \N @@ -2186,18 +2186,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.2476668981513157E10 1.0591024648972434E-6 154.289 -14 3.419498496709072E10 1.3909932372181646E-6 218.094 -15 5.177385648176376E10 1.8365499374088881E-6 308.359 -16 7.805528968742278E10 2.4357705653308882E-6 436.033 -17 1.1723164382783492E11 3.2431979391363426E-6 616.608 -18 1.754743287576384E11 4.333196892698764E-6 871.989 -19 2.618564086433789E11 5.807327992464816E-6 1233.161 -20 3.8969523282395636E11 7.80437241061635E-6 1743.94 -21 5.785134049411062E11 1.0514200781665932E-5 2466.294 -22 8.568939965121295E11 1.419681714321335E-5 3487.86 -23 1.2666362814871636E12 1.9208581517110574E-5 4932.574 -24 1.8688013140119219E12 2.603836461332324E-5 6975.71 +13 22476668981.51316 1.059102464897243e-06 154.289 +14 34194984967.09072 1.390993237218165e-06 218.094 +15 51773856481.76376 1.836549937408888e-06 308.359 +16 78055289687.42278 2.435770565330888e-06 436.033 +17 117231643827.8349 3.243197939136343e-06 616.6079999999999 +18 175474328757.6384 4.333196892698764e-06 871.989 +19 261856408643.3789 5.807327992464816e-06 1233.161 +20 389695232823.9564 7.804372410616349e-06 1743.94 +21 578513404941.1062 1.051420078166593e-05 2466.294 +22 856893996512.1295 1.419681714321335e-05 3487.86 +23 1266636281487.164 1.920858151711057e-05 4932.574 +24 1868801314011.922 2.603836461332324e-05 6975.71 -- !sql_test_Char_Decimal128V3_notn_1 -- 1 \N \N \N @@ -2212,18 +2212,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.2476668981513157E10 1.0591024648972434E-6 154.289 -14 3.419498496709072E10 1.3909932372181646E-6 218.094 -15 5.177385648176376E10 1.8365499374088881E-6 308.359 -16 7.805528968742278E10 2.4357705653308882E-6 436.033 -17 1.1723164382783492E11 3.2431979391363426E-6 616.608 -18 1.754743287576384E11 4.333196892698764E-6 871.989 -19 2.618564086433789E11 5.807327992464816E-6 1233.161 -20 3.8969523282395636E11 7.80437241061635E-6 1743.94 -21 5.785134049411062E11 1.0514200781665932E-5 2466.294 -22 8.568939965121295E11 1.419681714321335E-5 3487.86 -23 1.2666362814871636E12 1.9208581517110574E-5 4932.574 -24 1.8688013140119219E12 2.603836461332324E-5 6975.71 +13 22476668981.51316 1.059102464897243e-06 154.289 +14 34194984967.09072 1.390993237218165e-06 218.094 +15 51773856481.76376 1.836549937408888e-06 308.359 +16 78055289687.42278 2.435770565330888e-06 436.033 +17 117231643827.8349 3.243197939136343e-06 616.6079999999999 +18 175474328757.6384 4.333196892698764e-06 871.989 +19 261856408643.3789 5.807327992464816e-06 1233.161 +20 389695232823.9564 7.804372410616349e-06 1743.94 +21 578513404941.1062 1.051420078166593e-05 2466.294 +22 856893996512.1295 1.419681714321335e-05 3487.86 +23 1266636281487.164 1.920858151711057e-05 4932.574 +24 1868801314011.922 2.603836461332324e-05 6975.71 -- !sql_test_Char_Decimal128V3_2 -- \N \N @@ -2345,18 +2345,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 308.578 0.0 -14 436.188 0.0 -15 616.718 0.0 -16 872.066 0.0 -17 1233.216 0.0 -18 1743.978 0.0 -19 2466.322 0.0 -20 3487.88 0.0 -21 4932.588 0.0 -22 6975.72 0.0 -23 9865.148 0.0 -24 13951.42 0.0 +13 308.578 0 +14 436.188 0 +15 616.718 0 +16 872.066 0 +17 1233.216 0 +18 1743.978 0 +19 2466.322 0 +20 3487.88 0 +21 4932.588 0 +22 6975.72 0 +23 9865.147999999999 0 +24 13951.42 0 -- !sql_test_Char_Char_notn_0 -- 1 \N \N @@ -2371,18 +2371,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 308.578 0.0 -14 436.188 0.0 -15 616.718 0.0 -16 872.066 0.0 -17 1233.216 0.0 -18 1743.978 0.0 -19 2466.322 0.0 -20 3487.88 0.0 -21 4932.588 0.0 -22 6975.72 0.0 -23 9865.148 0.0 -24 13951.42 0.0 +13 308.578 0 +14 436.188 0 +15 616.718 0 +16 872.066 0 +17 1233.216 0 +18 1743.978 0 +19 2466.322 0 +20 3487.88 0 +21 4932.588 0 +22 6975.72 0 +23 9865.147999999999 0 +24 13951.42 0 -- !sql_test_Char_Char_1 -- \N \N \N \N @@ -2398,18 +2398,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 23805.095520999996 1.0 0.0 -14 47564.992836 1.0 0.0 -15 95085.27288099998 1.0 0.0 -16 190124.777089 1.0 0.0 -17 380205.4256639999 1.0 0.0 -18 760364.8161210001 1.0 0.0 -19 1520686.0519210002 1.0 0.0 -20 3041326.7236 1.0 0.0 -21 6082606.094435999 1.0 0.0 -22 1.2165167379600001E7 1.0 0.0 -23 2.4330286265475996E7 1.0 0.0 -24 4.86605300041E7 1.0 0.0 +13 23805.095521 1 0 +14 47564.992836 1 0 +15 95085.27288099998 1 0 +16 190124.777089 1 0 +17 380205.4256639999 1 0 +18 760364.8161210001 1 0 +19 1520686.051921 1 0 +20 3041326.7236 1 0 +21 6082606.094435999 1 0 +22 12165167.3796 1 0 +23 24330286.265476 1 0 +24 48660530.0041 1 0 -- !sql_test_Char_Char_notn_1 -- 1 \N \N \N @@ -2424,18 +2424,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 23805.095520999996 1.0 0.0 -14 47564.992836 1.0 0.0 -15 95085.27288099998 1.0 0.0 -16 190124.777089 1.0 0.0 -17 380205.4256639999 1.0 0.0 -18 760364.8161210001 1.0 0.0 -19 1520686.0519210002 1.0 0.0 -20 3041326.7236 1.0 0.0 -21 6082606.094435999 1.0 0.0 -22 1.2165167379600001E7 1.0 0.0 -23 2.4330286265475996E7 1.0 0.0 -24 4.86605300041E7 1.0 0.0 +13 23805.095521 1 0 +14 47564.992836 1 0 +15 95085.27288099998 1 0 +16 190124.777089 1 0 +17 380205.4256639999 1 0 +18 760364.8161210001 1 0 +19 1520686.051921 1 0 +20 3041326.7236 1 0 +21 6082606.094435999 1 0 +22 12165167.3796 1 0 +23 24330286.265476 1 0 +24 48660530.0041 1 0 -- !sql_test_Char_Char_2 -- \N \N @@ -2557,16 +2557,16 @@ 10 \N \N 11 \N \N 12 \N \N -13 2473.41 -2164.8320000000003 +13 2473.41 -2164.832 14 3496.176 -3059.988 15 4943.1 -4326.382 -16 6989.7210000000005 -6117.655 -17 9884.338 -8651.122 -18 13978.126 -12234.148000000001 +16 6989.721 -6117.655 +17 9884.338 -8651.121999999999 +18 13978.126 -12234.148 19 19767.746 -17301.424 -20 27955.593999999997 -24467.714 +20 27955.594 -24467.714 21 39535.025 -34602.437 -22 55910.859000000004 -48935.139 +22 55910.859 -48935.139 23 79069.817 -69204.66900000001 24 111821.553 -97870.13299999999 @@ -2583,16 +2583,16 @@ 10 \N \N 11 \N \N 12 \N \N -13 2473.41 -2164.8320000000003 +13 2473.41 -2164.832 14 3496.176 -3059.988 15 4943.1 -4326.382 -16 6989.7210000000005 -6117.655 -17 9884.338 -8651.122 -18 13978.126 -12234.148000000001 +16 6989.721 -6117.655 +17 9884.338 -8651.121999999999 +18 13978.126 -12234.148 19 19767.746 -17301.424 -20 27955.593999999997 -24467.714 +20 27955.594 -24467.714 21 39535.025 -34602.437 -22 55910.859000000004 -48935.139 +22 55910.859 -48935.139 23 79069.817 -69204.66900000001 24 111821.553 -97870.13299999999 @@ -2610,18 +2610,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 357814.859969 0.0665290858044923 154.289 +13 357814.859969 0.06652908580449229 154.289 14 714930.0157079999 0.06653097756553986 218.094 -15 1429164.100019 0.0665320888481147 308.359 -16 2857624.2397040003 0.06653246233265911 436.033 -17 5714556.45984 0.06653279713586822 616.608 -18 1.1428407296493001E7 0.06653287692628271 871.989 -19 2.2856127373185E7 0.0665329706599851 1233.161 -20 4.571155187676E7 0.06653300093157037 1743.94 -21 9.142238885291399E7 0.06653300324740008 2466.294 -22 1.8284408129214E8 0.06653301158905464 3487.86 -23 3.65687437253482E8 0.06653301094565925 4932.574 -24 7.313741954735299E8 0.06653301457073506 6975.71 +15 1429164.100019 0.06653208884811471 308.359 +16 2857624.239704 0.06653246233265911 436.033 +17 5714556.45984 0.06653279713586822 616.6079999999999 +18 11428407.296493 0.06653287692628271 871.989 +19 22856127.373185 0.06653297065998511 1233.161 +20 45711551.87676 0.06653300093157037 1743.94 +21 91422388.85291399 0.06653300324740008 2466.294 +22 182844081.29214 0.06653301158905464 3487.86 +23 365687437.253482 0.06653301094565925 4932.574 +24 731374195.4735299 0.06653301457073506 6975.71 -- !sql_test_Char_Varchar_notn_1 -- 1 \N \N \N @@ -2636,18 +2636,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 357814.859969 0.0665290858044923 154.289 +13 357814.859969 0.06652908580449229 154.289 14 714930.0157079999 0.06653097756553986 218.094 -15 1429164.100019 0.0665320888481147 308.359 -16 2857624.2397040003 0.06653246233265911 436.033 -17 5714556.45984 0.06653279713586822 616.608 -18 1.1428407296493001E7 0.06653287692628271 871.989 -19 2.2856127373185E7 0.0665329706599851 1233.161 -20 4.571155187676E7 0.06653300093157037 1743.94 -21 9.142238885291399E7 0.06653300324740008 2466.294 -22 1.8284408129214E8 0.06653301158905464 3487.86 -23 3.65687437253482E8 0.06653301094565925 4932.574 -24 7.313741954735299E8 0.06653301457073506 6975.71 +15 1429164.100019 0.06653208884811471 308.359 +16 2857624.239704 0.06653246233265911 436.033 +17 5714556.45984 0.06653279713586822 616.6079999999999 +18 11428407.296493 0.06653287692628271 871.989 +19 22856127.373185 0.06653297065998511 1233.161 +20 45711551.87676 0.06653300093157037 1743.94 +21 91422388.85291399 0.06653300324740008 2466.294 +22 182844081.29214 0.06653301158905464 3487.86 +23 365687437.253482 0.06653301094565925 4932.574 +24 731374195.4735299 0.06653301457073506 6975.71 -- !sql_test_Char_Varchar_2 -- \N \N @@ -2770,17 +2770,17 @@ 11 \N \N 12 \N \N 13 10758.306 -10449.728 -14 15206.886999999999 -14770.699 +14 15206.887 -14770.699 15 21500.372 -20883.654 16 30402.288 -29530.222 17 42992.62 -41759.404 -18 60798.831 -59054.852999999996 +18 60798.831 -59054.853 19 85981.17800000001 -83514.856 20 121594.791 -118106.911 -21 171960.32499999998 -167027.737 -22 243188.145 -236212.42500000002 -23 343919.63300000003 -334054.485 -24 486375.571 -472424.15099999995 +21 171960.325 -167027.737 +22 243188.145 -236212.425 +23 343919.633 -334054.485 +24 486375.571 -472424.151 -- !sql_test_Char_String_notn_0 -- 1 \N \N @@ -2796,17 +2796,17 @@ 11 \N \N 12 \N \N 13 10758.306 -10449.728 -14 15206.886999999999 -14770.699 +14 15206.887 -14770.699 15 21500.372 -20883.654 16 30402.288 -29530.222 17 42992.62 -41759.404 -18 60798.831 -59054.852999999996 +18 60798.831 -59054.853 19 85981.17800000001 -83514.856 20 121594.791 -118106.911 -21 171960.32499999998 -167027.737 -22 243188.145 -236212.42500000002 -23 343919.63300000003 -334054.485 -24 486375.571 -472424.15099999995 +21 171960.325 -167027.737 +22 243188.145 -236212.425 +23 343919.633 -334054.485 +24 486375.571 -472424.151 -- !sql_test_Char_String_1 -- \N \N \N \N @@ -2822,18 +2822,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1636083.1789129998 0.01455005211704206 154.289 -14 3268965.820542 0.014550471142005897 218.094 +13 1636083.178913 0.01455005211704206 154.289 +14 3268965.820542 0.0145504711420059 218.094 15 6534747.936666999 0.01455071776333848 308.359 -16 1.3066276066415E7 0.014550800558828588 436.033 -17 2.6129388007296E7 0.014550873734885669 616.608 -18 5.2255547028738E7 0.014550891902496716 871.989 -19 1.0450794939173701E8 0.014550912736990648 1233.161 -20 2.0901269309294E8 0.014550918791557017 1743.94 -21 4.1802211169111395E8 0.014550919495212195 2466.294 -22 8.360410360401001E8 0.014550921372496492 3487.86 -23 1.672078753559866E9 0.014550921249179602 4932.574 -24 3.34415440437631E9 0.014550922032912313 6975.71 +16 13066276.066415 0.01455080055882859 436.033 +17 26129388.007296 0.01455087373488567 616.6079999999999 +18 52255547.028738 0.01455089190249672 871.989 +19 104507949.391737 0.01455091273699065 1233.161 +20 209012693.09294 0.01455091879155702 1743.94 +21 418022111.6911139 0.01455091949521219 2466.294 +22 836041036.0401001 0.01455092137249649 3487.86 +23 1672078753.559866 0.0145509212491796 4932.574 +24 3344154404.37631 0.01455092203291231 6975.71 -- !sql_test_Char_String_notn_1 -- 1 \N \N \N @@ -2848,18 +2848,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1636083.1789129998 0.01455005211704206 154.289 -14 3268965.820542 0.014550471142005897 218.094 +13 1636083.178913 0.01455005211704206 154.289 +14 3268965.820542 0.0145504711420059 218.094 15 6534747.936666999 0.01455071776333848 308.359 -16 1.3066276066415E7 0.014550800558828588 436.033 -17 2.6129388007296E7 0.014550873734885669 616.608 -18 5.2255547028738E7 0.014550891902496716 871.989 -19 1.0450794939173701E8 0.014550912736990648 1233.161 -20 2.0901269309294E8 0.014550918791557017 1743.94 -21 4.1802211169111395E8 0.014550919495212195 2466.294 -22 8.360410360401001E8 0.014550921372496492 3487.86 -23 1.672078753559866E9 0.014550921249179602 4932.574 -24 3.34415440437631E9 0.014550922032912313 6975.71 +16 13066276.066415 0.01455080055882859 436.033 +17 26129388.007296 0.01455087373488567 616.6079999999999 +18 52255547.028738 0.01455089190249672 871.989 +19 104507949.391737 0.01455091273699065 1233.161 +20 209012693.09294 0.01455091879155702 1743.94 +21 418022111.6911139 0.01455091949521219 2466.294 +22 836041036.0401001 0.01455092137249649 3487.86 +23 1672078753.559866 0.0145509212491796 4932.574 +24 3344154404.37631 0.01455092203291231 6975.71 -- !sql_test_Char_String_2 -- \N \N @@ -2981,18 +2981,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120455289E7 -2.0120146711E7 -14 2.0120520094E7 -2.0120083906E7 -15 2.0120611359E7 -2.0119994641E7 -16 2.0120740033E7 -2.0119867967E7 -17 2.0120921608E7 -2.0119688392E7 -18 2.0121177989E7 -2.0119434011E7 -19 2.0121540161E7 -2.0119073839E7 -20 2.012205194E7 -2.011856406E7 -21 2.0122775294E7 -2.0117842706E7 -22 2.012379786E7 -2.011682214E7 -23 2.0125243574E7 -2.0115378426E7 -24 2.012728771E7 -2.011333629E7 +13 20120455.289 -20120146.711 +14 20120520.094 -20120083.906 +15 20120611.359 -20119994.641 +16 20120740.033 -20119867.967 +17 20120921.608 -20119688.392 +18 20121177.989 -20119434.011 +19 20121540.161 -20119073.839 +20 20122051.94 -20118564.06 +21 20122775.294 -20117842.706 +22 20123797.86 -20116822.14 +23 20125243.574 -20115378.426 +24 20127287.71 -20113336.29 -- !sql_test_Char_Date_notn_0 -- 1 \N \N @@ -3007,18 +3007,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120455289E7 -2.0120146711E7 -14 2.0120520094E7 -2.0120083906E7 -15 2.0120611359E7 -2.0119994641E7 -16 2.0120740033E7 -2.0119867967E7 -17 2.0120921608E7 -2.0119688392E7 -18 2.0121177989E7 -2.0119434011E7 -19 2.0121540161E7 -2.0119073839E7 -20 2.012205194E7 -2.011856406E7 -21 2.0122775294E7 -2.0117842706E7 -22 2.012379786E7 -2.011682214E7 -23 2.0125243574E7 -2.0115378426E7 -24 2.012728771E7 -2.011333629E7 +13 20120455.289 -20120146.711 +14 20120520.094 -20120083.906 +15 20120611.359 -20119994.641 +16 20120740.033 -20119867.967 +17 20120921.608 -20119688.392 +18 20121177.989 -20119434.011 +19 20121540.161 -20119073.839 +20 20122051.94 -20118564.06 +21 20122775.294 -20117842.706 +22 20123797.86 -20116822.14 +23 20125243.574 -20115378.426 +24 20127287.71 -20113336.29 -- !sql_test_Char_Date_1 -- \N \N \N \N @@ -3034,18 +3034,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341120989E9 7.668324643851003E-6 154.289 -14 4.388117144388E9 1.0839499327594586E-5 218.094 -15 6.204276512776999E9 1.532576323527533E-5 308.359 -16 8.773116514032E9 2.1671292839312965E-5 436.033 -17 1.2406341025439999E10 3.064605630978258E-5 616.608 -18 1.7544685508634E10 4.3338754390713544E-5 871.989 -19 2.4811577900427002E10 6.12893729703031E-5 1233.161 -20 3.5088609933520004E10 8.667561152642395E-5 1743.94 -21 4.9622597364846E10 1.2257734212730033E-4 2466.294 -22 7.01768244366E10 1.7335021180091162E-4 3487.86 -23 9.924492291051399E10 2.4515396407143007E-4 4932.574 -24 1.4035346162152E11 3.4669989212890933E-4 6975.71 +13 3104341120.989 7.668324643851003e-06 154.289 +14 4388117144.388 1.083949932759459e-05 218.094 +15 6204276512.776999 1.532576323527533e-05 308.359 +16 8773116514.032 2.167129283931297e-05 436.033 +17 12406341025.44 3.064605630978258e-05 616.6079999999999 +18 17544685508.634 4.333875439071354e-05 871.989 +19 24811577900.427 6.12893729703031e-05 1233.161 +20 35088609933.52 8.667561152642395e-05 1743.94 +21 49622597364.846 0.0001225773421273003 2466.294 +22 70176824436.60001 0.0001733502118009116 3487.86 +23 99244922910.51399 0.0002451539640714301 4932.574 +24 140353461621.52 0.0003466998921289093 6975.71 -- !sql_test_Char_Date_notn_1 -- 1 \N \N \N @@ -3060,18 +3060,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341120989E9 7.668324643851003E-6 154.289 -14 4.388117144388E9 1.0839499327594586E-5 218.094 -15 6.204276512776999E9 1.532576323527533E-5 308.359 -16 8.773116514032E9 2.1671292839312965E-5 436.033 -17 1.2406341025439999E10 3.064605630978258E-5 616.608 -18 1.7544685508634E10 4.3338754390713544E-5 871.989 -19 2.4811577900427002E10 6.12893729703031E-5 1233.161 -20 3.5088609933520004E10 8.667561152642395E-5 1743.94 -21 4.9622597364846E10 1.2257734212730033E-4 2466.294 -22 7.01768244366E10 1.7335021180091162E-4 3487.86 -23 9.924492291051399E10 2.4515396407143007E-4 4932.574 -24 1.4035346162152E11 3.4669989212890933E-4 6975.71 +13 3104341120.989 7.668324643851003e-06 154.289 +14 4388117144.388 1.083949932759459e-05 218.094 +15 6204276512.776999 1.532576323527533e-05 308.359 +16 8773116514.032 2.167129283931297e-05 436.033 +17 12406341025.44 3.064605630978258e-05 616.6079999999999 +18 17544685508.634 4.333875439071354e-05 871.989 +19 24811577900.427 6.12893729703031e-05 1233.161 +20 35088609933.52 8.667561152642395e-05 1743.94 +21 49622597364.846 0.0001225773421273003 2466.294 +22 70176824436.60001 0.0001733502118009116 3487.86 +23 99244922910.51399 0.0002451539640714301 4932.574 +24 140353461621.52 0.0003466998921289093 6975.71 -- !sql_test_Char_Date_2 -- \N \N @@ -3193,18 +3193,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101015529E13 -2.012030100984671E13 -14 2.0120302020320094E13 -2.0120302019883906E13 -15 2.012030303051136E13 -2.012030302989464E13 -16 2.012030404074003E13 -2.012030403986797E13 -17 2.012030505102161E13 -2.012030504978839E13 -18 2.012030606137799E13 -2.012030605963401E13 -19 2.012030707184016E13 -2.012030706937384E13 -20 2.012030808245194E13 -2.012030807896406E13 -21 2.0120309093275293E13 -2.0120309088342707E13 -22 2.012031010439786E13 -2.012031009742214E13 -23 2.0120311115943574E13 -2.0120311106078426E13 -24 2.012031212808771E13 -2.012031211413629E13 +13 20120301010155.29 -20120301009846.71 +14 20120302020320.09 -20120302019883.91 +15 20120303030511.36 -20120303029894.64 +16 20120304040740.03 -20120304039867.97 +17 20120305051021.61 -20120305049788.39 +18 20120306061377.99 -20120306059634.01 +19 20120307071840.16 -20120307069373.84 +20 20120308082451.94 -20120308078964.06 +21 20120309093275.29 -20120309088342.71 +22 20120310104397.86 -20120310097422.14 +23 20120311115943.57 -20120311106078.43 +24 20120312128087.71 -20120312114136.29 -- !sql_test_Char_DateTime_notn_0 -- 1 \N \N @@ -3219,18 +3219,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101015529E13 -2.012030100984671E13 -14 2.0120302020320094E13 -2.0120302019883906E13 -15 2.012030303051136E13 -2.012030302989464E13 -16 2.012030404074003E13 -2.012030403986797E13 -17 2.012030505102161E13 -2.012030504978839E13 -18 2.012030606137799E13 -2.012030605963401E13 -19 2.012030707184016E13 -2.012030706937384E13 -20 2.012030808245194E13 -2.012030807896406E13 -21 2.0120309093275293E13 -2.0120309088342707E13 -22 2.012031010439786E13 -2.012031009742214E13 -23 2.0120311115943574E13 -2.0120311106078426E13 -24 2.012031212808771E13 -2.012031211413629E13 +13 20120301010155.29 -20120301009846.71 +14 20120302020320.09 -20120302019883.91 +15 20120303030511.36 -20120303029894.64 +16 20120304040740.03 -20120304039867.97 +17 20120305051021.61 -20120305049788.39 +18 20120306061377.99 -20120306059634.01 +19 20120307071840.16 -20120307069373.84 +20 20120308082451.94 -20120308078964.06 +21 20120309093275.29 -20120309088342.71 +22 20120310104397.86 -20120310097422.14 +23 20120311115943.57 -20120311106078.43 +24 20120312128087.71 -20120312114136.29 -- !sql_test_Char_DateTime_1 -- \N \N \N \N @@ -3246,18 +3246,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341122532044E15 7.668324640039385E-12 154.289 -14 4.3881171487721255E15 1.0839499316764946E-11 218.094 -15 6.204276522090366E15 1.5325763212269516E-11 308.359 -16 8.773116531605874E15 2.16712927959021E-11 436.033 -17 1.2406341056520126E16 3.064605623300867E-11 616.608 -18 1.7544685561394568E16 4.3338754260384773E-11 871.989 -19 2.48115779874968E16 6.128937275522393E-11 1233.161 -20 3.5088610074269912E16 8.667561117874462E-11 1743.94 -21 4.9622597588807688E16 1.2257734157407194E-10 2466.294 -22 7.0176824788559952E16 1.7335021093150306E-10 3487.86 -23 9.9244923458083968E16 2.451539627188274E-10 4932.574 -24 1.40353462466362192E17 3.4669989004198756E-10 6975.71 +13 3104341122532044 7.668324640039385e-12 154.289 +14 4388117148772126 1.083949931676495e-11 218.094 +15 6204276522090366 1.532576321226952e-11 308.359 +16 8773116531605874 2.16712927959021e-11 436.033 +17 1.240634105652013e+16 3.064605623300867e-11 616.6079999999999 +18 1.754468556139457e+16 4.333875426038477e-11 871.989 +19 2.48115779874968e+16 6.128937275522393e-11 1233.161 +20 3.508861007426991e+16 8.667561117874462e-11 1743.94 +21 4.962259758880769e+16 1.225773415740719e-10 2466.294 +22 7.017682478855995e+16 1.733502109315031e-10 3487.86 +23 9.924492345808397e+16 2.451539627188274e-10 4932.574 +24 1.403534624663622e+17 3.466998900419876e-10 6975.71 -- !sql_test_Char_DateTime_notn_1 -- 1 \N \N \N @@ -3272,18 +3272,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341122532044E15 7.668324640039385E-12 154.289 -14 4.3881171487721255E15 1.0839499316764946E-11 218.094 -15 6.204276522090366E15 1.5325763212269516E-11 308.359 -16 8.773116531605874E15 2.16712927959021E-11 436.033 -17 1.2406341056520126E16 3.064605623300867E-11 616.608 -18 1.7544685561394568E16 4.3338754260384773E-11 871.989 -19 2.48115779874968E16 6.128937275522393E-11 1233.161 -20 3.5088610074269912E16 8.667561117874462E-11 1743.94 -21 4.9622597588807688E16 1.2257734157407194E-10 2466.294 -22 7.0176824788559952E16 1.7335021093150306E-10 3487.86 -23 9.9244923458083968E16 2.451539627188274E-10 4932.574 -24 1.40353462466362192E17 3.4669989004198756E-10 6975.71 +13 3104341122532044 7.668324640039385e-12 154.289 +14 4388117148772126 1.083949931676495e-11 218.094 +15 6204276522090366 1.532576321226952e-11 308.359 +16 8773116531605874 2.16712927959021e-11 436.033 +17 1.240634105652013e+16 3.064605623300867e-11 616.6079999999999 +18 1.754468556139457e+16 4.333875426038477e-11 871.989 +19 2.48115779874968e+16 6.128937275522393e-11 1233.161 +20 3.508861007426991e+16 8.667561117874462e-11 1743.94 +21 4.962259758880769e+16 1.225773415740719e-10 2466.294 +22 7.017682478855995e+16 1.733502109315031e-10 3487.86 +23 9.924492345808397e+16 2.451539627188274e-10 4932.574 +24 1.403534624663622e+17 3.466998900419876e-10 6975.71 -- !sql_test_Char_DateTime_2 -- \N \N @@ -3405,18 +3405,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120455289E7 -2.0120146711E7 -14 2.0120520094E7 -2.0120083906E7 -15 2.0120611359E7 -2.0119994641E7 -16 2.0120740033E7 -2.0119867967E7 -17 2.0120921608E7 -2.0119688392E7 -18 2.0121177989E7 -2.0119434011E7 -19 2.0121540161E7 -2.0119073839E7 -20 2.012205194E7 -2.011856406E7 -21 2.0122775294E7 -2.0117842706E7 -22 2.012379786E7 -2.011682214E7 -23 2.0125243574E7 -2.0115378426E7 -24 2.012728771E7 -2.011333629E7 +13 20120455.289 -20120146.711 +14 20120520.094 -20120083.906 +15 20120611.359 -20119994.641 +16 20120740.033 -20119867.967 +17 20120921.608 -20119688.392 +18 20121177.989 -20119434.011 +19 20121540.161 -20119073.839 +20 20122051.94 -20118564.06 +21 20122775.294 -20117842.706 +22 20123797.86 -20116822.14 +23 20125243.574 -20115378.426 +24 20127287.71 -20113336.29 -- !sql_test_Char_DateV2_notn_0 -- 1 \N \N @@ -3431,18 +3431,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120455289E7 -2.0120146711E7 -14 2.0120520094E7 -2.0120083906E7 -15 2.0120611359E7 -2.0119994641E7 -16 2.0120740033E7 -2.0119867967E7 -17 2.0120921608E7 -2.0119688392E7 -18 2.0121177989E7 -2.0119434011E7 -19 2.0121540161E7 -2.0119073839E7 -20 2.012205194E7 -2.011856406E7 -21 2.0122775294E7 -2.0117842706E7 -22 2.012379786E7 -2.011682214E7 -23 2.0125243574E7 -2.0115378426E7 -24 2.012728771E7 -2.011333629E7 +13 20120455.289 -20120146.711 +14 20120520.094 -20120083.906 +15 20120611.359 -20119994.641 +16 20120740.033 -20119867.967 +17 20120921.608 -20119688.392 +18 20121177.989 -20119434.011 +19 20121540.161 -20119073.839 +20 20122051.94 -20118564.06 +21 20122775.294 -20117842.706 +22 20123797.86 -20116822.14 +23 20125243.574 -20115378.426 +24 20127287.71 -20113336.29 -- !sql_test_Char_DateV2_1 -- \N \N \N \N @@ -3458,18 +3458,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341120989E9 7.668324643851003E-6 154.289 -14 4.388117144388E9 1.0839499327594586E-5 218.094 -15 6.204276512776999E9 1.532576323527533E-5 308.359 -16 8.773116514032E9 2.1671292839312965E-5 436.033 -17 1.2406341025439999E10 3.064605630978258E-5 616.608 -18 1.7544685508634E10 4.3338754390713544E-5 871.989 -19 2.4811577900427002E10 6.12893729703031E-5 1233.161 -20 3.5088609933520004E10 8.667561152642395E-5 1743.94 -21 4.9622597364846E10 1.2257734212730033E-4 2466.294 -22 7.01768244366E10 1.7335021180091162E-4 3487.86 -23 9.924492291051399E10 2.4515396407143007E-4 4932.574 -24 1.4035346162152E11 3.4669989212890933E-4 6975.71 +13 3104341120.989 7.668324643851003e-06 154.289 +14 4388117144.388 1.083949932759459e-05 218.094 +15 6204276512.776999 1.532576323527533e-05 308.359 +16 8773116514.032 2.167129283931297e-05 436.033 +17 12406341025.44 3.064605630978258e-05 616.6079999999999 +18 17544685508.634 4.333875439071354e-05 871.989 +19 24811577900.427 6.12893729703031e-05 1233.161 +20 35088609933.52 8.667561152642395e-05 1743.94 +21 49622597364.846 0.0001225773421273003 2466.294 +22 70176824436.60001 0.0001733502118009116 3487.86 +23 99244922910.51399 0.0002451539640714301 4932.574 +24 140353461621.52 0.0003466998921289093 6975.71 -- !sql_test_Char_DateV2_notn_1 -- 1 \N \N \N @@ -3484,18 +3484,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341120989E9 7.668324643851003E-6 154.289 -14 4.388117144388E9 1.0839499327594586E-5 218.094 -15 6.204276512776999E9 1.532576323527533E-5 308.359 -16 8.773116514032E9 2.1671292839312965E-5 436.033 -17 1.2406341025439999E10 3.064605630978258E-5 616.608 -18 1.7544685508634E10 4.3338754390713544E-5 871.989 -19 2.4811577900427002E10 6.12893729703031E-5 1233.161 -20 3.5088609933520004E10 8.667561152642395E-5 1743.94 -21 4.9622597364846E10 1.2257734212730033E-4 2466.294 -22 7.01768244366E10 1.7335021180091162E-4 3487.86 -23 9.924492291051399E10 2.4515396407143007E-4 4932.574 -24 1.4035346162152E11 3.4669989212890933E-4 6975.71 +13 3104341120.989 7.668324643851003e-06 154.289 +14 4388117144.388 1.083949932759459e-05 218.094 +15 6204276512.776999 1.532576323527533e-05 308.359 +16 8773116514.032 2.167129283931297e-05 436.033 +17 12406341025.44 3.064605630978258e-05 616.6079999999999 +18 17544685508.634 4.333875439071354e-05 871.989 +19 24811577900.427 6.12893729703031e-05 1233.161 +20 35088609933.52 8.667561152642395e-05 1743.94 +21 49622597364.846 0.0001225773421273003 2466.294 +22 70176824436.60001 0.0001733502118009116 3487.86 +23 99244922910.51399 0.0002451539640714301 4932.574 +24 140353461621.52 0.0003466998921289093 6975.71 -- !sql_test_Char_DateV2_2 -- \N \N @@ -3617,18 +3617,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101015529E13 -2.012030100984671E13 -14 2.0120302020320094E13 -2.0120302019883906E13 -15 2.012030303051136E13 -2.012030302989464E13 -16 2.012030404074003E13 -2.012030403986797E13 -17 2.012030505102161E13 -2.012030504978839E13 -18 2.012030606137799E13 -2.012030605963401E13 -19 2.012030707184016E13 -2.012030706937384E13 -20 2.012030808245194E13 -2.012030807896406E13 -21 2.0120309093275293E13 -2.0120309088342707E13 -22 2.012031010439786E13 -2.012031009742214E13 -23 2.0120311115943574E13 -2.0120311106078426E13 -24 2.012031212808771E13 -2.012031211413629E13 +13 20120301010155.29 -20120301009846.71 +14 20120302020320.09 -20120302019883.91 +15 20120303030511.36 -20120303029894.64 +16 20120304040740.03 -20120304039867.97 +17 20120305051021.61 -20120305049788.39 +18 20120306061377.99 -20120306059634.01 +19 20120307071840.16 -20120307069373.84 +20 20120308082451.94 -20120308078964.06 +21 20120309093275.29 -20120309088342.71 +22 20120310104397.86 -20120310097422.14 +23 20120311115943.57 -20120311106078.43 +24 20120312128087.71 -20120312114136.29 -- !sql_test_Char_DateTimeV2_notn_0 -- 1 \N \N @@ -3643,18 +3643,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101015529E13 -2.012030100984671E13 -14 2.0120302020320094E13 -2.0120302019883906E13 -15 2.012030303051136E13 -2.012030302989464E13 -16 2.012030404074003E13 -2.012030403986797E13 -17 2.012030505102161E13 -2.012030504978839E13 -18 2.012030606137799E13 -2.012030605963401E13 -19 2.012030707184016E13 -2.012030706937384E13 -20 2.012030808245194E13 -2.012030807896406E13 -21 2.0120309093275293E13 -2.0120309088342707E13 -22 2.012031010439786E13 -2.012031009742214E13 -23 2.0120311115943574E13 -2.0120311106078426E13 -24 2.012031212808771E13 -2.012031211413629E13 +13 20120301010155.29 -20120301009846.71 +14 20120302020320.09 -20120302019883.91 +15 20120303030511.36 -20120303029894.64 +16 20120304040740.03 -20120304039867.97 +17 20120305051021.61 -20120305049788.39 +18 20120306061377.99 -20120306059634.01 +19 20120307071840.16 -20120307069373.84 +20 20120308082451.94 -20120308078964.06 +21 20120309093275.29 -20120309088342.71 +22 20120310104397.86 -20120310097422.14 +23 20120311115943.57 -20120311106078.43 +24 20120312128087.71 -20120312114136.29 -- !sql_test_Char_DateTimeV2_1 -- \N \N \N \N @@ -3670,18 +3670,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341122532044E15 7.668324640039385E-12 154.289 -14 4.3881171487721255E15 1.0839499316764946E-11 218.094 -15 6.204276522090366E15 1.5325763212269516E-11 308.359 -16 8.773116531605874E15 2.16712927959021E-11 436.033 -17 1.2406341056520126E16 3.064605623300867E-11 616.608 -18 1.7544685561394568E16 4.3338754260384773E-11 871.989 -19 2.48115779874968E16 6.128937275522393E-11 1233.161 -20 3.5088610074269912E16 8.667561117874462E-11 1743.94 -21 4.9622597588807688E16 1.2257734157407194E-10 2466.294 -22 7.0176824788559952E16 1.7335021093150306E-10 3487.86 -23 9.9244923458083968E16 2.451539627188274E-10 4932.574 -24 1.40353462466362192E17 3.4669989004198756E-10 6975.71 +13 3104341122532044 7.668324640039385e-12 154.289 +14 4388117148772126 1.083949931676495e-11 218.094 +15 6204276522090366 1.532576321226952e-11 308.359 +16 8773116531605874 2.16712927959021e-11 436.033 +17 1.240634105652013e+16 3.064605623300867e-11 616.6079999999999 +18 1.754468556139457e+16 4.333875426038477e-11 871.989 +19 2.48115779874968e+16 6.128937275522393e-11 1233.161 +20 3.508861007426991e+16 8.667561117874462e-11 1743.94 +21 4.962259758880769e+16 1.225773415740719e-10 2466.294 +22 7.017682478855995e+16 1.733502109315031e-10 3487.86 +23 9.924492345808397e+16 2.451539627188274e-10 4932.574 +24 1.403534624663622e+17 3.466998900419876e-10 6975.71 -- !sql_test_Char_DateTimeV2_notn_1 -- 1 \N \N \N @@ -3696,18 +3696,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.104341122532044E15 7.668324640039385E-12 154.289 -14 4.3881171487721255E15 1.0839499316764946E-11 218.094 -15 6.204276522090366E15 1.5325763212269516E-11 308.359 -16 8.773116531605874E15 2.16712927959021E-11 436.033 -17 1.2406341056520126E16 3.064605623300867E-11 616.608 -18 1.7544685561394568E16 4.3338754260384773E-11 871.989 -19 2.48115779874968E16 6.128937275522393E-11 1233.161 -20 3.5088610074269912E16 8.667561117874462E-11 1743.94 -21 4.9622597588807688E16 1.2257734157407194E-10 2466.294 -22 7.0176824788559952E16 1.7335021093150306E-10 3487.86 -23 9.9244923458083968E16 2.451539627188274E-10 4932.574 -24 1.40353462466362192E17 3.4669989004198756E-10 6975.71 +13 3104341122532044 7.668324640039385e-12 154.289 +14 4388117148772126 1.083949931676495e-11 218.094 +15 6204276522090366 1.532576321226952e-11 308.359 +16 8773116531605874 2.16712927959021e-11 436.033 +17 1.240634105652013e+16 3.064605623300867e-11 616.6079999999999 +18 1.754468556139457e+16 4.333875426038477e-11 871.989 +19 2.48115779874968e+16 6.128937275522393e-11 1233.161 +20 3.508861007426991e+16 8.667561117874462e-11 1743.94 +21 4.962259758880769e+16 1.225773415740719e-10 2466.294 +22 7.017682478855995e+16 1.733502109315031e-10 3487.86 +23 9.924492345808397e+16 2.451539627188274e-10 4932.574 +24 1.403534624663622e+17 3.466998900419876e-10 6975.71 -- !sql_test_Char_DateTimeV2_2 -- \N \N @@ -3833,7 +3833,7 @@ 14 218.094 218.094 15 308.359 308.359 16 436.033 436.033 -17 616.608 616.608 +17 616.6079999999999 616.6079999999999 18 871.989 871.989 19 1233.161 1233.161 20 1744.94 1742.94 @@ -3859,7 +3859,7 @@ 14 218.094 218.094 15 308.359 308.359 16 436.033 436.033 -17 616.608 616.608 +17 616.6079999999999 616.6079999999999 18 871.989 871.989 19 1233.161 1233.161 20 1744.94 1742.94 @@ -3882,15 +3882,15 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 1743.94 1743.94 0.9400000000000546 -21 2466.294 2466.294 0.29399999999986903 +21 2466.294 2466.294 0.293999999999869 22 3487.86 3487.86 0.8600000000001273 23 4932.574 4932.574 0.5739999999996144 24 6975.71 6975.71 0.7100000000000364 @@ -3908,15 +3908,15 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 1743.94 1743.94 0.9400000000000546 -21 2466.294 2466.294 0.29399999999986903 +21 2466.294 2466.294 0.293999999999869 22 3487.86 3487.86 0.8600000000001273 23 4932.574 4932.574 0.5739999999996144 24 6975.71 6975.71 0.7100000000000364 @@ -4094,18 +4094,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2319.121 2319.121 0.12100000000009459 +13 2319.121 2319.121 0.1210000000000946 14 6556.164 1639.041 0.08199999999987995 -15 13904.223 1544.9136666666666 2.7409999999999854 -16 26214.752 1638.422 1.6880000000001019 -17 46338.649999999994 1853.5459999999998 2.7299999999995634 -18 78636.822 2184.356166666667 2.1370000000006257 +15 13904.223 1544.913666666667 2.740999999999985 +16 26214.752 1638.422 1.688000000000102 +17 46338.64999999999 1853.546 2.729999999999563 +18 78636.822 2184.356166666667 2.137000000000626 19 129742.095 2647.797857142857 5.584999999999127 20 209693.232 3276.45675 3.653999999998632 21 333618.579 4118.747888888889 6.730999999999767 -22 524229.99000000005 5242.2999 2.9990000000034343 +22 524229.99 5242.2999 2.999000000003434 23 815509.6730000001 6739.749363636364 8.243000000002212 -24 1258150.116 8737.153583333333 1.8429999999934807 +24 1258150.116 8737.153583333333 1.842999999993481 -- !sql_test_Varchar_TinyInt_notn_1 -- 1 \N \N \N @@ -4120,18 +4120,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2319.121 2319.121 0.12100000000009459 +13 2319.121 2319.121 0.1210000000000946 14 6556.164 1639.041 0.08199999999987995 -15 13904.223 1544.9136666666666 2.7409999999999854 -16 26214.752 1638.422 1.6880000000001019 -17 46338.649999999994 1853.5459999999998 2.7299999999995634 -18 78636.822 2184.356166666667 2.1370000000006257 +15 13904.223 1544.913666666667 2.740999999999985 +16 26214.752 1638.422 1.688000000000102 +17 46338.64999999999 1853.546 2.729999999999563 +18 78636.822 2184.356166666667 2.137000000000626 19 129742.095 2647.797857142857 5.584999999999127 20 209693.232 3276.45675 3.653999999998632 21 333618.579 4118.747888888889 6.730999999999767 -22 524229.99000000005 5242.2999 2.9990000000034343 +22 524229.99 5242.2999 2.999000000003434 23 815509.6730000001 6739.749363636364 8.243000000002212 -24 1258150.116 8737.153583333333 1.8429999999934807 +24 1258150.116 8737.153583333333 1.842999999993481 -- !sql_test_Varchar_TinyInt_2 -- \N \N @@ -4264,7 +4264,7 @@ 21 39628.731 34508.731 22 57542.999 47302.999 23 84377.243 63897.243 -24 125325.843 84365.843 +24 125325.843 84365.84299999999 -- !sql_test_Varchar_SmallInt_notn_0 -- 1 \N \N @@ -4290,7 +4290,7 @@ 21 39628.731 34508.731 22 57542.999 47302.999 23 84377.243 63897.243 -24 125325.843 84365.843 +24 125325.843 84365.84299999999 -- !sql_test_Varchar_SmallInt_1 -- \N \N \N \N @@ -4308,16 +4308,16 @@ 12 \N \N \N 13 23191.21 231.9121 9.121000000000095 14 65561.64 163.9041 18.08199999999988 -15 185389.64 115.868525 34.740999999999985 +15 185389.64 115.868525 34.74099999999999 16 524295.04 81.9211 73.6880000000001 -17 1482836.7999999998 57.923312499999994 147.72999999999956 -18 4193963.8400000003 40.956678125 306.1370000000006 -19 1.1862134399999999E7 28.9602890625 614.5849999999991 -20 3.3550917119999997E7 20.4778546875 611.6539999999986 -21 9.489595136E7 14.479973046875 1228.7309999999998 -22 2.6840575488000003E8 10.2388669921875 1222.9990000000034 -23 7.5916536832E8 7.23996513671875 2457.243000000002 -24 2.1472428646399999E9 5.119425927734374 2445.8429999999935 +17 1482836.8 57.92331249999999 147.7299999999996 +18 4193963.84 40.956678125 306.1370000000006 +19 11862134.4 28.9602890625 614.5849999999991 +20 33550917.12 20.4778546875 611.6539999999986 +21 94895951.36 14.479973046875 1228.731 +22 268405754.88 10.2388669921875 1222.999000000003 +23 759165368.3200001 7.23996513671875 2457.243000000002 +24 2147242864.64 5.119425927734374 2445.842999999993 -- !sql_test_Varchar_SmallInt_notn_1 -- 1 \N \N \N @@ -4334,16 +4334,16 @@ 12 \N \N \N 13 23191.21 231.9121 9.121000000000095 14 65561.64 163.9041 18.08199999999988 -15 185389.64 115.868525 34.740999999999985 +15 185389.64 115.868525 34.74099999999999 16 524295.04 81.9211 73.6880000000001 -17 1482836.7999999998 57.923312499999994 147.72999999999956 -18 4193963.8400000003 40.956678125 306.1370000000006 -19 1.1862134399999999E7 28.9602890625 614.5849999999991 -20 3.3550917119999997E7 20.4778546875 611.6539999999986 -21 9.489595136E7 14.479973046875 1228.7309999999998 -22 2.6840575488000003E8 10.2388669921875 1222.9990000000034 -23 7.5916536832E8 7.23996513671875 2457.243000000002 -24 2.1472428646399999E9 5.119425927734374 2445.8429999999935 +17 1482836.8 57.92331249999999 147.7299999999996 +18 4193963.84 40.956678125 306.1370000000006 +19 11862134.4 28.9602890625 614.5849999999991 +20 33550917.12 20.4778546875 611.6539999999986 +21 94895951.36 14.479973046875 1228.731 +22 268405754.88 10.2388669921875 1222.999000000003 +23 759165368.3200001 7.23996513671875 2457.243000000002 +24 2147242864.64 5.119425927734374 2445.842999999993 -- !sql_test_Varchar_SmallInt_2 -- \N \N @@ -4467,16 +4467,16 @@ 12 \N \N 13 26114.121 -21475.879 14 50823.082 -44266.918 -15 99679.741 -90410.259 +15 99679.74099999999 -90410.25900000001 16 196598.688 -183491.312 17 389312.73 -370777.27 18 773151.137 -746938.863 19 1538579.585 -1501510.415 20 3066256.654 -3013833.346 21 6117113.731 -6042976.269 -22 1.2212467999E7 -1.2107622001E7 -23 2.4394182243E7 -2.4245907757E7 -24 4.8744890843E7 -4.8535199157E7 +22 12212467.999 -12107622.001 +23 24394182.243 -24245907.757 +24 48744890.843 -48535199.157 -- !sql_test_Varchar_Integer_notn_0 -- 1 \N \N @@ -4493,16 +4493,16 @@ 12 \N \N 13 26114.121 -21475.879 14 50823.082 -44266.918 -15 99679.741 -90410.259 +15 99679.74099999999 -90410.25900000001 16 196598.688 -183491.312 17 389312.73 -370777.27 18 773151.137 -746938.863 19 1538579.585 -1501510.415 20 3066256.654 -3013833.346 21 6117113.731 -6042976.269 -22 1.2212467999E7 -1.2107622001E7 -23 2.4394182243E7 -2.4245907757E7 -24 4.8744890843E7 -4.8535199157E7 +22 12212467.999 -12107622.001 +23 24394182.243 -24245907.757 +24 48744890.843 -48535199.157 -- !sql_test_Varchar_Integer_1 -- \N \N \N \N @@ -4518,18 +4518,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.5183484195E7 0.09746253414582896 2319.121 -14 1.5585640869E8 0.06894693448312125 3278.082 -15 4.4050895834499997E8 0.04876364879793782 4634.741 -16 1.24549563596E9 0.0344849272540714 6553.688 -17 3.52215444785E9 0.024385875356865632 9267.73 -18 9.961253896165E9 0.017243896085100224 13106.137 -19 2.8173403256324997E10 0.01219344493090665 18534.585 -20 7.968460768443E10 0.008622126975094119 26211.654 -21 2.25379552572895E11 0.006096785632343182 37068.731 -22 6.374660268749551E11 0.004311085937593159 52422.999 -23 1.803021085935935E12 0.003048400732811144 74137.243 -24 5.099706521582935E12 0.0021555457648116897 104845.843 +13 55183484.195 0.09746253414582896 2319.121 +14 155856408.69 0.06894693448312125 3278.082 +15 440508958.345 0.04876364879793782 4634.741 +16 1245495635.96 0.0344849272540714 6553.688 +17 3522154447.85 0.02438587535686563 9267.73 +18 9961253896.165001 0.01724389608510022 13106.137 +19 28173403256.325 0.01219344493090665 18534.585 +20 79684607684.42999 0.008622126975094119 26211.654 +21 225379552572.895 0.006096785632343182 37068.731 +22 637466026874.9551 0.004311085937593159 52422.999 +23 1803021085935.935 0.003048400732811144 74137.243 +24 5099706521582.935 0.00215554576481169 104845.843 -- !sql_test_Varchar_Integer_notn_1 -- 1 \N \N \N @@ -4544,18 +4544,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.5183484195E7 0.09746253414582896 2319.121 -14 1.5585640869E8 0.06894693448312125 3278.082 -15 4.4050895834499997E8 0.04876364879793782 4634.741 -16 1.24549563596E9 0.0344849272540714 6553.688 -17 3.52215444785E9 0.024385875356865632 9267.73 -18 9.961253896165E9 0.017243896085100224 13106.137 -19 2.8173403256324997E10 0.01219344493090665 18534.585 -20 7.968460768443E10 0.008622126975094119 26211.654 -21 2.25379552572895E11 0.006096785632343182 37068.731 -22 6.374660268749551E11 0.004311085937593159 52422.999 -23 1.803021085935935E12 0.003048400732811144 74137.243 -24 5.099706521582935E12 0.0021555457648116897 104845.843 +13 55183484.195 0.09746253414582896 2319.121 +14 155856408.69 0.06894693448312125 3278.082 +15 440508958.345 0.04876364879793782 4634.741 +16 1245495635.96 0.0344849272540714 6553.688 +17 3522154447.85 0.02438587535686563 9267.73 +18 9961253896.165001 0.01724389608510022 13106.137 +19 28173403256.325 0.01219344493090665 18534.585 +20 79684607684.42999 0.008622126975094119 26211.654 +21 225379552572.895 0.006096785632343182 37068.731 +22 637466026874.9551 0.004311085937593159 52422.999 +23 1803021085935.935 0.003048400732811144 74137.243 +24 5099706521582.935 0.00215554576481169 104845.843 -- !sql_test_Varchar_Integer_2 -- \N \N @@ -4678,17 +4678,17 @@ 11 \N \N 12 \N \N 13 5356848.121 -5352209.879 -14 1.0701557082E7 -1.0695000918E7 -15 2.1390413741E7 -2.1381144259E7 -16 4.2767332688E7 -4.2754225312E7 -17 8.552004673E7 -8.550151127E7 -18 1.71023885137E8 -1.70997672863E8 -19 3.42029313585E8 -3.41992244415E8 -20 6.84036990654E8 -6.83984567346E8 -21 1.368047847731E9 -1.367973710269E9 -22 2.736063201999E9 -2.735958356001E9 -23 5.472084916243E9 -5.471936641757E9 -24 1.0944115624843E10 -1.0943905933157E10 +14 10701557.082 -10695000.918 +15 21390413.741 -21381144.259 +16 42767332.688 -42754225.312 +17 85520046.73 -85501511.27 +18 171023885.137 -170997672.863 +19 342029313.585 -341992244.415 +20 684036990.654 -683984567.346 +21 1368047847.731 -1367973710.269 +22 2736063201.999 -2735958356.001 +23 5472084916.243 -5471936641.757 +24 10944115624.843 -10943905933.157 -- !sql_test_Varchar_BigInt_notn_0 -- 1 \N \N @@ -4704,17 +4704,17 @@ 11 \N \N 12 \N \N 13 5356848.121 -5352209.879 -14 1.0701557082E7 -1.0695000918E7 -15 2.1390413741E7 -2.1381144259E7 -16 4.2767332688E7 -4.2754225312E7 -17 8.552004673E7 -8.550151127E7 -18 1.71023885137E8 -1.70997672863E8 -19 3.42029313585E8 -3.41992244415E8 -20 6.84036990654E8 -6.83984567346E8 -21 1.368047847731E9 -1.367973710269E9 -22 2.736063201999E9 -2.735958356001E9 -23 5.472084916243E9 -5.471936641757E9 -24 1.0944115624843E10 -1.0943905933157E10 +14 10701557.082 -10695000.918 +15 21390413.741 -21381144.259 +16 42767332.688 -42754225.312 +17 85520046.73 -85501511.27 +18 171023885.137 -170997672.863 +19 342029313.585 -341992244.415 +20 684036990.654 -683984567.346 +21 1368047847.731 -1367973710.269 +22 2736063201.999 -2735958356.001 +23 5472084916.243 -5471936641.757 +24 10944115624.843 -10943905933.157 -- !sql_test_Varchar_BigInt_1 -- \N \N \N \N @@ -4730,18 +4730,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.2417800649009E10 4.331139116064177E-4 2319.121 -14 3.5069835820878E10 3.064120874020952E-4 3278.082 -15 9.9117546748239E10 2.167207002372932E-4 4634.741 -16 2.80240804202952E11 1.5326399923630953E-4 6553.688 -17 7.924908118616699E11 1.0838083933254776E-4 9267.73 -18 2.241290698050723E12 7.66392450618566E-5 13106.137 -19 6.339027854291715E12 5.4192984952676005E-5 18534.585 -20 1.7929053871418465E13 3.83205276944912E-5 26211.654 -21 5.0710423571851445E13 2.7096812078554534E-5 37068.731 -22 1.4342989033150622E14 1.9160377364872948E-5 52422.999 -23 4.056797928213423E14 1.354844608210886E-5 74137.243 -24 1.1474340359253418E15 9.580202826662439E-6 104845.843 +13 12417800649.009 0.0004331139116064177 2319.121 +14 35069835820.878 0.0003064120874020952 3278.082 +15 99117546748.239 0.0002167207002372932 4634.741 +16 280240804202.952 0.0001532639992363095 6553.688 +17 792490811861.6699 0.0001083808393325478 9267.73 +18 2241290698050.723 7.66392450618566e-05 13106.137 +19 6339027854291.715 5.4192984952676e-05 18534.585 +20 17929053871418.46 3.83205276944912e-05 26211.654 +21 50710423571851.45 2.709681207855453e-05 37068.731 +22 143429890331506.2 1.916037736487295e-05 52422.999 +23 405679792821342.3 1.354844608210886e-05 74137.243 +24 1147434035925342 9.580202826662439e-06 104845.843 -- !sql_test_Varchar_BigInt_notn_1 -- 1 \N \N \N @@ -4756,18 +4756,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.2417800649009E10 4.331139116064177E-4 2319.121 -14 3.5069835820878E10 3.064120874020952E-4 3278.082 -15 9.9117546748239E10 2.167207002372932E-4 4634.741 -16 2.80240804202952E11 1.5326399923630953E-4 6553.688 -17 7.924908118616699E11 1.0838083933254776E-4 9267.73 -18 2.241290698050723E12 7.66392450618566E-5 13106.137 -19 6.339027854291715E12 5.4192984952676005E-5 18534.585 -20 1.7929053871418465E13 3.83205276944912E-5 26211.654 -21 5.0710423571851445E13 2.7096812078554534E-5 37068.731 -22 1.4342989033150622E14 1.9160377364872948E-5 52422.999 -23 4.056797928213423E14 1.354844608210886E-5 74137.243 -24 1.1474340359253418E15 9.580202826662439E-6 104845.843 +13 12417800649.009 0.0004331139116064177 2319.121 +14 35069835820.878 0.0003064120874020952 3278.082 +15 99117546748.239 0.0002167207002372932 4634.741 +16 280240804202.952 0.0001532639992363095 6553.688 +17 792490811861.6699 0.0001083808393325478 9267.73 +18 2241290698050.723 7.66392450618566e-05 13106.137 +19 6339027854291.715 5.4192984952676e-05 18534.585 +20 17929053871418.46 3.83205276944912e-05 26211.654 +21 50710423571851.45 2.709681207855453e-05 37068.731 +22 143429890331506.2 1.916037736487295e-05 52422.999 +23 405679792821342.3 1.354844608210886e-05 74137.243 +24 1147434035925342 9.580202826662439e-06 104845.843 -- !sql_test_Varchar_BigInt_2 -- \N \N @@ -4889,18 +4889,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07092964121E8 -1.07088325879E8 -14 2.13968923082E8 -2.13962366918E8 -15 4.27720279741E8 -4.27711010259E8 -16 8.55222198688E8 -8.55209091312E8 -17 1.71022491273E9 -1.71020637727E9 -18 3.420228751137E9 -3.420202538863E9 -19 6.840234179585E9 -6.840197110415E9 -20 1.3680241856654E10 -1.3680189433346E10 -21 2.7360252713731E10 -2.7360178576269E10 -22 5.4720268067999E10 -5.4720163222001E10 -23 1.09440289782243E11 -1.09440141507757E11 -24 2.18880320490843E11 -2.18880110799157E11 +13 107092964.121 -107088325.879 +14 213968923.082 -213962366.918 +15 427720279.741 -427711010.259 +16 855222198.688 -855209091.312 +17 1710224912.73 -1710206377.27 +18 3420228751.137 -3420202538.863 +19 6840234179.585 -6840197110.415 +20 13680241856.654 -13680189433.346 +21 27360252713.731 -27360178576.269 +22 54720268067.999 -54720163222.001 +23 109440289782.243 -109440141507.757 +24 218880320490.843 -218880110799.157 -- !sql_test_Varchar_LargeInt_notn_0 -- 1 \N \N @@ -4915,18 +4915,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07092964121E8 -1.07088325879E8 -14 2.13968923082E8 -2.13962366918E8 -15 4.27720279741E8 -4.27711010259E8 -16 8.55222198688E8 -8.55209091312E8 -17 1.71022491273E9 -1.71020637727E9 -18 3.420228751137E9 -3.420202538863E9 -19 6.840234179585E9 -6.840197110415E9 -20 1.3680241856654E10 -1.3680189433346E10 -21 2.7360252713731E10 -2.7360178576269E10 -22 5.4720268067999E10 -5.4720163222001E10 -23 1.09440289782243E11 -1.09440141507757E11 -24 2.18880320490843E11 -2.18880110799157E11 +13 107092964.121 -107088325.879 +14 213968923.082 -213962366.918 +15 427720279.741 -427711010.259 +16 855222198.688 -855209091.312 +17 1710224912.73 -1710206377.27 +18 3420228751.137 -3420202538.863 +19 6840234179.585 -6840197110.415 +20 13680241856.654 -13680189433.346 +21 27360252713.731 -27360178576.269 +22 54720268067.999 -54720163222.001 +23 109440289782.243 -109440141507.757 +24 218880320490.843 -218880110799.157 -- !sql_test_Varchar_LargeInt_1 -- \N \N \N \N @@ -4942,18 +4942,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.48356163723045E11 2.165568243612689E-5 2319.121 -14 7.0139692949289E11 1.5320599715902988E-5 3278.082 -15 1.982351236222945E12 1.0836033365111066E-5 4634.741 -16 5.60481651004876E12 7.663199379379923E-6 6553.688 -17 1.584981683963585E13 5.419041760666386E-6 9267.73 -18 4.482581481291337E13 3.83196218026773E-6 13106.137 -19 1.2678055829058231E14 2.709649221885021E-6 18534.585 -20 3.585810791321268E14 1.916026375620777E-6 26211.654 -21 1.0142084738464965E15 1.3548406007090153E-6 37068.731 -22 2.8685978100376195E15 9.580188671056544E-7 52422.999 -23 8.113595861245767E15 6.774223037031005E-7 74137.243 -24 2.2948680725321812E16 4.790101411908721E-7 104845.843 +13 248356163723.045 2.165568243612689e-05 2319.121 +14 701396929492.89 1.532059971590299e-05 3278.082 +15 1982351236222.945 1.083603336511107e-05 4634.741 +16 5604816510048.76 7.663199379379923e-06 6553.688 +17 15849816839635.85 5.419041760666386e-06 9267.73 +18 44825814812913.37 3.83196218026773e-06 13106.137 +19 126780558290582.3 2.709649221885021e-06 18534.585 +20 358581079132126.8 1.916026375620777e-06 26211.654 +21 1014208473846496 1.354840600709015e-06 37068.731 +22 2868597810037620 9.580188671056544e-07 52422.999 +23 8113595861245767 6.774223037031005e-07 74137.243 +24 2.294868072532181e+16 4.790101411908721e-07 104845.843 -- !sql_test_Varchar_LargeInt_notn_1 -- 1 \N \N \N @@ -4968,18 +4968,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.48356163723045E11 2.165568243612689E-5 2319.121 -14 7.0139692949289E11 1.5320599715902988E-5 3278.082 -15 1.982351236222945E12 1.0836033365111066E-5 4634.741 -16 5.60481651004876E12 7.663199379379923E-6 6553.688 -17 1.584981683963585E13 5.419041760666386E-6 9267.73 -18 4.482581481291337E13 3.83196218026773E-6 13106.137 -19 1.2678055829058231E14 2.709649221885021E-6 18534.585 -20 3.585810791321268E14 1.916026375620777E-6 26211.654 -21 1.0142084738464965E15 1.3548406007090153E-6 37068.731 -22 2.8685978100376195E15 9.580188671056544E-7 52422.999 -23 8.113595861245767E15 6.774223037031005E-7 74137.243 -24 2.2948680725321812E16 4.790101411908721E-7 104845.843 +13 248356163723.045 2.165568243612689e-05 2319.121 +14 701396929492.89 1.532059971590299e-05 3278.082 +15 1982351236222.945 1.083603336511107e-05 4634.741 +16 5604816510048.76 7.663199379379923e-06 6553.688 +17 15849816839635.85 5.419041760666386e-06 9267.73 +18 44825814812913.37 3.83196218026773e-06 13106.137 +19 126780558290582.3 2.709649221885021e-06 18534.585 +20 358581079132126.8 1.916026375620777e-06 26211.654 +21 1014208473846496 1.354840600709015e-06 37068.731 +22 2868597810037620 9.580188671056544e-07 52422.999 +23 8113595861245767 6.774223037031005e-07 74137.243 +24 2.294868072532181e+16 4.790101411908721e-07 104845.843 -- !sql_test_Varchar_LargeInt_2 -- \N \N @@ -5102,17 +5102,17 @@ 11 \N \N 12 \N \N 13 2319.22100000149 2319.02099999851 -14 3278.28200000298 3277.8819999970196 +14 3278.28200000298 3277.88199999702 15 4635.041000011921 4634.440999988079 16 6554.088000005961 6553.28799999404 17 9268.23 9267.23 -18 13106.737000023842 13105.536999976159 +18 13106.73700002384 13105.53699997616 19 18535.28499998808 18533.88500001192 -20 26212.45400001192 26210.853999988078 +20 26212.45400001192 26210.85399998808 21 37069.63099997616 37067.83100002384 22 52423.999 52421.999 23 74138.34300002384 74136.14299997616 -24 104847.04300004768 104844.64299995231 +24 104847.0430000477 104844.6429999523 -- !sql_test_Varchar_Float_notn_0 -- 1 \N \N @@ -5128,17 +5128,17 @@ 11 \N \N 12 \N \N 13 2319.22100000149 2319.02099999851 -14 3278.28200000298 3277.8819999970196 +14 3278.28200000298 3277.88199999702 15 4635.041000011921 4634.440999988079 16 6554.088000005961 6553.28799999404 17 9268.23 9267.23 -18 13106.737000023842 13105.536999976159 +18 13106.73700002384 13105.53699997616 19 18535.28499998808 18533.88500001192 -20 26212.45400001192 26210.853999988078 +20 26212.45400001192 26210.85399998808 21 37069.63099997616 37067.83100002384 22 52423.999 52421.999 23 74138.34300002384 74136.14299997616 -24 104847.04300004768 104844.64299995231 +24 104847.0430000477 104844.6429999523 -- !sql_test_Varchar_Float_1 -- \N \N \N \N @@ -5154,18 +5154,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 231.9121034557596 23191.20965442405 0.020965442717169935 -14 655.6164097694457 16390.409755763863 0.08195115399348651 -15 1390.4223552504181 15449.136052773156 0.040815833568558446 -16 2621.4752390630247 16384.219755856102 0.08790234375010186 -17 4633.865 18535.46 0.22999999999956344 -18 7863.6825124746565 21843.560798681545 0.3364792222982942 -19 12974.209279050528 26477.979022345866 0.6853156304350705 -20 20969.323512467265 32764.567011769905 0.45360942268234794 +13 231.9121034557596 23191.20965442405 0.02096544271716994 +14 655.6164097694457 16390.40975576386 0.08195115399348651 +15 1390.422355250418 15449.13605277316 0.04081583356855845 +16 2621.475239063025 16384.2197558561 0.08790234375010186 +17 4633.865 18535.46 0.2299999999995634 +18 7863.682512474657 21843.56079868154 0.3364792222982942 +19 12974.20927905053 26477.97902234587 0.6853156304350705 +20 20969.32351246726 32764.5670117699 0.4536094226823479 21 33361.85701621258 41187.47997998449 0.4319819746015128 22 52422.999 52422.999 0.9990000000034343 23 81550.96906756962 67397.49217556234 0.5413931303046411 -24 125815.01659943938 87371.53236150056 0.6388338260585442 +24 125815.0165994394 87371.53236150056 0.6388338260585442 -- !sql_test_Varchar_Float_notn_1 -- 1 \N \N \N @@ -5180,18 +5180,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 231.9121034557596 23191.20965442405 0.020965442717169935 -14 655.6164097694457 16390.409755763863 0.08195115399348651 -15 1390.4223552504181 15449.136052773156 0.040815833568558446 -16 2621.4752390630247 16384.219755856102 0.08790234375010186 -17 4633.865 18535.46 0.22999999999956344 -18 7863.6825124746565 21843.560798681545 0.3364792222982942 -19 12974.209279050528 26477.979022345866 0.6853156304350705 -20 20969.323512467265 32764.567011769905 0.45360942268234794 +13 231.9121034557596 23191.20965442405 0.02096544271716994 +14 655.6164097694457 16390.40975576386 0.08195115399348651 +15 1390.422355250418 15449.13605277316 0.04081583356855845 +16 2621.475239063025 16384.2197558561 0.08790234375010186 +17 4633.865 18535.46 0.2299999999995634 +18 7863.682512474657 21843.56079868154 0.3364792222982942 +19 12974.20927905053 26477.97902234587 0.6853156304350705 +20 20969.32351246726 32764.5670117699 0.4536094226823479 21 33361.85701621258 41187.47997998449 0.4319819746015128 22 52422.999 52422.999 0.9990000000034343 23 81550.96906756962 67397.49217556234 0.5413931303046411 -24 125815.01659943938 87371.53236150056 0.6388338260585442 +24 125815.0165994394 87371.53236150056 0.6388338260585442 -- !sql_test_Varchar_Float_2 -- \N \N @@ -5313,18 +5313,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2319.6454 2318.5966000000003 -14 3278.8235999999997 3277.3404 +13 2319.6454 2318.5966 +14 3278.8236 3277.3404 15 4635.7778 4633.7042 16 6555.1371 6552.2389 17 9269.761 9265.698999999999 -18 13108.9918 13103.282200000001 -19 18538.606799999998 18530.5632 -20 26217.3285 26205.979499999998 +18 13108.9918 13103.2822 +19 18538.6068 18530.5632 +20 26217.3285 26205.9795 21 37076.7451 37060.7169 -22 52434.323800000006 52411.6742 +22 52434.32380000001 52411.6742 23 74153.2516 74121.2344 -24 104868.477 104823.20899999999 +24 104868.477 104823.209 -- !sql_test_Varchar_Double_notn_0 -- 1 \N \N @@ -5339,18 +5339,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2319.6454 2318.5966000000003 -14 3278.8235999999997 3277.3404 +13 2319.6454 2318.5966 +14 3278.8236 3277.3404 15 4635.7778 4633.7042 16 6555.1371 6552.2389 17 9269.761 9265.698999999999 -18 13108.9918 13103.282200000001 -19 18538.606799999998 18530.5632 -20 26217.3285 26205.979499999998 +18 13108.9918 13103.2822 +19 18538.6068 18530.5632 +20 26217.3285 26205.9795 21 37076.7451 37060.7169 -22 52434.323800000006 52411.6742 +22 52434.32380000001 52411.6742 23 74153.2516 74121.2344 -24 104868.477 104823.20899999999 +24 104868.477 104823.209 -- !sql_test_Varchar_Double_1 -- \N \N \N \N @@ -5366,17 +5366,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1216.1470524 4422.427536231884 0.22420000000019513 -14 2431.0256112 4420.283171521035 0.20999999999971664 -15 4805.2994688 4470.2363040123455 0.24500000000023636 +13 1216.1470524 4422.427536231884 0.2242000000001951 +14 2431.0256112 4420.283171521035 0.2099999999997166 +15 4805.2994688 4470.236304012345 0.2450000000002364 16 9496.949280800001 4522.591953626389 0.8577999999998545 17 18822.75963 4563.13638601674 0.2769999999989312 -18 37415.399907600004 4590.912498248564 2.605000000000606 -19 74542.39395299999 4608.529762792779 2.1305999999999585 -20 148738.030623 4619.200634417129 1.1384999999981726 -21 297072.5171071 4625.439038694301 3.5185000000038684 +18 37415.3999076 4590.912498248564 2.605000000000606 +19 74542.39395299999 4608.529762792779 2.130599999999959 +20 148738.030623 4619.200634417129 1.138499999998173 +21 297072.5171071 4625.439038694301 3.518500000003868 22 593679.9790752 4629.044133229726 0.4998000000045657 -23 1186833.4682898002 4631.088477443374 1.4163999999963153 +23 1186833.4682898 4631.088477443374 1.416399999996315 24 2373080.810462 4632.22775470531 5.154999999991901 -- !sql_test_Varchar_Double_notn_1 -- @@ -5392,17 +5392,17 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1216.1470524 4422.427536231884 0.22420000000019513 -14 2431.0256112 4420.283171521035 0.20999999999971664 -15 4805.2994688 4470.2363040123455 0.24500000000023636 +13 1216.1470524 4422.427536231884 0.2242000000001951 +14 2431.0256112 4420.283171521035 0.2099999999997166 +15 4805.2994688 4470.236304012345 0.2450000000002364 16 9496.949280800001 4522.591953626389 0.8577999999998545 17 18822.75963 4563.13638601674 0.2769999999989312 -18 37415.399907600004 4590.912498248564 2.605000000000606 -19 74542.39395299999 4608.529762792779 2.1305999999999585 -20 148738.030623 4619.200634417129 1.1384999999981726 -21 297072.5171071 4625.439038694301 3.5185000000038684 +18 37415.3999076 4590.912498248564 2.605000000000606 +19 74542.39395299999 4608.529762792779 2.130599999999959 +20 148738.030623 4619.200634417129 1.138499999998173 +21 297072.5171071 4625.439038694301 3.518500000003868 22 593679.9790752 4629.044133229726 0.4998000000045657 -23 1186833.4682898002 4631.088477443374 1.4163999999963153 +23 1186833.4682898 4631.088477443374 1.416399999996315 24 2373080.810462 4632.22775470531 5.154999999991901 -- !sql_test_Varchar_Double_2 -- @@ -5525,18 +5525,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2343.516 2294.726 -14 3312.566 3243.598 -15 4683.497 4585.985 -16 6622.631 6484.745 -17 9365.224 9170.235999999999 -18 13244.011 12968.263 -19 18729.565 18339.605 -20 26487.394999999997 25935.913 -21 37458.686 36678.776 -22 52974.478 51871.520000000004 -23 74917.151 73357.335 -24 105948.79999999999 103742.886 +13 2343.516200000 2294.725800000 +14 3312.565700000 3243.598300000 +15 4683.496800000 4585.985200000 +16 6622.630900000 6484.745100000 +17 9365.224200000 9170.235800000 +18 13244.010600000 12968.263400000 +19 18729.564800000 18339.605200000 +20 26487.395000000 25935.913000000 +21 37458.686300000 36678.775700000 +22 52974.478000000 51871.520000000 +23 74917.151400000 73357.334600000 +24 105948.799500000 103742.886500000 -- !sql_test_Varchar_DecimalV2_notn_0 -- 1 \N \N @@ -5551,18 +5551,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2343.516 2294.726 -14 3312.566 3243.598 -15 4683.497 4585.985 -16 6622.631 6484.745 -17 9365.224 9170.235999999999 -18 13244.011 12968.263 -19 18729.565 18339.605 -20 26487.394999999997 25935.913 -21 37458.686 36678.776 -22 52974.478 51871.520000000004 -23 74917.151 73357.335 -24 105948.79999999999 103742.886 +13 2343.516200000 2294.725800000 +14 3312.565700000 3243.598300000 +15 4683.496800000 4585.985200000 +16 6622.630900000 6484.745100000 +17 9365.224200000 9170.235800000 +18 13244.010600000 12968.263400000 +19 18729.564800000 18339.605200000 +20 26487.395000000 25935.913000000 +21 37458.686300000 36678.775700000 +22 52974.478000000 51871.520000000 +23 74917.151400000 73357.334600000 +24 105948.799500000 103742.886500000 -- !sql_test_Varchar_DecimalV2_1 -- \N \N \N \N @@ -5578,18 +5578,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 56574.956795 95.06542324246773 1.596000000000135 -14 113041.379688 95.060955805591 2.1019999999997125 -15 225971.432196 95.0599105751087 2.920999999999964 -16 451830.911784 95.05951293097196 4.103000000000307 -17 903548.0686199999 95.05949084046198 5.799999999999585 -18 1806995.532738 95.0588000638264 8.10700000000108 -19 3613873.3833 95.05890347727973 11.485000000000099 -20 7227627.685613999 95.05896475315605 16.259000000000015 -21 1.4455136997104999E7 95.05899655088407 23.00600000000128 -22 2.8910183065521006E7 95.05892155458322 32.49399999999946 -23 5.7820228913644E7 95.05895951830216 45.98300000000074 -24 1.15640456457751E8 95.0588672087851 64.92799999998329 +13 56575.420619200 95.06464386436677 1.577000000 +14 113040.396263400 95.0617828133292 2.130500000 +15 225970.505247800 95.06030051809221 2.940000000 +16 451830.256415200 95.05965081248397 4.112500000 +17 903549.922166000 95.05929583503428 5.781000000 +18 1806990.290283200 95.0590758491836 8.145000000 +19 3613869.676383000 95.05900098369163 11.504000000 +20 7227627.685614000 95.05896475315605 16.259000000 +21 14455148.117724300 95.05892342019713 22.977500000 +22 28910183.065521000 95.05892155458322 32.494000000 +23 57820258.568541200 95.05891076439234 45.945000000 +24 115640404.034829500 95.05891030153954 64.975500000 -- !sql_test_Varchar_DecimalV2_notn_1 -- 1 \N \N \N @@ -5604,18 +5604,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 56574.956795 95.06542324246773 1.596000000000135 -14 113041.379688 95.060955805591 2.1019999999997125 -15 225971.432196 95.0599105751087 2.920999999999964 -16 451830.911784 95.05951293097196 4.103000000000307 -17 903548.0686199999 95.05949084046198 5.799999999999585 -18 1806995.532738 95.0588000638264 8.10700000000108 -19 3613873.3833 95.05890347727973 11.485000000000099 -20 7227627.685613999 95.05896475315605 16.259000000000015 -21 1.4455136997104999E7 95.05899655088407 23.00600000000128 -22 2.8910183065521006E7 95.05892155458322 32.49399999999946 -23 5.7820228913644E7 95.05895951830216 45.98300000000074 -24 1.15640456457751E8 95.0588672087851 64.92799999998329 +13 56575.420619200 95.06464386436677 1.577000000 +14 113040.396263400 95.0617828133292 2.130500000 +15 225970.505247800 95.06030051809221 2.940000000 +16 451830.256415200 95.05965081248397 4.112500000 +17 903549.922166000 95.05929583503428 5.781000000 +18 1806990.290283200 95.0590758491836 8.145000000 +19 3613869.676383000 95.05900098369163 11.504000000 +20 7227627.685614000 95.05896475315605 16.259000000 +21 14455148.117724300 95.05892342019713 22.977500000 +22 28910183.065521000 95.05892155458322 32.494000000 +23 57820258.568541200 95.05891076439234 45.945000000 +24 115640404.034829500 95.05891030153954 64.975500000 -- !sql_test_Varchar_DecimalV2_2 -- \N \N @@ -5741,14 +5741,14 @@ 14 3434.537 3121.627 15 4802.307 4467.175 16 6732.365 6375.011 -17 9457.518 9077.942 -18 13307.036 12905.238000000001 -19 18746.594999999998 18322.575 -20 26434.774999999998 25988.533 -21 37302.963 36834.498999999996 -22 52668.342000000004 52177.656 +17 9457.518 9077.941999999999 +18 13307.036 12905.238 +19 18746.595 18322.575 +20 26434.775 25988.533 +21 37302.963 36834.499 +22 52668.342 52177.656 23 74393.697 73880.789 -24 105113.408 104578.27799999999 +24 105113.408 104578.278 -- !sql_test_Varchar_Decimal32V3_notn_0 -- 1 \N \N @@ -5767,14 +5767,14 @@ 14 3434.537 3121.627 15 4802.307 4467.175 16 6732.365 6375.011 -17 9457.518 9077.942 -18 13307.036 12905.238000000001 -19 18746.594999999998 18322.575 -20 26434.774999999998 25988.533 -21 37302.963 36834.498999999996 -22 52668.342000000004 52177.656 +17 9457.518 9077.941999999999 +18 13307.036 12905.238 +19 18746.595 18322.575 +20 26434.775 25988.533 +21 37302.963 36834.499 +22 52668.342 52177.656 23 74393.697 73880.789 -24 105113.408 104578.27799999999 +24 105113.408 104578.278 -- !sql_test_Varchar_Decimal32V3_1 -- \N \N \N \N @@ -5790,18 +5790,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 337070.322624 15.95608349845883 138.96100000000018 -14 512872.31931000005 20.952235467067204 148.98199999999963 -15 776625.010406 27.659196973132975 110.45899999999992 -16 1170993.310776 36.67896819400371 121.31600000000037 -17 1758903.94124 48.832012561384275 157.90599999999904 -18 2633009.8171630003 65.23744269508559 47.70200000000057 -19 3929517.3658499997 87.42316400169803 89.71499999999992 -20 5848370.452134 117.47730603573845 106.49699999999754 -21 8682682.999592 158.2564764848526 60.074999999999875 -22 1.2861615843657E7 213.67228329318547 164.9400000000057 -23 1.9012792516322E7 289.0859296404033 22.036999999999978 -24 2.8053077982295E7 391.8518602956291 227.92799999999437 +13 337070.322624 15.95608349845883 138.9610000000002 +14 512872.31931 20.9522354670672 148.9819999999996 +15 776625.010406 27.65919697313297 110.4589999999999 +16 1170993.310776 36.67896819400371 121.3160000000004 +17 1758903.94124 48.83201256138427 157.905999999999 +18 2633009.817163 65.23744269508559 47.70200000000057 +19 3929517.36585 87.42316400169803 89.71499999999992 +20 5848370.452134 117.4773060357385 106.4969999999975 +21 8682682.999592001 158.2564764848526 60.07499999999987 +22 12861615.843657 213.6722832931855 164.9400000000057 +23 19012792.516322 289.0859296404033 22.03699999999998 +24 28053077.982295 391.8518602956291 227.9279999999944 -- !sql_test_Varchar_Decimal32V3_notn_1 -- 1 \N \N \N @@ -5816,18 +5816,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 337070.322624 15.95608349845883 138.96100000000018 -14 512872.31931000005 20.952235467067204 148.98199999999963 -15 776625.010406 27.659196973132975 110.45899999999992 -16 1170993.310776 36.67896819400371 121.31600000000037 -17 1758903.94124 48.832012561384275 157.90599999999904 -18 2633009.8171630003 65.23744269508559 47.70200000000057 -19 3929517.3658499997 87.42316400169803 89.71499999999992 -20 5848370.452134 117.47730603573845 106.49699999999754 -21 8682682.999592 158.2564764848526 60.074999999999875 -22 1.2861615843657E7 213.67228329318547 164.9400000000057 -23 1.9012792516322E7 289.0859296404033 22.036999999999978 -24 2.8053077982295E7 391.8518602956291 227.92799999999437 +13 337070.322624 15.95608349845883 138.9610000000002 +14 512872.31931 20.9522354670672 148.9819999999996 +15 776625.010406 27.65919697313297 110.4589999999999 +16 1170993.310776 36.67896819400371 121.3160000000004 +17 1758903.94124 48.83201256138427 157.905999999999 +18 2633009.817163 65.23744269508559 47.70200000000057 +19 3929517.36585 87.42316400169803 89.71499999999992 +20 5848370.452134 117.4773060357385 106.4969999999975 +21 8682682.999592001 158.2564764848526 60.07499999999987 +22 12861615.843657 213.6722832931855 164.9400000000057 +23 19012792.516322 289.0859296404033 22.03699999999998 +24 28053077.982295 391.8518602956291 227.9279999999944 -- !sql_test_Varchar_Decimal32V3_2 -- \N \N @@ -5949,18 +5949,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 16886.466660000002 -12248.22466 +13 16886.46666 -12248.22466 14 18956.53877 -12400.37477 -15 21424.308879999997 -12154.826879999999 -16 24454.366990000002 -11346.99099 -17 28279.520099999998 -9744.060099999999 +15 21424.30888 -12154.82688 +16 24454.36699 -11346.99099 +17 28279.5201 -9744.060099999999 18 33229.03821 -7016.764209999999 -19 39768.59732 -2699.4273200000025 +19 39768.59732 -2699.427320000003 20 48556.77743 3866.530569999999 -21 60524.965540000005 13612.496459999998 -22 76990.34465 27855.653350000004 +21 60524.96554 13612.49646 +22 76990.34465 27855.65335 23 99815.69976 48458.78624 -24 131635.41087 78056.27513 +24 131635.41087 78056.27512999999 -- !sql_test_Varchar_Decimal64V3_notn_0 -- 1 \N \N @@ -5975,18 +5975,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 16886.466660000002 -12248.22466 +13 16886.46666 -12248.22466 14 18956.53877 -12400.37477 -15 21424.308879999997 -12154.826879999999 -16 24454.366990000002 -11346.99099 -17 28279.520099999998 -9744.060099999999 +15 21424.30888 -12154.82688 +16 24454.36699 -11346.99099 +17 28279.5201 -9744.060099999999 18 33229.03821 -7016.764209999999 -19 39768.59732 -2699.4273200000025 +19 39768.59732 -2699.427320000003 20 48556.77743 3866.530569999999 -21 60524.965540000005 13612.496459999998 -22 76990.34465 27855.653350000004 +21 60524.96554 13612.49646 +22 76990.34465 27855.65335 23 99815.69976 48458.78624 -24 131635.41087 78056.27513 +24 131635.41087 78056.27512999999 -- !sql_test_Varchar_Decimal64V3_1 -- \N \N \N \N @@ -6002,18 +6002,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378343723436486E7 0.15919997054562923 2319.121 -14 5.139526692551514E7 0.20908192994303226 3278.082 -15 7.781529862571907E7 0.2760488556421382 4634.741 -16 1.1731546508861512E8 0.36611393364805545 6553.688 -17 1.7619613746347296E8 0.48747277090966834 9267.73 -18 2.6373350009572577E8 0.6513045441721373 13106.137 -19 3.935636062360872E8 0.8728724802774344 18534.585 -20 5.857026439344531E8 1.1730368857488114 3866.530569999999 -21 8.694928484361688E8 1.580335962994681 13612.496459999998 -22 1.2878939364426043E9 2.133848717189356 3288.307700000005 -23 1.9037299886811128E9 2.887137793867952 22780.32948 -24 2.808774826935864E9 3.9136817551062646 24477.139389999997 +13 33783437.23436486 0.1591999705456292 2319.121 +14 51395266.92551514 0.2090819299430323 3278.082 +15 77815298.62571907 0.2760488556421382 4634.741 +16 117315465.0886151 0.3661139336480554 6553.688 +17 176196137.463473 0.4874727709096683 9267.73 +18 263733500.0957258 0.6513045441721373 13106.137 +19 393563606.2360872 0.8728724802774344 18534.585 +20 585702643.9344531 1.173036885748811 3866.530569999999 +21 869492848.4361688 1.580335962994681 13612.49646 +22 1287893936.442604 2.133848717189356 3288.307700000005 +23 1903729988.681113 2.887137793867952 22780.32948 +24 2808774826.935864 3.913681755106265 24477.13939 -- !sql_test_Varchar_Decimal64V3_notn_1 -- 1 \N \N \N @@ -6028,18 +6028,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378343723436486E7 0.15919997054562923 2319.121 -14 5.139526692551514E7 0.20908192994303226 3278.082 -15 7.781529862571907E7 0.2760488556421382 4634.741 -16 1.1731546508861512E8 0.36611393364805545 6553.688 -17 1.7619613746347296E8 0.48747277090966834 9267.73 -18 2.6373350009572577E8 0.6513045441721373 13106.137 -19 3.935636062360872E8 0.8728724802774344 18534.585 -20 5.857026439344531E8 1.1730368857488114 3866.530569999999 -21 8.694928484361688E8 1.580335962994681 13612.496459999998 -22 1.2878939364426043E9 2.133848717189356 3288.307700000005 -23 1.9037299886811128E9 2.887137793867952 22780.32948 -24 2.808774826935864E9 3.9136817551062646 24477.139389999997 +13 33783437.23436486 0.1591999705456292 2319.121 +14 51395266.92551514 0.2090819299430323 3278.082 +15 77815298.62571907 0.2760488556421382 4634.741 +16 117315465.0886151 0.3661139336480554 6553.688 +17 176196137.463473 0.4874727709096683 9267.73 +18 263733500.0957258 0.6513045441721373 13106.137 +19 393563606.2360872 0.8728724802774344 18534.585 +20 585702643.9344531 1.173036885748811 3866.530569999999 +21 869492848.4361688 1.580335962994681 13612.49646 +22 1287893936.442604 2.133848717189356 3288.307700000005 +23 1903729988.681113 2.887137793867952 22780.32948 +24 2808774826.935864 3.913681755106265 24477.13939 -- !sql_test_Varchar_Decimal64V3_2 -- \N \N @@ -6161,18 +6161,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568133046667698E8 -1.45676692224677E8 -14 1.56793400538788E8 -1.5678684437478802E8 -15 1.67905868308899E8 -1.67896598826899E8 -16 1.7901889836701E8 -1.7900579099101E8 -17 1.9013272352012098E8 -1.90114188060121E8 -18 2.01247673038232E8 -2.01221460764232E8 -19 2.12364212597343E8 -2.1232714342734298E8 -20 2.2348300077745402E8 -2.23430577469454E8 -21 2.34604968965565E8 -2.3453083150356498E8 -22 2.4573143434467602E8 -2.45626588346676E8 -23 2.56864259699787E8 -2.56715985213787E8 -24 2.68006079410898E8 -2.67796387724898E8 +13 145681330.466677 -145676692.224677 +14 156793400.538788 -156786844.374788 +15 167905868.308899 -167896598.826899 +16 179018898.36701 -179005790.99101 +17 190132723.520121 -190114188.060121 +18 201247673.038232 -201221460.764232 +19 212364212.597343 -212327143.427343 +20 223483000.777454 -223430577.469454 +21 234604968.965565 -234530831.503565 +22 245731434.344676 -245626588.346676 +23 256864259.699787 -256715985.213787 +24 268006079.410898 -267796387.724898 -- !sql_test_Varchar_Decimal128V3_notn_0 -- 1 \N \N @@ -6187,18 +6187,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568133046667698E8 -1.45676692224677E8 -14 1.56793400538788E8 -1.5678684437478802E8 -15 1.67905868308899E8 -1.67896598826899E8 -16 1.7901889836701E8 -1.7900579099101E8 -17 1.9013272352012098E8 -1.90114188060121E8 -18 2.01247673038232E8 -2.01221460764232E8 -19 2.12364212597343E8 -2.1232714342734298E8 -20 2.2348300077745402E8 -2.23430577469454E8 -21 2.34604968965565E8 -2.3453083150356498E8 -22 2.4573143434467602E8 -2.45626588346676E8 -23 2.56864259699787E8 -2.56715985213787E8 -24 2.68006079410898E8 -2.67796387724898E8 +13 145681330.466677 -145676692.224677 +14 156793400.538788 -156786844.374788 +15 167905868.308899 -167896598.826899 +16 179018898.36701 -179005790.99101 +17 190132723.520121 -190114188.060121 +18 201247673.038232 -201221460.764232 +19 212364212.597343 -212327143.427343 +20 223483000.777454 -223430577.469454 +21 234604968.965565 -234530831.503565 +22 245731434.344676 -245626588.346676 +23 256864259.699787 -256715985.213787 +24 268006079.410898 -267796387.724898 -- !sql_test_Varchar_Decimal128V3_1 -- \N \N \N \N @@ -6214,18 +6214,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378472544709978E11 1.5919390024531627E-5 2319.121 -14 5.139708782033925E11 2.0907452259331278E-5 3278.082 -15 7.781787311677178E11 2.7603972296759323E-5 4634.741 -16 1.1731910551746917E12 3.661025730796123E-5 6553.688 -17 1.7620128549297778E12 4.874585285379375E-5 9267.73 -18 2.6374078029432124E12 6.512865658131501E-5 13106.137 -19 3.935739018502402E12 8.728496465523843E-5 18534.585 -20 5.857172040454939E12 1.1730077256913751E-4 26211.654 -21 8.695134395029927E12 1.580298538842345E-4 37068.731 -22 1.2879230566095363E13 2.13380047049439E-4 52422.999 -23 1.9037711708578574E13 2.8870753396083575E-4 74137.243 -24 2.8088330674166164E13 3.9136006058526575E-4 104845.843 +13 337847254470.9978 1.591939002453163e-05 2319.121 +14 513970878203.3925 2.090745225933128e-05 3278.082 +15 778178731167.7178 2.760397229675932e-05 4634.741 +16 1173191055174.692 3.661025730796123e-05 6553.688 +17 1762012854929.778 4.874585285379375e-05 9267.73 +18 2637407802943.212 6.512865658131501e-05 13106.137 +19 3935739018502.402 8.728496465523843e-05 18534.585 +20 5857172040454.939 0.0001173007725691375 26211.654 +21 8695134395029.927 0.0001580298538842345 37068.731 +22 12879230566095.36 0.000213380047049439 52422.999 +23 19037711708578.57 0.0002887075339608358 74137.243 +24 28088330674166.16 0.0003913600605852657 104845.843 -- !sql_test_Varchar_Decimal128V3_notn_1 -- 1 \N \N \N @@ -6240,18 +6240,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 3.378472544709978E11 1.5919390024531627E-5 2319.121 -14 5.139708782033925E11 2.0907452259331278E-5 3278.082 -15 7.781787311677178E11 2.7603972296759323E-5 4634.741 -16 1.1731910551746917E12 3.661025730796123E-5 6553.688 -17 1.7620128549297778E12 4.874585285379375E-5 9267.73 -18 2.6374078029432124E12 6.512865658131501E-5 13106.137 -19 3.935739018502402E12 8.728496465523843E-5 18534.585 -20 5.857172040454939E12 1.1730077256913751E-4 26211.654 -21 8.695134395029927E12 1.580298538842345E-4 37068.731 -22 1.2879230566095363E13 2.13380047049439E-4 52422.999 -23 1.9037711708578574E13 2.8870753396083575E-4 74137.243 -24 2.8088330674166164E13 3.9136006058526575E-4 104845.843 +13 337847254470.9978 1.591939002453163e-05 2319.121 +14 513970878203.3925 2.090745225933128e-05 3278.082 +15 778178731167.7178 2.760397229675932e-05 4634.741 +16 1173191055174.692 3.661025730796123e-05 6553.688 +17 1762012854929.778 4.874585285379375e-05 9267.73 +18 2637407802943.212 6.512865658131501e-05 13106.137 +19 3935739018502.402 8.728496465523843e-05 18534.585 +20 5857172040454.939 0.0001173007725691375 26211.654 +21 8695134395029.927 0.0001580298538842345 37068.731 +22 12879230566095.36 0.000213380047049439 52422.999 +23 19037711708578.57 0.0002887075339608358 74137.243 +24 28088330674166.16 0.0003913600605852657 104845.843 -- !sql_test_Varchar_Decimal128V3_2 -- \N \N @@ -6373,16 +6373,16 @@ 10 \N \N 11 \N \N 12 \N \N -13 2473.41 2164.8320000000003 +13 2473.41 2164.832 14 3496.176 3059.988 15 4943.1 4326.382 -16 6989.7210000000005 6117.655 -17 9884.338 8651.122 -18 13978.126 12234.148000000001 +16 6989.721 6117.655 +17 9884.338 8651.121999999999 +18 13978.126 12234.148 19 19767.746 17301.424 -20 27955.593999999997 24467.714 +20 27955.594 24467.714 21 39535.025 34602.437 -22 55910.859000000004 48935.139 +22 55910.859 48935.139 23 79069.817 69204.66900000001 24 111821.553 97870.13299999999 @@ -6399,16 +6399,16 @@ 10 \N \N 11 \N \N 12 \N \N -13 2473.41 2164.8320000000003 +13 2473.41 2164.832 14 3496.176 3059.988 15 4943.1 4326.382 -16 6989.7210000000005 6117.655 -17 9884.338 8651.122 -18 13978.126 12234.148000000001 +16 6989.721 6117.655 +17 9884.338 8651.121999999999 +18 13978.126 12234.148 19 19767.746 17301.424 -20 27955.593999999997 24467.714 +20 27955.594 24467.714 21 39535.025 34602.437 -22 55910.859000000004 48935.139 +22 55910.859 48935.139 23 79069.817 69204.66900000001 24 111821.553 97870.13299999999 @@ -6426,18 +6426,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 357814.859969 15.031019709765442 4.786000000000286 -14 714930.0157079999 15.030592313406146 6.671999999999969 -15 1429164.100019 15.030341258079059 9.356000000000279 -16 2857624.2397040003 15.030256884226652 13.19299999999987 -17 5714556.45984 15.030181249675646 18.610000000000355 -18 1.1428407296493001E7 15.03016322453609 26.302000000000135 -19 2.2856127373185E7 15.030142049578277 37.169999999998254 -20 4.571155187676E7 15.030135211073775 52.553999999997814 -21 9.142238885291399E7 15.030134687916364 74.32100000000173 -22 1.8284408129214E8 15.030132803495553 105.09900000000152 -23 3.65687437253482E8 15.030132948841722 148.633000000008 -24 7.313741954735299E8 15.03013212991939 210.19299999999294 +13 357814.859969 15.03101970976544 4.786000000000286 +14 714930.0157079999 15.03059231340615 6.671999999999969 +15 1429164.100019 15.03034125807906 9.356000000000279 +16 2857624.239704 15.03025688422665 13.19299999999987 +17 5714556.45984 15.03018124967565 18.61000000000035 +18 11428407.296493 15.03016322453609 26.30200000000013 +19 22856127.373185 15.03014204957828 37.16999999999825 +20 45711551.87676 15.03013521107377 52.55399999999781 +21 91422388.85291399 15.03013468791636 74.32100000000173 +22 182844081.29214 15.03013280349555 105.0990000000015 +23 365687437.253482 15.03013294884172 148.633000000008 +24 731374195.4735299 15.03013212991939 210.1929999999929 -- !sql_test_Varchar_Char_notn_1 -- 1 \N \N \N @@ -6452,18 +6452,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 357814.859969 15.031019709765442 4.786000000000286 -14 714930.0157079999 15.030592313406146 6.671999999999969 -15 1429164.100019 15.030341258079059 9.356000000000279 -16 2857624.2397040003 15.030256884226652 13.19299999999987 -17 5714556.45984 15.030181249675646 18.610000000000355 -18 1.1428407296493001E7 15.03016322453609 26.302000000000135 -19 2.2856127373185E7 15.030142049578277 37.169999999998254 -20 4.571155187676E7 15.030135211073775 52.553999999997814 -21 9.142238885291399E7 15.030134687916364 74.32100000000173 -22 1.8284408129214E8 15.030132803495553 105.09900000000152 -23 3.65687437253482E8 15.030132948841722 148.633000000008 -24 7.313741954735299E8 15.03013212991939 210.19299999999294 +13 357814.859969 15.03101970976544 4.786000000000286 +14 714930.0157079999 15.03059231340615 6.671999999999969 +15 1429164.100019 15.03034125807906 9.356000000000279 +16 2857624.239704 15.03025688422665 13.19299999999987 +17 5714556.45984 15.03018124967565 18.61000000000035 +18 11428407.296493 15.03016322453609 26.30200000000013 +19 22856127.373185 15.03014204957828 37.16999999999825 +20 45711551.87676 15.03013521107377 52.55399999999781 +21 91422388.85291399 15.03013468791636 74.32100000000173 +22 182844081.29214 15.03013280349555 105.0990000000015 +23 365687437.253482 15.03013294884172 148.633000000008 +24 731374195.4735299 15.03013212991939 210.1929999999929 -- !sql_test_Varchar_Char_2 -- \N \N @@ -6585,18 +6585,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 4638.242 0.0 -14 6556.164 0.0 -15 9269.482 0.0 -16 13107.376 0.0 -17 18535.46 0.0 -18 26212.274 0.0 -19 37069.17 0.0 -20 52423.308 0.0 -21 74137.462 0.0 -22 104845.998 0.0 -23 148274.486 0.0 -24 209691.686 0.0 +13 4638.242 0 +14 6556.164 0 +15 9269.482 0 +16 13107.376 0 +17 18535.46 0 +18 26212.274 0 +19 37069.17 0 +20 52423.308 0 +21 74137.462 0 +22 104845.998 0 +23 148274.486 0 +24 209691.686 0 -- !sql_test_Varchar_Varchar_notn_0 -- 1 \N \N @@ -6611,18 +6611,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 4638.242 0.0 -14 6556.164 0.0 -15 9269.482 0.0 -16 13107.376 0.0 -17 18535.46 0.0 -18 26212.274 0.0 -19 37069.17 0.0 -20 52423.308 0.0 -21 74137.462 0.0 -22 104845.998 0.0 -23 148274.486 0.0 -24 209691.686 0.0 +13 4638.242 0 +14 6556.164 0 +15 9269.482 0 +16 13107.376 0 +17 18535.46 0 +18 26212.274 0 +19 37069.17 0 +20 52423.308 0 +21 74137.462 0 +22 104845.998 0 +23 148274.486 0 +24 209691.686 0 -- !sql_test_Varchar_Varchar_1 -- \N \N \N \N @@ -6638,18 +6638,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5378322.212641001 1.0 0.0 -14 1.0745821598723998E7 1.0 0.0 -15 2.1480824137081E7 1.0 0.0 -16 4.2950826401344E7 1.0 0.0 -17 8.58908193529E7 1.0 0.0 -18 1.7177082706276903E8 1.0 0.0 -19 3.43530841122225E8 1.0 0.0 -20 6.870508054157159E8 1.0 0.0 -21 1.374090817950361E9 1.0 0.0 -22 2.748170824154001E9 1.0 0.0 -23 5.496330799641049E9 1.0 0.0 -24 1.0992650794380648E10 1.0 0.0 +13 5378322.212641001 1 0 +14 10745821.598724 1 0 +15 21480824.137081 1 0 +16 42950826.401344 1 0 +17 85890819.3529 1 0 +18 171770827.062769 1 0 +19 343530841.122225 1 0 +20 687050805.4157159 1 0 +21 1374090817.950361 1 0 +22 2748170824.154001 1 0 +23 5496330799.641049 1 0 +24 10992650794.38065 1 0 -- !sql_test_Varchar_Varchar_notn_1 -- 1 \N \N \N @@ -6664,18 +6664,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5378322.212641001 1.0 0.0 -14 1.0745821598723998E7 1.0 0.0 -15 2.1480824137081E7 1.0 0.0 -16 4.2950826401344E7 1.0 0.0 -17 8.58908193529E7 1.0 0.0 -18 1.7177082706276903E8 1.0 0.0 -19 3.43530841122225E8 1.0 0.0 -20 6.870508054157159E8 1.0 0.0 -21 1.374090817950361E9 1.0 0.0 -22 2.748170824154001E9 1.0 0.0 -23 5.496330799641049E9 1.0 0.0 -24 1.0992650794380648E10 1.0 0.0 +13 5378322.212641001 1 0 +14 10745821.598724 1 0 +15 21480824.137081 1 0 +16 42950826.401344 1 0 +17 85890819.3529 1 0 +18 171770827.062769 1 0 +19 343530841.122225 1 0 +20 687050805.4157159 1 0 +21 1374090817.950361 1 0 +22 2748170824.154001 1 0 +23 5496330799.641049 1 0 +24 10992650794.38065 1 0 -- !sql_test_Varchar_Varchar_2 -- \N \N @@ -6797,13 +6797,13 @@ 10 \N \N 11 \N \N 12 \N \N -13 12923.137999999999 -8284.896 +13 12923.138 -8284.896000000001 14 18266.875 -11710.711 -15 25826.754 -16557.271999999997 -16 36519.943 -23412.567000000003 +15 25826.754 -16557.272 +16 36519.943 -23412.567 17 51643.742 -33108.28200000001 -18 73032.97899999999 -46820.704999999994 -19 103282.60200000001 -66213.432 +18 73032.97899999999 -46820.70499999999 +19 103282.602 -66213.432 20 146062.505 -93639.197 21 206562.762 -132425.3 22 292123.284 -187277.286 @@ -6823,13 +6823,13 @@ 10 \N \N 11 \N \N 12 \N \N -13 12923.137999999999 -8284.896 +13 12923.138 -8284.896000000001 14 18266.875 -11710.711 -15 25826.754 -16557.271999999997 -16 36519.943 -23412.567000000003 +15 25826.754 -16557.272 +16 36519.943 -23412.567 17 51643.742 -33108.28200000001 -18 73032.97899999999 -46820.704999999994 -19 103282.60200000001 -66213.432 +18 73032.97899999999 -46820.70499999999 +19 103282.602 -66213.432 20 146062.505 -93639.197 21 206562.762 -132425.3 22 292123.284 -187277.286 @@ -6850,18 +6850,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.4591998509057E7 0.2187021201493736 2319.121 -14 4.9134492535026E7 0.2187021997034718 3278.082 -15 9.821949152363299E7 0.21870225353297018 4634.741 -16 1.9638948579844E8 0.21870227027034242 6553.688 -17 3.9272943769276E8 0.2187022695764764 9267.73 -18 7.85409401229354E8 0.21870228035710612 13106.137 -19 1.5707693246679451E9 0.21870228538798728 18534.585 -20 3.141489038017554E9 0.21870227688245616 26211.654 -21 6.28292864124466E9 0.21870227984606727 37068.731 -22 1.2565807800854715E10 0.21870228064184405 52422.999 -23 2.513156596693834E10 0.2187022809032955 74137.243 -24 5.0263082560627815E10 0.21870228076682735 104845.843 +13 24591998.509057 0.2187021201493736 2319.121 +14 49134492.535026 0.2187021997034718 3278.082 +15 98219491.52363299 0.2187022535329702 4634.741 +16 196389485.79844 0.2187022702703424 6553.688 +17 392729437.69276 0.2187022695764764 9267.73 +18 785409401.229354 0.2187022803571061 13106.137 +19 1570769324.667945 0.2187022853879873 18534.585 +20 3141489038.017554 0.2187022768824562 26211.654 +21 6282928641.24466 0.2187022798460673 37068.731 +22 12565807800.85472 0.218702280641844 52422.999 +23 25131565966.93834 0.2187022809032955 74137.243 +24 50263082560.62782 0.2187022807668274 104845.843 -- !sql_test_Varchar_String_notn_1 -- 1 \N \N \N @@ -6876,18 +6876,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.4591998509057E7 0.2187021201493736 2319.121 -14 4.9134492535026E7 0.2187021997034718 3278.082 -15 9.821949152363299E7 0.21870225353297018 4634.741 -16 1.9638948579844E8 0.21870227027034242 6553.688 -17 3.9272943769276E8 0.2187022695764764 9267.73 -18 7.85409401229354E8 0.21870228035710612 13106.137 -19 1.5707693246679451E9 0.21870228538798728 18534.585 -20 3.141489038017554E9 0.21870227688245616 26211.654 -21 6.28292864124466E9 0.21870227984606727 37068.731 -22 1.2565807800854715E10 0.21870228064184405 52422.999 -23 2.513156596693834E10 0.2187022809032955 74137.243 -24 5.0263082560627815E10 0.21870228076682735 104845.843 +13 24591998.509057 0.2187021201493736 2319.121 +14 49134492.535026 0.2187021997034718 3278.082 +15 98219491.52363299 0.2187022535329702 4634.741 +16 196389485.79844 0.2187022702703424 6553.688 +17 392729437.69276 0.2187022695764764 9267.73 +18 785409401.229354 0.2187022803571061 13106.137 +19 1570769324.667945 0.2187022853879873 18534.585 +20 3141489038.017554 0.2187022768824562 26211.654 +21 6282928641.24466 0.2187022798460673 37068.731 +22 12565807800.85472 0.218702280641844 52422.999 +23 25131565966.93834 0.2187022809032955 74137.243 +24 50263082560.62782 0.2187022807668274 104845.843 -- !sql_test_Varchar_String_2 -- \N \N @@ -7009,18 +7009,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0122620121E7 -2.0117981879E7 -14 2.0123580082E7 -2.0117023918E7 -15 2.0124937741E7 -2.0115668259E7 -16 2.0126857688E7 -2.0113750312E7 -17 2.012957273E7 -2.011103727E7 -18 2.0133412137E7 -2.0107199863E7 -19 2.0138841585E7 -2.0101772415E7 -20 2.0146519654E7 -2.0094096346E7 -21 2.0157377731E7 -2.0083240269E7 -22 2.0172732999E7 -2.0067887001E7 -23 2.0194448243E7 -2.0046173757E7 -24 2.0225157843E7 -2.0015466157E7 +13 20122620.121 -20117981.879 +14 20123580.082 -20117023.918 +15 20124937.741 -20115668.259 +16 20126857.688 -20113750.312 +17 20129572.73 -20111037.27 +18 20133412.137 -20107199.863 +19 20138841.585 -20101772.415 +20 20146519.654 -20094096.346 +21 20157377.731 -20083240.269 +22 20172732.999 -20067887.001 +23 20194448.243 -20046173.757 +24 20225157.843 -20015466.157 -- !sql_test_Varchar_Date_notn_0 -- 1 \N \N @@ -7035,18 +7035,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0122620121E7 -2.0117981879E7 -14 2.0123580082E7 -2.0117023918E7 -15 2.0124937741E7 -2.0115668259E7 -16 2.0126857688E7 -2.0113750312E7 -17 2.012957273E7 -2.011103727E7 -18 2.0133412137E7 -2.0107199863E7 -19 2.0138841585E7 -2.0101772415E7 -20 2.0146519654E7 -2.0094096346E7 -21 2.0157377731E7 -2.0083240269E7 -22 2.0172732999E7 -2.0067887001E7 -23 2.0194448243E7 -2.0046173757E7 -24 2.0225157843E7 -2.0015466157E7 +13 20122620.121 -20117981.879 +14 20123580.082 -20117023.918 +15 20124937.741 -20115668.259 +16 20126857.688 -20113750.312 +17 20129572.73 -20111037.27 +18 20133412.137 -20107199.863 +19 20138841.585 -20101772.415 +20 20146519.654 -20094096.346 +21 20157377.731 -20083240.269 +22 20172732.999 -20067887.001 +23 20194448.243 -20046173.757 +24 20225157.843 -20015466.157 -- !sql_test_Varchar_Date_1 -- \N \N \N \N @@ -7062,18 +7062,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412575421005E10 1.1526273886260449E-4 2319.121 -14 6.5955999820764E10 1.6292409527451427E-4 3278.082 -15 9.3252393246523E10 2.3035145146671002E-4 4634.741 -16 1.3186219488115201E11 3.2572509838817544E-4 6553.688 -17 1.8646955425765E11 4.606157809237981E-4 9267.73 -18 2.6369948691792203E11 6.513885524405046E-4 13106.137 -19 3.72921540317595E11 9.211879818732388E-4 18534.585 -20 5.2738655166943195E11 0.0013027461607446565 26211.654 -21 7.45834321957879E11 0.0018423539618601286 37068.731 -22 1.0547669910096901E12 0.002605476704881784 52422.999 -23 1.491664385842573E12 0.003684696672929161 74137.243 -24 2.1095310730630159E12 0.005210945188126307 104845.843 +13 46661412575.42101 0.0001152627388626045 2319.121 +14 65955999820.764 0.0001629240952745143 3278.082 +15 93252393246.52299 0.00023035145146671 4634.741 +16 131862194881.152 0.0003257250983881754 6553.688 +17 186469554257.65 0.0004606157809237981 9267.73 +18 263699486917.922 0.0006513885524405046 13106.137 +19 372921540317.595 0.0009211879818732388 18534.585 +20 527386551669.4319 0.001302746160744657 26211.654 +21 745834321957.879 0.001842353961860129 37068.731 +22 1054766991009.69 0.002605476704881784 52422.999 +23 1491664385842.573 0.003684696672929161 74137.243 +24 2109531073063.016 0.005210945188126307 104845.843 -- !sql_test_Varchar_Date_notn_1 -- 1 \N \N \N @@ -7088,18 +7088,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412575421005E10 1.1526273886260449E-4 2319.121 -14 6.5955999820764E10 1.6292409527451427E-4 3278.082 -15 9.3252393246523E10 2.3035145146671002E-4 4634.741 -16 1.3186219488115201E11 3.2572509838817544E-4 6553.688 -17 1.8646955425765E11 4.606157809237981E-4 9267.73 -18 2.6369948691792203E11 6.513885524405046E-4 13106.137 -19 3.72921540317595E11 9.211879818732388E-4 18534.585 -20 5.2738655166943195E11 0.0013027461607446565 26211.654 -21 7.45834321957879E11 0.0018423539618601286 37068.731 -22 1.0547669910096901E12 0.002605476704881784 52422.999 -23 1.491664385842573E12 0.003684696672929161 74137.243 -24 2.1095310730630159E12 0.005210945188126307 104845.843 +13 46661412575.42101 0.0001152627388626045 2319.121 +14 65955999820.764 0.0001629240952745143 3278.082 +15 93252393246.52299 0.00023035145146671 4634.741 +16 131862194881.152 0.0003257250983881754 6553.688 +17 186469554257.65 0.0004606157809237981 9267.73 +18 263699486917.922 0.0006513885524405046 13106.137 +19 372921540317.595 0.0009211879818732388 18534.585 +20 527386551669.4319 0.001302746160744657 26211.654 +21 745834321957.879 0.001842353961860129 37068.731 +22 1054766991009.69 0.002605476704881784 52422.999 +23 1491664385842.573 0.003684696672929161 74137.243 +24 2109531073063.016 0.005210945188126307 104845.843 -- !sql_test_Varchar_Date_2 -- \N \N @@ -7221,18 +7221,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101232012E13 -2.012030100768188E13 -14 2.0120302023380082E13 -2.0120302016823918E13 -15 2.0120303034837742E13 -2.0120303025568258E13 -16 2.0120304046857688E13 -2.0120304033750312E13 -17 2.012030505967273E13 -2.012030504113727E13 -18 2.0120306073612137E13 -2.0120306047399863E13 -19 2.0120307089141586E13 -2.0120307052072414E13 -20 2.0120308106919652E13 -2.0120308054496348E13 -21 2.012030912787773E13 -2.012030905374027E13 -22 2.0120310153333E13 -2.0120310048487E13 -23 2.0120311185148242E13 -2.0120311036873758E13 -24 2.0120312225957844E13 -2.0120312016266156E13 +13 20120301012320.12 -20120301007681.88 +14 20120302023380.08 -20120302016823.92 +15 20120303034837.74 -20120303025568.26 +16 20120304046857.69 -20120304033750.31 +17 20120305059672.73 -20120305041137.27 +18 20120306073612.14 -20120306047399.86 +19 20120307089141.59 -20120307052072.41 +20 20120308106919.65 -20120308054496.35 +21 20120309127877.73 -20120309053740.27 +22 20120310153333 -20120310048487 +23 20120311185148.24 -20120311036873.76 +24 20120312225957.84 -20120312016266.16 -- !sql_test_Varchar_DateTime_notn_0 -- 1 \N \N @@ -7247,18 +7247,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101232012E13 -2.012030100768188E13 -14 2.0120302023380082E13 -2.0120302016823918E13 -15 2.0120303034837742E13 -2.0120303025568258E13 -16 2.0120304046857688E13 -2.0120304033750312E13 -17 2.012030505967273E13 -2.012030504113727E13 -18 2.0120306073612137E13 -2.0120306047399863E13 -19 2.0120307089141586E13 -2.0120307052072414E13 -20 2.0120308106919652E13 -2.0120308054496348E13 -21 2.012030912787773E13 -2.012030905374027E13 -22 2.0120310153333E13 -2.0120310048487E13 -23 2.0120311185148242E13 -2.0120311036873758E13 -24 2.0120312225957844E13 -2.0120312016266156E13 +13 20120301012320.12 -20120301007681.88 +14 20120302023380.08 -20120302016823.92 +15 20120303034837.74 -20120303025568.26 +16 20120304046857.69 -20120304033750.31 +17 20120305059672.73 -20120305041137.27 +18 20120306073612.14 -20120306047399.86 +19 20120307089141.59 -20120307052072.41 +20 20120308106919.65 -20120308054496.35 +21 20120309127877.73 -20120309053740.27 +22 20120310153333 -20120310048487 +23 20120311185148.24 -20120311036873.76 +24 20120312225957.84 -20120312016266.16 -- !sql_test_Varchar_DateTime_1 -- \N \N \N \N @@ -7274,18 +7274,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412598614528E16 1.1526273880531198E-10 2319.121 -14 6.595599988666E16 1.6292409511173836E-10 3278.082 -15 9.325239338650608E16 2.3035145112092473E-10 4634.741 -16 1.3186219514529184E17 3.25725097735699E-10 6553.688 -17 1.8646955472478992E17 4.6061577976987233E-10 9267.73 -18 2.63699487710921952E17 6.513885504816421E-10 13106.137 -19 3.7292154162626643E17 9.211879786405685E-10 18534.585 -20 5.2738655378492211E17 1.3027461555189893E-9 26211.654 -21 7.4583432532405338E17 1.8423539535450316E-9 37068.731 -22 1.05476699629969485E18 2.605476691814458E-9 52422.999 -23 1.49166439407262259E18 3.684696652599363E-9 74137.243 -24 2.10953108576110566E18 5.210945156759597E-9 104845.843 +13 4.666141259861453e+16 1.15262738805312e-10 2319.121 +14 6.595599988666e+16 1.629240951117384e-10 3278.082 +15 9.325239338650608e+16 2.303514511209247e-10 4634.741 +16 1.318621951452918e+17 3.25725097735699e-10 6553.688 +17 1.864695547247899e+17 4.606157797698723e-10 9267.73 +18 2.63699487710922e+17 6.513885504816421e-10 13106.137 +19 3.729215416262664e+17 9.211879786405685e-10 18534.585 +20 5.273865537849221e+17 1.302746155518989e-09 26211.654 +21 7.458343253240534e+17 1.842353953545032e-09 37068.731 +22 1.054766996299695e+18 2.605476691814458e-09 52422.999 +23 1.491664394072623e+18 3.684696652599363e-09 74137.243 +24 2.109531085761106e+18 5.210945156759597e-09 104845.843 -- !sql_test_Varchar_DateTime_notn_1 -- 1 \N \N \N @@ -7300,18 +7300,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412598614528E16 1.1526273880531198E-10 2319.121 -14 6.595599988666E16 1.6292409511173836E-10 3278.082 -15 9.325239338650608E16 2.3035145112092473E-10 4634.741 -16 1.3186219514529184E17 3.25725097735699E-10 6553.688 -17 1.8646955472478992E17 4.6061577976987233E-10 9267.73 -18 2.63699487710921952E17 6.513885504816421E-10 13106.137 -19 3.7292154162626643E17 9.211879786405685E-10 18534.585 -20 5.2738655378492211E17 1.3027461555189893E-9 26211.654 -21 7.4583432532405338E17 1.8423539535450316E-9 37068.731 -22 1.05476699629969485E18 2.605476691814458E-9 52422.999 -23 1.49166439407262259E18 3.684696652599363E-9 74137.243 -24 2.10953108576110566E18 5.210945156759597E-9 104845.843 +13 4.666141259861453e+16 1.15262738805312e-10 2319.121 +14 6.595599988666e+16 1.629240951117384e-10 3278.082 +15 9.325239338650608e+16 2.303514511209247e-10 4634.741 +16 1.318621951452918e+17 3.25725097735699e-10 6553.688 +17 1.864695547247899e+17 4.606157797698723e-10 9267.73 +18 2.63699487710922e+17 6.513885504816421e-10 13106.137 +19 3.729215416262664e+17 9.211879786405685e-10 18534.585 +20 5.273865537849221e+17 1.302746155518989e-09 26211.654 +21 7.458343253240534e+17 1.842353953545032e-09 37068.731 +22 1.054766996299695e+18 2.605476691814458e-09 52422.999 +23 1.491664394072623e+18 3.684696652599363e-09 74137.243 +24 2.109531085761106e+18 5.210945156759597e-09 104845.843 -- !sql_test_Varchar_DateTime_2 -- \N \N @@ -7433,18 +7433,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0122620121E7 -2.0117981879E7 -14 2.0123580082E7 -2.0117023918E7 -15 2.0124937741E7 -2.0115668259E7 -16 2.0126857688E7 -2.0113750312E7 -17 2.012957273E7 -2.011103727E7 -18 2.0133412137E7 -2.0107199863E7 -19 2.0138841585E7 -2.0101772415E7 -20 2.0146519654E7 -2.0094096346E7 -21 2.0157377731E7 -2.0083240269E7 -22 2.0172732999E7 -2.0067887001E7 -23 2.0194448243E7 -2.0046173757E7 -24 2.0225157843E7 -2.0015466157E7 +13 20122620.121 -20117981.879 +14 20123580.082 -20117023.918 +15 20124937.741 -20115668.259 +16 20126857.688 -20113750.312 +17 20129572.73 -20111037.27 +18 20133412.137 -20107199.863 +19 20138841.585 -20101772.415 +20 20146519.654 -20094096.346 +21 20157377.731 -20083240.269 +22 20172732.999 -20067887.001 +23 20194448.243 -20046173.757 +24 20225157.843 -20015466.157 -- !sql_test_Varchar_DateV2_notn_0 -- 1 \N \N @@ -7459,18 +7459,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0122620121E7 -2.0117981879E7 -14 2.0123580082E7 -2.0117023918E7 -15 2.0124937741E7 -2.0115668259E7 -16 2.0126857688E7 -2.0113750312E7 -17 2.012957273E7 -2.011103727E7 -18 2.0133412137E7 -2.0107199863E7 -19 2.0138841585E7 -2.0101772415E7 -20 2.0146519654E7 -2.0094096346E7 -21 2.0157377731E7 -2.0083240269E7 -22 2.0172732999E7 -2.0067887001E7 -23 2.0194448243E7 -2.0046173757E7 -24 2.0225157843E7 -2.0015466157E7 +13 20122620.121 -20117981.879 +14 20123580.082 -20117023.918 +15 20124937.741 -20115668.259 +16 20126857.688 -20113750.312 +17 20129572.73 -20111037.27 +18 20133412.137 -20107199.863 +19 20138841.585 -20101772.415 +20 20146519.654 -20094096.346 +21 20157377.731 -20083240.269 +22 20172732.999 -20067887.001 +23 20194448.243 -20046173.757 +24 20225157.843 -20015466.157 -- !sql_test_Varchar_DateV2_1 -- \N \N \N \N @@ -7486,18 +7486,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412575421005E10 1.1526273886260449E-4 2319.121 -14 6.5955999820764E10 1.6292409527451427E-4 3278.082 -15 9.3252393246523E10 2.3035145146671002E-4 4634.741 -16 1.3186219488115201E11 3.2572509838817544E-4 6553.688 -17 1.8646955425765E11 4.606157809237981E-4 9267.73 -18 2.6369948691792203E11 6.513885524405046E-4 13106.137 -19 3.72921540317595E11 9.211879818732388E-4 18534.585 -20 5.2738655166943195E11 0.0013027461607446565 26211.654 -21 7.45834321957879E11 0.0018423539618601286 37068.731 -22 1.0547669910096901E12 0.002605476704881784 52422.999 -23 1.491664385842573E12 0.003684696672929161 74137.243 -24 2.1095310730630159E12 0.005210945188126307 104845.843 +13 46661412575.42101 0.0001152627388626045 2319.121 +14 65955999820.764 0.0001629240952745143 3278.082 +15 93252393246.52299 0.00023035145146671 4634.741 +16 131862194881.152 0.0003257250983881754 6553.688 +17 186469554257.65 0.0004606157809237981 9267.73 +18 263699486917.922 0.0006513885524405046 13106.137 +19 372921540317.595 0.0009211879818732388 18534.585 +20 527386551669.4319 0.001302746160744657 26211.654 +21 745834321957.879 0.001842353961860129 37068.731 +22 1054766991009.69 0.002605476704881784 52422.999 +23 1491664385842.573 0.003684696672929161 74137.243 +24 2109531073063.016 0.005210945188126307 104845.843 -- !sql_test_Varchar_DateV2_notn_1 -- 1 \N \N \N @@ -7512,18 +7512,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412575421005E10 1.1526273886260449E-4 2319.121 -14 6.5955999820764E10 1.6292409527451427E-4 3278.082 -15 9.3252393246523E10 2.3035145146671002E-4 4634.741 -16 1.3186219488115201E11 3.2572509838817544E-4 6553.688 -17 1.8646955425765E11 4.606157809237981E-4 9267.73 -18 2.6369948691792203E11 6.513885524405046E-4 13106.137 -19 3.72921540317595E11 9.211879818732388E-4 18534.585 -20 5.2738655166943195E11 0.0013027461607446565 26211.654 -21 7.45834321957879E11 0.0018423539618601286 37068.731 -22 1.0547669910096901E12 0.002605476704881784 52422.999 -23 1.491664385842573E12 0.003684696672929161 74137.243 -24 2.1095310730630159E12 0.005210945188126307 104845.843 +13 46661412575.42101 0.0001152627388626045 2319.121 +14 65955999820.764 0.0001629240952745143 3278.082 +15 93252393246.52299 0.00023035145146671 4634.741 +16 131862194881.152 0.0003257250983881754 6553.688 +17 186469554257.65 0.0004606157809237981 9267.73 +18 263699486917.922 0.0006513885524405046 13106.137 +19 372921540317.595 0.0009211879818732388 18534.585 +20 527386551669.4319 0.001302746160744657 26211.654 +21 745834321957.879 0.001842353961860129 37068.731 +22 1054766991009.69 0.002605476704881784 52422.999 +23 1491664385842.573 0.003684696672929161 74137.243 +24 2109531073063.016 0.005210945188126307 104845.843 -- !sql_test_Varchar_DateV2_2 -- \N \N @@ -7645,18 +7645,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101232012E13 -2.012030100768188E13 -14 2.0120302023380082E13 -2.0120302016823918E13 -15 2.0120303034837742E13 -2.0120303025568258E13 -16 2.0120304046857688E13 -2.0120304033750312E13 -17 2.012030505967273E13 -2.012030504113727E13 -18 2.0120306073612137E13 -2.0120306047399863E13 -19 2.0120307089141586E13 -2.0120307052072414E13 -20 2.0120308106919652E13 -2.0120308054496348E13 -21 2.012030912787773E13 -2.012030905374027E13 -22 2.0120310153333E13 -2.0120310048487E13 -23 2.0120311185148242E13 -2.0120311036873758E13 -24 2.0120312225957844E13 -2.0120312016266156E13 +13 20120301012320.12 -20120301007681.88 +14 20120302023380.08 -20120302016823.92 +15 20120303034837.74 -20120303025568.26 +16 20120304046857.69 -20120304033750.31 +17 20120305059672.73 -20120305041137.27 +18 20120306073612.14 -20120306047399.86 +19 20120307089141.59 -20120307052072.41 +20 20120308106919.65 -20120308054496.35 +21 20120309127877.73 -20120309053740.27 +22 20120310153333 -20120310048487 +23 20120311185148.24 -20120311036873.76 +24 20120312225957.84 -20120312016266.16 -- !sql_test_Varchar_DateTimeV2_notn_0 -- 1 \N \N @@ -7671,18 +7671,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.012030101232012E13 -2.012030100768188E13 -14 2.0120302023380082E13 -2.0120302016823918E13 -15 2.0120303034837742E13 -2.0120303025568258E13 -16 2.0120304046857688E13 -2.0120304033750312E13 -17 2.012030505967273E13 -2.012030504113727E13 -18 2.0120306073612137E13 -2.0120306047399863E13 -19 2.0120307089141586E13 -2.0120307052072414E13 -20 2.0120308106919652E13 -2.0120308054496348E13 -21 2.012030912787773E13 -2.012030905374027E13 -22 2.0120310153333E13 -2.0120310048487E13 -23 2.0120311185148242E13 -2.0120311036873758E13 -24 2.0120312225957844E13 -2.0120312016266156E13 +13 20120301012320.12 -20120301007681.88 +14 20120302023380.08 -20120302016823.92 +15 20120303034837.74 -20120303025568.26 +16 20120304046857.69 -20120304033750.31 +17 20120305059672.73 -20120305041137.27 +18 20120306073612.14 -20120306047399.86 +19 20120307089141.59 -20120307052072.41 +20 20120308106919.65 -20120308054496.35 +21 20120309127877.73 -20120309053740.27 +22 20120310153333 -20120310048487 +23 20120311185148.24 -20120311036873.76 +24 20120312225957.84 -20120312016266.16 -- !sql_test_Varchar_DateTimeV2_1 -- \N \N \N \N @@ -7698,18 +7698,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412598614528E16 1.1526273880531198E-10 2319.121 -14 6.595599988666E16 1.6292409511173836E-10 3278.082 -15 9.325239338650608E16 2.3035145112092473E-10 4634.741 -16 1.3186219514529184E17 3.25725097735699E-10 6553.688 -17 1.8646955472478992E17 4.6061577976987233E-10 9267.73 -18 2.63699487710921952E17 6.513885504816421E-10 13106.137 -19 3.7292154162626643E17 9.211879786405685E-10 18534.585 -20 5.2738655378492211E17 1.3027461555189893E-9 26211.654 -21 7.4583432532405338E17 1.8423539535450316E-9 37068.731 -22 1.05476699629969485E18 2.605476691814458E-9 52422.999 -23 1.49166439407262259E18 3.684696652599363E-9 74137.243 -24 2.10953108576110566E18 5.210945156759597E-9 104845.843 +13 4.666141259861453e+16 1.15262738805312e-10 2319.121 +14 6.595599988666e+16 1.629240951117384e-10 3278.082 +15 9.325239338650608e+16 2.303514511209247e-10 4634.741 +16 1.318621951452918e+17 3.25725097735699e-10 6553.688 +17 1.864695547247899e+17 4.606157797698723e-10 9267.73 +18 2.63699487710922e+17 6.513885504816421e-10 13106.137 +19 3.729215416262664e+17 9.211879786405685e-10 18534.585 +20 5.273865537849221e+17 1.302746155518989e-09 26211.654 +21 7.458343253240534e+17 1.842353953545032e-09 37068.731 +22 1.054766996299695e+18 2.605476691814458e-09 52422.999 +23 1.491664394072623e+18 3.684696652599363e-09 74137.243 +24 2.109531085761106e+18 5.210945156759597e-09 104845.843 -- !sql_test_Varchar_DateTimeV2_notn_1 -- 1 \N \N \N @@ -7724,18 +7724,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 4.6661412598614528E16 1.1526273880531198E-10 2319.121 -14 6.595599988666E16 1.6292409511173836E-10 3278.082 -15 9.325239338650608E16 2.3035145112092473E-10 4634.741 -16 1.3186219514529184E17 3.25725097735699E-10 6553.688 -17 1.8646955472478992E17 4.6061577976987233E-10 9267.73 -18 2.63699487710921952E17 6.513885504816421E-10 13106.137 -19 3.7292154162626643E17 9.211879786405685E-10 18534.585 -20 5.2738655378492211E17 1.3027461555189893E-9 26211.654 -21 7.4583432532405338E17 1.8423539535450316E-9 37068.731 -22 1.05476699629969485E18 2.605476691814458E-9 52422.999 -23 1.49166439407262259E18 3.684696652599363E-9 74137.243 -24 2.10953108576110566E18 5.210945156759597E-9 104845.843 +13 4.666141259861453e+16 1.15262738805312e-10 2319.121 +14 6.595599988666e+16 1.629240951117384e-10 3278.082 +15 9.325239338650608e+16 2.303514511209247e-10 4634.741 +16 1.318621951452918e+17 3.25725097735699e-10 6553.688 +17 1.864695547247899e+17 4.606157797698723e-10 9267.73 +18 2.63699487710922e+17 6.513885504816421e-10 13106.137 +19 3.729215416262664e+17 9.211879786405685e-10 18534.585 +20 5.273865537849221e+17 1.302746155518989e-09 26211.654 +21 7.458343253240534e+17 1.842353953545032e-09 37068.731 +22 1.054766996299695e+18 2.605476691814458e-09 52422.999 +23 1.491664394072623e+18 3.684696652599363e-09 74137.243 +24 2.109531085761106e+18 5.210945156759597e-09 104845.843 -- !sql_test_Varchar_DateTimeV2_2 -- \N \N @@ -7910,13 +7910,13 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 26211.654 26211.654 0.6539999999986321 21 37068.731 37068.731 0.7309999999997672 22 52422.999 52422.999 0.9990000000034343 @@ -7936,13 +7936,13 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 26211.654 26211.654 0.6539999999986321 21 37068.731 37068.731 0.7309999999997672 22 52422.999 52422.999 0.9990000000034343 @@ -8075,7 +8075,7 @@ 16 29970.255 29962.255 17 42381.012 42371.012 18 59932.842 59920.842 -19 84755.017 84741.017 +19 84755.01700000001 84741.01700000001 20 119858.851 119842.851 21 169503.031 169485.031 22 239710.285 239690.285 @@ -8101,7 +8101,7 @@ 16 29970.255 29962.255 17 42381.012 42371.012 18 59932.842 59920.842 -19 84755.017 84741.017 +19 84755.01700000001 84741.01700000001 20 119858.851 119842.851 21 169503.031 169485.031 22 239710.285 239690.285 @@ -8122,18 +8122,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 10604.017 10604.017 0.016999999999825377 +13 10604.017 10604.017 0.01699999999982538 14 29977.586 7494.3965 0.7929999999996653 15 63576.039 7064.004333333333 0.01299999999901047 -16 119865.02 7491.56375 2.2550000000010186 -17 211880.06 8475.2024 1.0120000000024447 -18 359561.05199999997 9987.806999999999 4.841999999996915 -19 593236.1190000001 12106.859571428573 6.017000000007101 -20 958806.808 14981.356375 2.8509999999951106 -21 1525446.2789999999 18832.67011111111 6.030999999988126 -22 2397002.85 23970.0285 0.28500000000349246 -23 3728857.649 30817.005363636363 0.0590000000083819 -24 5752798.3319999995 39949.98841666667 11.86099999997532 +16 119865.02 7491.56375 2.255000000001019 +17 211880.06 8475.2024 1.012000000002445 +18 359561.052 9987.806999999999 4.841999999996915 +19 593236.1190000001 12106.85957142857 6.017000000007101 +20 958806.808 14981.356375 2.850999999995111 +21 1525446.279 18832.67011111111 6.030999999988126 +22 2397002.85 23970.0285 0.2850000000034925 +23 3728857.649 30817.00536363636 0.0590000000083819 +24 5752798.331999999 39949.98841666667 11.86099999997532 -- !sql_test_String_TinyInt_notn_1 -- 1 \N \N \N @@ -8148,18 +8148,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 10604.017 10604.017 0.016999999999825377 +13 10604.017 10604.017 0.01699999999982538 14 29977.586 7494.3965 0.7929999999996653 15 63576.039 7064.004333333333 0.01299999999901047 -16 119865.02 7491.56375 2.2550000000010186 -17 211880.06 8475.2024 1.0120000000024447 -18 359561.05199999997 9987.806999999999 4.841999999996915 -19 593236.1190000001 12106.859571428573 6.017000000007101 -20 958806.808 14981.356375 2.8509999999951106 -21 1525446.2789999999 18832.67011111111 6.030999999988126 -22 2397002.85 23970.0285 0.28500000000349246 -23 3728857.649 30817.005363636363 0.0590000000083819 -24 5752798.3319999995 39949.98841666667 11.86099999997532 +16 119865.02 7491.56375 2.255000000001019 +17 211880.06 8475.2024 1.012000000002445 +18 359561.052 9987.806999999999 4.841999999996915 +19 593236.1190000001 12106.85957142857 6.017000000007101 +20 958806.808 14981.356375 2.850999999995111 +21 1525446.279 18832.67011111111 6.030999999988126 +22 2397002.85 23970.0285 0.2850000000034925 +23 3728857.649 30817.00536363636 0.0590000000083819 +24 5752798.331999999 39949.98841666667 11.86099999997532 -- !sql_test_String_TinyInt_2 -- \N \N @@ -8287,7 +8287,7 @@ 16 30046.255 29886.255 17 42536.012 42216.012 18 60246.842 59606.842 -19 85388.017 84108.017 +19 85388.01700000001 84108.01700000001 20 121130.851 118570.851 21 172054.031 166934.031 22 244820.285 234580.285 @@ -8313,7 +8313,7 @@ 16 30046.255 29886.255 17 42536.012 42216.012 18 60246.842 59606.842 -19 85388.017 84108.017 +19 85388.01700000001 84108.01700000001 20 121130.851 118570.851 21 172054.031 166934.031 22 244820.285 234580.285 @@ -8338,14 +8338,14 @@ 14 299775.86 749.43965 8.792999999999665 15 847680.52 529.8003249999999 32.01299999999901 16 2397300.4 374.5781875 46.25500000000102 -17 6780161.92 264.850075 136.01200000000244 -18 1.9176589439999998E7 187.27138125 86.84199999999691 -19 5.423873088E7 132.4187765625 268.0170000000071 -20 1.5340908928E8 93.63347734375 810.8509999999951 -21 4.3390471935999995E8 66.208605859375 534.0309999999881 -22 1.2272654592E9 46.8164619140625 4180.2850000000035 -23 3.47122748416E9 33.10420498046875 1067.0590000000084 -24 9.818109153279999E9 23.408196337890622 8359.860999999975 +17 6780161.92 264.850075 136.0120000000024 +18 19176589.44 187.27138125 86.84199999999691 +19 54238730.88 132.4187765625 268.0170000000071 +20 153409089.28 93.63347734375 810.8509999999951 +21 433904719.36 66.208605859375 534.0309999999881 +22 1227265459.2 46.8164619140625 4180.285000000003 +23 3471227484.16 33.10420498046875 1067.059000000008 +24 9818109153.279999 23.40819633789062 8359.860999999975 -- !sql_test_String_SmallInt_notn_1 -- 1 \N \N \N @@ -8364,14 +8364,14 @@ 14 299775.86 749.43965 8.792999999999665 15 847680.52 529.8003249999999 32.01299999999901 16 2397300.4 374.5781875 46.25500000000102 -17 6780161.92 264.850075 136.01200000000244 -18 1.9176589439999998E7 187.27138125 86.84199999999691 -19 5.423873088E7 132.4187765625 268.0170000000071 -20 1.5340908928E8 93.63347734375 810.8509999999951 -21 4.3390471935999995E8 66.208605859375 534.0309999999881 -22 1.2272654592E9 46.8164619140625 4180.2850000000035 -23 3.47122748416E9 33.10420498046875 1067.0590000000084 -24 9.818109153279999E9 23.408196337890622 8359.860999999975 +17 6780161.92 264.850075 136.0120000000024 +18 19176589.44 187.27138125 86.84199999999691 +19 54238730.88 132.4187765625 268.0170000000071 +20 153409089.28 93.63347734375 810.8509999999951 +21 433904719.36 66.208605859375 534.0309999999881 +22 1227265459.2 46.8164619140625 4180.285000000003 +23 3471227484.16 33.10420498046875 1067.059000000008 +24 9818109153.279999 23.40819633789062 8359.860999999975 -- !sql_test_String_SmallInt_2 -- \N \N @@ -8494,17 +8494,17 @@ 11 \N \N 12 \N \N 13 34399.017 -13190.983 -14 62533.793 -32556.207000000002 -15 116237.013 -73852.987 +14 62533.793 -32556.207 +15 116237.013 -73852.98699999999 16 220011.255 -160078.745 17 422421.012 -337668.988 -18 819971.842 -700118.158 +18 819971.8419999999 -700118.1580000001 19 1604793.017 -1435296.983 20 3159895.851 -2920194.149 21 6249539.031 -5910550.969 -22 1.2399745285E7 -1.1920344715E7 -23 2.4659032059E7 -2.3981057941E7 -24 4.9119444861E7 -4.8160645139E7 +22 12399745.285 -11920344.715 +23 24659032.059 -23981057.941 +24 49119444.861 -48160645.139 -- !sql_test_String_Integer_notn_0 -- 1 \N \N @@ -8520,17 +8520,17 @@ 11 \N \N 12 \N \N 13 34399.017 -13190.983 -14 62533.793 -32556.207000000002 -15 116237.013 -73852.987 +14 62533.793 -32556.207 +15 116237.013 -73852.98699999999 16 220011.255 -160078.745 17 422421.012 -337668.988 -18 819971.842 -700118.158 +18 819971.8419999999 -700118.1580000001 19 1604793.017 -1435296.983 20 3159895.851 -2920194.149 21 6249539.031 -5910550.969 -22 1.2399745285E7 -1.1920344715E7 -23 2.4659032059E7 -2.3981057941E7 -24 4.9119444861E7 -4.8160645139E7 +22 12399745.285 -11920344.715 +23 24659032.059 -23981057.941 +24 49119444.861 -48160645.139 -- !sql_test_String_Integer_1 -- \N \N \N \N @@ -8546,18 +8546,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.52322584515E8 0.4456405547383904 10604.017 -14 7.12642163185E8 0.3152548743295825 14988.793 -15 2.0141948755849998E9 0.22296820453469407 21192.013 -16 5.694936931475E9 0.1576797863663869 29966.255 -17 1.610479148054E10 0.1115026167953795 42376.012 -18 4.554709662789E10 0.07884643935556447 59926.842 -19 1.2882079950076501E11 0.0557536237414024 84748.017 -20 3.64351980328295E11 0.039424038459957005 119850.851 -21 1.0305313357113949E12 0.027877101403032376 169494.031 -22 2.914766252112825E12 0.01971212154231337 239700.285 -23 8.244180529297655E12 0.013938586832384562 338987.059 -24 2.3318030812033742E13 0.009856073550096427 479399.861 +13 252322584.515 0.4456405547383904 10604.017 +14 712642163.1849999 0.3152548743295825 14988.793 +15 2014194875.585 0.2229682045346941 21192.013 +16 5694936931.475 0.1576797863663869 29966.255 +17 16104791480.54 0.1115026167953795 42376.012 +18 45547096627.89 0.07884643935556447 59926.842 +19 128820799500.765 0.0557536237414024 84748.01700000001 +20 364351980328.295 0.039424038459957 119850.851 +21 1030531335711.395 0.02787710140303238 169494.031 +22 2914766252112.825 0.01971212154231337 239700.285 +23 8244180529297.655 0.01393858683238456 338987.059 +24 23318030812033.74 0.009856073550096427 479399.861 -- !sql_test_String_Integer_notn_1 -- 1 \N \N \N @@ -8572,18 +8572,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.52322584515E8 0.4456405547383904 10604.017 -14 7.12642163185E8 0.3152548743295825 14988.793 -15 2.0141948755849998E9 0.22296820453469407 21192.013 -16 5.694936931475E9 0.1576797863663869 29966.255 -17 1.610479148054E10 0.1115026167953795 42376.012 -18 4.554709662789E10 0.07884643935556447 59926.842 -19 1.2882079950076501E11 0.0557536237414024 84748.017 -20 3.64351980328295E11 0.039424038459957005 119850.851 -21 1.0305313357113949E12 0.027877101403032376 169494.031 -22 2.914766252112825E12 0.01971212154231337 239700.285 -23 8.244180529297655E12 0.013938586832384562 338987.059 -24 2.3318030812033742E13 0.009856073550096427 479399.861 +13 252322584.515 0.4456405547383904 10604.017 +14 712642163.1849999 0.3152548743295825 14988.793 +15 2014194875.585 0.2229682045346941 21192.013 +16 5694936931.475 0.1576797863663869 29966.255 +17 16104791480.54 0.1115026167953795 42376.012 +18 45547096627.89 0.07884643935556447 59926.842 +19 128820799500.765 0.0557536237414024 84748.01700000001 +20 364351980328.295 0.039424038459957 119850.851 +21 1030531335711.395 0.02787710140303238 169494.031 +22 2914766252112.825 0.01971212154231337 239700.285 +23 8244180529297.655 0.01393858683238456 338987.059 +24 23318030812033.74 0.009856073550096427 479399.861 -- !sql_test_String_Integer_2 -- \N \N @@ -8706,17 +8706,17 @@ 11 \N \N 12 \N \N 13 5365133.017 -5343924.983 -14 1.0713267793E7 -1.0683290207E7 -15 2.1406971013E7 -2.1364586987E7 -16 4.2790745255E7 -4.2730812745E7 -17 8.5553155012E7 -8.5468402988E7 -18 1.71070705842E8 -1.70950852158E8 -19 3.42095527017E8 -3.41926030983E8 -20 6.84130629851E8 -6.83890928149E8 -21 1.368180273031E9 -1.367841284969E9 -22 2.736250479285E9 -2.735771078715E9 -23 5.472349766059E9 -5.471671791941E9 -24 1.0944490178861E10 -1.0943531379139E10 +14 10713267.793 -10683290.207 +15 21406971.013 -21364586.987 +16 42790745.255 -42730812.745 +17 85553155.01199999 -85468402.98800001 +18 171070705.842 -170950852.158 +19 342095527.017 -341926030.983 +20 684130629.851 -683890928.149 +21 1368180273.031 -1367841284.969 +22 2736250479.285 -2735771078.715 +23 5472349766.059 -5471671791.941 +24 10944490178.861 -10943531379.139 -- !sql_test_String_BigInt_notn_0 -- 1 \N \N @@ -8732,17 +8732,17 @@ 11 \N \N 12 \N \N 13 5365133.017 -5343924.983 -14 1.0713267793E7 -1.0683290207E7 -15 2.1406971013E7 -2.1364586987E7 -16 4.2790745255E7 -4.2730812745E7 -17 8.5553155012E7 -8.5468402988E7 -18 1.71070705842E8 -1.70950852158E8 -19 3.42095527017E8 -3.41926030983E8 -20 6.84130629851E8 -6.83890928149E8 -21 1.368180273031E9 -1.367841284969E9 -22 2.736250479285E9 -2.735771078715E9 -23 5.472349766059E9 -5.471671791941E9 -24 1.0944490178861E10 -1.0943531379139E10 +14 10713267.793 -10683290.207 +15 21406971.013 -21364586.987 +16 42790745.255 -42730812.745 +17 85553155.01199999 -85468402.98800001 +18 171070705.842 -170950852.158 +19 342095527.017 -341926030.983 +20 684130629.851 -683890928.149 +21 1368180273.031 -1367841284.969 +22 2736250479.285 -2735771078.715 +23 5472349766.059 -5471671791.941 +24 10944490178.861 -10943531379.139 -- !sql_test_String_BigInt_1 -- \N \N \N \N @@ -8758,18 +8758,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.6779516542993E10 0.0019803827750302593 10604.017 -14 1.60354289387247E11 0.0014010471216912553 14988.793 -15 4.5320770658312695E11 9.909394930154285E-4 21192.013 -16 1.281380407512645E12 7.007883322237886E-4 29966.255 -17 3.623605797033348E12 4.955633955808074E-4 42376.012 -18 1.0248135933429918E13 3.504272792067686E-4 59926.842 -19 2.8984735312875246E13 2.477934094585949E-4 84748.017 -20 8.197927395632292E13 1.7521778118060913E-4 119850.851 -21 2.3186966138416012E14 1.2389816922634057E-4 169494.031 -22 6.55822563489372E14 8.760940813530326E-5 239700.285 -23 1.854940840789509E15 6.194926740658747E-5 338987.059 -24 5.246557246235101E15 4.380476871604514E-5 479399.861 +13 56779516542.993 0.001980382775030259 10604.017 +14 160354289387.247 0.001401047121691255 14988.793 +15 453207706583.127 0.0009909394930154285 21192.013 +16 1281380407512.645 0.0007007883322237886 29966.255 +17 3623605797033.348 0.0004955633955808074 42376.012 +18 10248135933429.92 0.0003504272792067686 59926.842 +19 28984735312875.25 0.0002477934094585949 84748.01700000001 +20 81979273956322.92 0.0001752177811806091 119850.851 +21 231869661384160.1 0.0001238981692263406 169494.031 +22 655822563489372 8.760940813530326e-05 239700.285 +23 1854940840789509 6.194926740658747e-05 338987.059 +24 5246557246235101 4.380476871604514e-05 479399.861 -- !sql_test_String_BigInt_notn_1 -- 1 \N \N \N @@ -8784,18 +8784,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5.6779516542993E10 0.0019803827750302593 10604.017 -14 1.60354289387247E11 0.0014010471216912553 14988.793 -15 4.5320770658312695E11 9.909394930154285E-4 21192.013 -16 1.281380407512645E12 7.007883322237886E-4 29966.255 -17 3.623605797033348E12 4.955633955808074E-4 42376.012 -18 1.0248135933429918E13 3.504272792067686E-4 59926.842 -19 2.8984735312875246E13 2.477934094585949E-4 84748.017 -20 8.197927395632292E13 1.7521778118060913E-4 119850.851 -21 2.3186966138416012E14 1.2389816922634057E-4 169494.031 -22 6.55822563489372E14 8.760940813530326E-5 239700.285 -23 1.854940840789509E15 6.194926740658747E-5 338987.059 -24 5.246557246235101E15 4.380476871604514E-5 479399.861 +13 56779516542.993 0.001980382775030259 10604.017 +14 160354289387.247 0.001401047121691255 14988.793 +15 453207706583.127 0.0009909394930154285 21192.013 +16 1281380407512.645 0.0007007883322237886 29966.255 +17 3623605797033.348 0.0004955633955808074 42376.012 +18 10248135933429.92 0.0003504272792067686 59926.842 +19 28984735312875.25 0.0002477934094585949 84748.01700000001 +20 81979273956322.92 0.0001752177811806091 119850.851 +21 231869661384160.1 0.0001238981692263406 169494.031 +22 655822563489372 8.760940813530326e-05 239700.285 +23 1854940840789509 6.194926740658747e-05 338987.059 +24 5246557246235101 4.380476871604514e-05 479399.861 -- !sql_test_String_BigInt_2 -- \N \N @@ -8917,18 +8917,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07101249017E8 -1.07080040983E8 -14 2.13980633793E8 -2.13950656207E8 -15 4.27736837013E8 -4.27694452987E8 -16 8.55245611255E8 -8.55185678745E8 -17 1.710258021012E9 -1.710173268988E9 -18 3.420275571842E9 -3.420155718158E9 -19 6.840300393017E9 -6.840130896983E9 -20 1.3680335495851E10 -1.3680095794149E10 -21 2.7360385139031E10 -2.7360046150969E10 -22 5.4720455345285E10 -5.4719975944715E10 -23 1.09440554632059E11 -1.09439876657941E11 -24 2.18880695044861E11 -2.18879736245139E11 +13 107101249.017 -107080040.983 +14 213980633.793 -213950656.207 +15 427736837.013 -427694452.987 +16 855245611.255 -855185678.745 +17 1710258021.012 -1710173268.988 +18 3420275571.842 -3420155718.158 +19 6840300393.017 -6840130896.983 +20 13680335495.851 -13680095794.149 +21 27360385139.031 -27360046150.969 +22 54720455345.285 -54719975944.715 +23 109440554632.059 -109439876657.941 +24 218880695044.861 -218879736245.139 -- !sql_test_String_LargeInt_notn_0 -- 1 \N \N @@ -8943,18 +8943,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.07101249017E8 -1.07080040983E8 -14 2.13980633793E8 -2.13950656207E8 -15 4.27736837013E8 -4.27694452987E8 -16 8.55245611255E8 -8.55185678745E8 -17 1.710258021012E9 -1.710173268988E9 -18 3.420275571842E9 -3.420155718158E9 -19 6.840300393017E9 -6.840130896983E9 -20 1.3680335495851E10 -1.3680095794149E10 -21 2.7360385139031E10 -2.7360046150969E10 -22 5.4720455345285E10 -5.4719975944715E10 -23 1.09440554632059E11 -1.09439876657941E11 -24 2.18880695044861E11 -2.18879736245139E11 +13 107101249.017 -107080040.983 +14 213980633.793 -213950656.207 +15 427736837.013 -427694452.987 +16 855245611.255 -855185678.745 +17 1710258021.012 -1710173268.988 +18 3420275571.842 -3420155718.158 +19 6840300393.017 -6840130896.983 +20 13680335495.851 -13680095794.149 +21 27360385139.031 -27360046150.969 +22 54720455345.285 -54719975944.715 +23 109440554632.059 -109439876657.941 +24 218880695044.861 -218879736245.139 -- !sql_test_String_LargeInt_1 -- \N \N \N \N @@ -8970,18 +8970,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.135591020120965E12 9.901907865061416E-5 10604.017 -14 3.207086762016485E12 7.005233480356157E-5 14988.793 -15 9.064155509143385E12 4.95469671211115E-5 21192.013 -16 2.5627610098059477E13 3.503941394804582E-5 29966.255 -17 7.247211869510775E13 2.477816883729888E-5 42376.012 -18 2.049627225638431E14 1.7521363627351046E-5 59926.842 -19 5.79694711766126E14 1.2389670355195359E-5 84748.017 -20 1.6395854869167638E15 8.760889017404082E-6 119850.851 -21 4.637393238700315E15 6.194908446599709E-6 169494.031 -22 1.311645128536796E16 4.380470401561774E-6 239700.285 -23 3.7098816837824336E16 3.0974633684896923E-6 338987.059 -24 1.04931144955863024E17 2.1902384351518302E-6 479399.861 +13 1135591020120.965 9.901907865061416e-05 10604.017 +14 3207086762016.485 7.005233480356157e-05 14988.793 +15 9064155509143.385 4.95469671211115e-05 21192.013 +16 25627610098059.48 3.503941394804582e-05 29966.255 +17 72472118695107.75 2.477816883729888e-05 42376.012 +18 204962722563843.1 1.752136362735105e-05 59926.842 +19 579694711766126 1.238967035519536e-05 84748.01700000001 +20 1639585486916764 8.760889017404082e-06 119850.851 +21 4637393238700315 6.194908446599709e-06 169494.031 +22 1.311645128536796e+16 4.380470401561774e-06 239700.285 +23 3.709881683782434e+16 3.097463368489692e-06 338987.059 +24 1.04931144955863e+17 2.19023843515183e-06 479399.861 -- !sql_test_String_LargeInt_notn_1 -- 1 \N \N \N @@ -8996,18 +8996,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.135591020120965E12 9.901907865061416E-5 10604.017 -14 3.207086762016485E12 7.005233480356157E-5 14988.793 -15 9.064155509143385E12 4.95469671211115E-5 21192.013 -16 2.5627610098059477E13 3.503941394804582E-5 29966.255 -17 7.247211869510775E13 2.477816883729888E-5 42376.012 -18 2.049627225638431E14 1.7521363627351046E-5 59926.842 -19 5.79694711766126E14 1.2389670355195359E-5 84748.017 -20 1.6395854869167638E15 8.760889017404082E-6 119850.851 -21 4.637393238700315E15 6.194908446599709E-6 169494.031 -22 1.311645128536796E16 4.380470401561774E-6 239700.285 -23 3.7098816837824336E16 3.0974633684896923E-6 338987.059 -24 1.04931144955863024E17 2.1902384351518302E-6 479399.861 +13 1135591020120.965 9.901907865061416e-05 10604.017 +14 3207086762016.485 7.005233480356157e-05 14988.793 +15 9064155509143.385 4.95469671211115e-05 21192.013 +16 25627610098059.48 3.503941394804582e-05 29966.255 +17 72472118695107.75 2.477816883729888e-05 42376.012 +18 204962722563843.1 1.752136362735105e-05 59926.842 +19 579694711766126 1.238967035519536e-05 84748.01700000001 +20 1639585486916764 8.760889017404082e-06 119850.851 +21 4637393238700315 6.194908446599709e-06 169494.031 +22 1.311645128536796e+16 4.380470401561774e-06 239700.285 +23 3.709881683782434e+16 3.097463368489692e-06 338987.059 +24 1.04931144955863e+17 2.19023843515183e-06 479399.861 -- !sql_test_String_LargeInt_2 -- \N \N @@ -9131,16 +9131,16 @@ 12 \N \N 13 10604.11700000149 10603.91699999851 14 14988.99300000298 14988.59299999702 -15 21192.31300001192 21191.712999988078 +15 21192.31300001192 21191.71299998808 16 29966.65500000596 29965.85499999404 17 42376.512 42375.512 -18 59927.44200002384 59926.241999976155 +18 59927.44200002384 59926.24199997616 19 84748.71699998809 84747.31700001193 -20 119851.65100001192 119850.05099998807 -21 169494.93099997615 169493.13100002383 +20 119851.6510000119 119850.0509999881 +21 169494.9309999761 169493.1310000238 22 239701.285 239699.285 -23 338988.15900002385 338985.95899997617 -24 479401.06100004766 479398.6609999523 +23 338988.1590000239 338985.9589999762 +24 479401.0610000477 479398.6609999523 -- !sql_test_String_Float_notn_0 -- 1 \N \N @@ -9157,16 +9157,16 @@ 12 \N \N 13 10604.11700000149 10603.91699999851 14 14988.99300000298 14988.59299999702 -15 21192.31300001192 21191.712999988078 +15 21192.31300001192 21191.71299998808 16 29966.65500000596 29965.85499999404 17 42376.512 42375.512 -18 59927.44200002384 59926.241999976155 +18 59927.44200002384 59926.24199997616 19 84748.71699998809 84747.31700001193 -20 119851.65100001192 119850.05099998807 -21 169494.93099997615 169493.13100002383 +20 119851.6510000119 119850.0509999881 +21 169494.9309999761 169493.1310000238 22 239701.285 239699.285 -23 338988.15900002385 338985.95899997617 -24 479401.06100004766 479398.6609999523 +23 338988.1590000239 338985.9589999762 +24 479401.0610000477 479398.6609999523 -- !sql_test_String_Float_1 -- \N \N \N \N @@ -9182,18 +9182,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1060.4017158012166 106040.16841987836 0.016841988086525816 +13 1060.401715801217 106040.1684198784 0.01684198808652582 14 2997.758644670084 74943.96388324791 0.1927766524549952 -15 6357.604152628481 70640.04052635032 0.012157905577623751 -16 11986.502178612798 74915.63638367003 0.2545534718046838 -17 21188.006 84752.024 0.012000000002444722 +15 6357.604152628481 70640.04052635032 0.01215790557762375 +16 11986.5021786128 74915.63638367003 0.2545534718046838 +17 21188.006 84752.024 0.01200000000244472 18 35956.10662876725 99878.06603120224 0.03961872291256441 -19 59323.610889724914 121068.59777607166 0.41844324303383473 -20 95880.68222873348 149813.56151760396 0.44921408986556344 -21 152544.6238589474 188326.70610006506 0.6354900417209137 -22 239700.285 239700.285 0.28500000000349246 +19 59323.61088972491 121068.5977760717 0.4184432430338347 +20 95880.68222873348 149813.561517604 0.4492140898655634 +21 152544.6238589474 188326.7061000651 0.6354900417209137 +22 239700.285 239700.285 0.2850000000034925 23 372885.7729820813 308170.0469569578 0.05165265465620905 -24 575279.8560595667 399499.86829196813 1.041950403188821 +24 575279.8560595667 399499.8682919681 1.041950403188821 -- !sql_test_String_Float_notn_1 -- 1 \N \N \N @@ -9208,18 +9208,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1060.4017158012166 106040.16841987836 0.016841988086525816 +13 1060.401715801217 106040.1684198784 0.01684198808652582 14 2997.758644670084 74943.96388324791 0.1927766524549952 -15 6357.604152628481 70640.04052635032 0.012157905577623751 -16 11986.502178612798 74915.63638367003 0.2545534718046838 -17 21188.006 84752.024 0.012000000002444722 +15 6357.604152628481 70640.04052635032 0.01215790557762375 +16 11986.5021786128 74915.63638367003 0.2545534718046838 +17 21188.006 84752.024 0.01200000000244472 18 35956.10662876725 99878.06603120224 0.03961872291256441 -19 59323.610889724914 121068.59777607166 0.41844324303383473 -20 95880.68222873348 149813.56151760396 0.44921408986556344 -21 152544.6238589474 188326.70610006506 0.6354900417209137 -22 239700.285 239700.285 0.28500000000349246 +19 59323.61088972491 121068.5977760717 0.4184432430338347 +20 95880.68222873348 149813.561517604 0.4492140898655634 +21 152544.6238589474 188326.7061000651 0.6354900417209137 +22 239700.285 239700.285 0.2850000000034925 23 372885.7729820813 308170.0469569578 0.05165265465620905 -24 575279.8560595667 399499.86829196813 1.041950403188821 +24 575279.8560595667 399499.8682919681 1.041950403188821 -- !sql_test_String_Float_2 -- \N \N @@ -9342,17 +9342,17 @@ 11 \N \N 12 \N \N 13 10604.5414 10603.4926 -14 14989.534599999999 14988.0514 -15 21193.0498 21190.976199999997 -16 29967.704100000003 29964.8059 -17 42378.043000000005 42373.981 -18 59929.6968 59923.987199999996 +14 14989.5346 14988.0514 +15 21193.0498 21190.9762 +16 29967.7041 29964.8059 +17 42378.04300000001 42373.981 +18 59929.6968 59923.9872 19 84752.03880000001 84743.9952 -20 119856.52549999999 119845.1765 +20 119856.5255 119845.1765 21 169502.0451 169486.0169 22 239711.6098 239688.9602 23 339003.0676 338971.0504 -24 479422.495 479377.22699999996 +24 479422.495 479377.227 -- !sql_test_String_Double_notn_0 -- 1 \N \N @@ -9368,17 +9368,17 @@ 11 \N \N 12 \N \N 13 10604.5414 10603.4926 -14 14989.534599999999 14988.0514 -15 21193.0498 21190.976199999997 -16 29967.704100000003 29964.8059 -17 42378.043000000005 42373.981 -18 59929.6968 59923.987199999996 +14 14989.5346 14988.0514 +15 21193.0498 21190.9762 +16 29967.7041 29964.8059 +17 42378.04300000001 42373.981 +18 59929.6968 59923.9872 19 84752.03880000001 84743.9952 -20 119856.52549999999 119845.1765 +20 119856.5255 119845.1765 21 169502.0451 169486.0169 22 239711.6098 239688.9602 23 339003.0676 338971.0504 -24 479422.495 479377.22699999996 +24 479422.495 479377.227 -- !sql_test_String_Double_1 -- \N \N \N \N @@ -9394,18 +9394,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5560.7465148 20221.23760488177 0.12460000000028515 -14 11115.6888888 20211.425296655878 0.31539999999891855 -15 21971.879078399998 20439.827353395063 0.8578000000001578 -16 43424.10012050001 20679.21813539438 0.31609999999988725 +13 5560.7465148 20221.23760488177 0.1246000000002851 +14 11115.6888888 20211.42529665588 0.3153999999989185 +15 21971.8790784 20439.82735339506 0.8578000000001578 +16 43424.10012050001 20679.21813539438 0.3160999999998872 17 86065.68037200002 20864.60462826194 1.227999999999554 -18 171079.14854159998 20991.607818411096 1.7351999999968255 -19 340839.5747706 21072.160972698795 0.6474000000109044 -20 680093.6539995 21120.953564190677 5.41099999999301 -21 1358342.1138370999 21149.477920165707 3.8301000000068797 -22 2714557.787568 21165.961871291325 10.893000000008666 -23 5426708.232707401 21175.309458665964 4.95399999998142 -24 1.0850736453874E7 21180.518732879736 11.740999999968096 +18 171079.1485416 20991.6078184111 1.735199999996826 +19 340839.5747706 21072.1609726988 0.6474000000109044 +20 680093.6539995 21120.95356419068 5.41099999999301 +21 1358342.1138371 21149.47792016571 3.83010000000688 +22 2714557.787568 21165.96187129133 10.89300000000867 +23 5426708.232707401 21175.30945866596 4.95399999998142 +24 10850736.453874 21180.51873287974 11.7409999999681 -- !sql_test_String_Double_notn_1 -- 1 \N \N \N @@ -9420,18 +9420,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 5560.7465148 20221.23760488177 0.12460000000028515 -14 11115.6888888 20211.425296655878 0.31539999999891855 -15 21971.879078399998 20439.827353395063 0.8578000000001578 -16 43424.10012050001 20679.21813539438 0.31609999999988725 +13 5560.7465148 20221.23760488177 0.1246000000002851 +14 11115.6888888 20211.42529665588 0.3153999999989185 +15 21971.8790784 20439.82735339506 0.8578000000001578 +16 43424.10012050001 20679.21813539438 0.3160999999998872 17 86065.68037200002 20864.60462826194 1.227999999999554 -18 171079.14854159998 20991.607818411096 1.7351999999968255 -19 340839.5747706 21072.160972698795 0.6474000000109044 -20 680093.6539995 21120.953564190677 5.41099999999301 -21 1358342.1138370999 21149.477920165707 3.8301000000068797 -22 2714557.787568 21165.961871291325 10.893000000008666 -23 5426708.232707401 21175.309458665964 4.95399999998142 -24 1.0850736453874E7 21180.518732879736 11.740999999968096 +18 171079.1485416 20991.6078184111 1.735199999996826 +19 340839.5747706 21072.1609726988 0.6474000000109044 +20 680093.6539995 21120.95356419068 5.41099999999301 +21 1358342.1138371 21149.47792016571 3.83010000000688 +22 2714557.787568 21165.96187129133 10.89300000000867 +23 5426708.232707401 21175.30945866596 4.95399999998142 +24 10850736.453874 21180.51873287974 11.7409999999681 -- !sql_test_String_Double_2 -- \N \N @@ -9553,18 +9553,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 10628.412 10579.622 -14 15023.277 14954.309 -15 21240.769 21143.256999999998 -16 30035.198 29897.312 -17 42473.506 42278.518000000004 -18 60064.716 59788.96799999999 -19 84942.997 84553.03700000001 -20 120126.59199999999 119575.11 -21 169883.98599999998 169104.076 -22 240251.764 239148.806 -23 339766.967 338207.151 -24 480502.81799999997 478296.904 +13 10628.412200000 10579.621800000 +14 15023.276700000 14954.309300000 +15 21240.768800000 21143.257200000 +16 30035.197900000 29897.312100000 +17 42473.506200000 42278.517800000 +18 60064.715600000 59788.968400000 +19 84942.996800000 84553.037200000 +20 120126.592000000 119575.110000000 +21 169883.986300000 169104.075700000 +22 240251.764000000 239148.806000000 +23 339766.967400000 338207.150600000 +24 480502.817500000 478296.904500000 -- !sql_test_String_DecimalV2_notn_0 -- 1 \N \N @@ -9579,18 +9579,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 10628.412 10579.622 -14 15023.277 14954.309 -15 21240.769 21143.256999999998 -16 30035.198 29897.312 -17 42473.506 42278.518000000004 -18 60064.716 59788.96799999999 -19 84942.997 84553.03700000001 -20 120126.59199999999 119575.11 -21 169883.98599999998 169104.076 -22 240251.764 239148.806 -23 339766.967 338207.151 -24 480502.81799999997 478296.904 +13 10628.412200000 10579.621800000 +14 15023.276700000 14954.309300000 +15 21240.768800000 21143.257200000 +16 30035.197900000 29897.312100000 +17 42473.506200000 42278.517800000 +18 60064.715600000 59788.968400000 +19 84942.996800000 84553.037200000 +20 120126.592000000 119575.110000000 +21 169883.986300000 169104.075700000 +22 240251.764000000 239148.806000000 +23 339766.967400000 338207.150600000 +24 480502.817500000 478296.904500000 -- !sql_test_String_DecimalV2_1 -- \N \N \N \N @@ -9606,18 +9606,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 258684.99471499998 434.6799344127895 16.58700000000001 -14 516873.537812 434.65934926342646 22.7369999999989 -15 1033237.7858279999 434.6544630404463 31.908999999998912 -16 2065963.518465 434.65261157768015 44.993000000001956 -17 4131406.9139280003 434.6525119494533 63.61600000000254 -18 8262353.413907999 434.64933199878146 89.52599999999899 -19 1.652416835466E7 434.649794850754 126.69700000001154 -20 3.3047793505590998E7 434.6500919340976 179.25700000000143 -21 6.609504485860499E7 434.65023143696067 253.56099999999503 -22 1.3218967347151501E8 434.6498869403912 358.39899999998534 -23 2.64378719210572E8 434.65006000707774 506.9870000000017 -24 5.28757432488977E8 434.64963819985724 716.5229999999287 +13 258687.115518400 434.6763707614613 16.500200000 +14 516869.041174100 434.663130696532 22.867200000 +15 1033233.547425400 434.6562460261138 31.995800000 +16 2065960.521839500 434.653242030724 45.036400000 +17 4131415.389130400 434.6516203015154 63.529200000 +18 8262329.443171200 434.650593006928 89.699600000 +19 16524151.405056600 434.6502406915998 126.783800000 +20 33047793.505591000 434.6500919340976 179.257000000 +21 66095095.706814300 434.6498970523031 253.430800000 +22 132189673.471515000 434.6498869403912 358.399000000 +23 264378854.805395600 434.6498370834319 506.813400000 +24 528757192.789046500 434.6498352382891 716.740000000 -- !sql_test_String_DecimalV2_notn_1 -- 1 \N \N \N @@ -9632,18 +9632,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 258684.99471499998 434.6799344127895 16.58700000000001 -14 516873.537812 434.65934926342646 22.7369999999989 -15 1033237.7858279999 434.6544630404463 31.908999999998912 -16 2065963.518465 434.65261157768015 44.993000000001956 -17 4131406.9139280003 434.6525119494533 63.61600000000254 -18 8262353.413907999 434.64933199878146 89.52599999999899 -19 1.652416835466E7 434.649794850754 126.69700000001154 -20 3.3047793505590998E7 434.6500919340976 179.25700000000143 -21 6.609504485860499E7 434.65023143696067 253.56099999999503 -22 1.3218967347151501E8 434.6498869403912 358.39899999998534 -23 2.64378719210572E8 434.65006000707774 506.9870000000017 -24 5.28757432488977E8 434.64963819985724 716.5229999999287 +13 258687.115518400 434.6763707614613 16.500200000 +14 516869.041174100 434.663130696532 22.867200000 +15 1033233.547425400 434.6562460261138 31.995800000 +16 2065960.521839500 434.653242030724 45.036400000 +17 4131415.389130400 434.6516203015154 63.529200000 +18 8262329.443171200 434.650593006928 89.699600000 +19 16524151.405056600 434.6502406915998 126.783800000 +20 33047793.505591000 434.6500919340976 179.257000000 +21 66095095.706814300 434.6498970523031 253.430800000 +22 132189673.471515000 434.6498869403912 358.399000000 +23 264378854.805395600 434.6498370834319 506.813400000 +24 528757192.789046500 434.6498352382891 716.740000000 -- !sql_test_String_DecimalV2_2 -- \N \N @@ -9765,17 +9765,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 10749.360999999999 10458.673 +13 10749.361 10458.673 14 15145.248 14832.338 -15 21359.578999999998 21024.447 +15 21359.579 21024.447 16 30144.932 29787.578 17 42565.8 42186.224 -18 60127.740999999995 59725.943 +18 60127.74099999999 59725.943 19 84960.027 84536.00700000001 20 120073.972 119627.73 -21 169728.26299999998 169259.799 +21 169728.263 169259.799 22 239945.628 239454.942 -23 339243.51300000004 338730.605 +23 339243.513 338730.605 24 479667.426 479132.296 -- !sql_test_String_Decimal32V3_notn_0 -- @@ -9791,17 +9791,17 @@ 10 \N \N 11 \N \N 12 \N \N -13 10749.360999999999 10458.673 +13 10749.361 10458.673 14 15145.248 14832.338 -15 21359.578999999998 21024.447 +15 21359.579 21024.447 16 30144.932 29787.578 17 42565.8 42186.224 -18 60127.740999999995 59725.943 +18 60127.74099999999 59725.943 19 84960.027 84536.00700000001 20 120073.972 119627.73 -21 169728.26299999998 169259.799 +21 169728.263 169259.799 22 239945.628 239454.942 -23 339243.51300000004 338730.605 +23 339243.513 338730.605 24 479667.426 479132.296 -- !sql_test_String_Decimal32V3_1 -- @@ -9818,18 +9818,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1541230.246848 72.95806500440335 139.24900000000025 -14 2345071.608815 95.80258221213766 125.56799999999848 -15 3551060.850358 126.46964778057601 78.6969999999987 -16 5354280.544635 167.71187673847223 127.19600000000227 -17 8042458.565456001 223.28077644529685 53.28800000000001 -18 1.2039242630958E7 298.2933812512755 58.939999999996644 -19 1.7967427084170002E7 399.73594170086324 156.02700000001073 -20 2.6741241725971E7 537.1563008412476 34.873999999990104 -21 3.9700925869192E7 723.6160345298678 144.29499999998862 -22 5.8808787022755E7 977.0007092111861 0.17400000001393323 -23 8.6934587228786E7 1321.8240269210073 211.32499999999817 -24 1.2827062380846499E8 1791.7136434137499 190.9459999999794 +13 1541230.246848 72.95806500440335 139.2490000000003 +14 2345071.608815 95.80258221213766 125.5679999999985 +15 3551060.850358 126.469647780576 78.6969999999987 +16 5354280.544635 167.7118767384722 127.1960000000023 +17 8042458.565456001 223.2807764452969 53.28800000000001 +18 12039242.630958 298.2933812512755 58.93999999999664 +19 17967427.08417 399.7359417008632 156.0270000000107 +20 26741241.725971 537.1563008412476 34.8739999999901 +21 39700925.869192 723.6160345298678 144.2949999999886 +22 58808787.022755 977.0007092111861 0.1740000000139332 +23 86934587.22878601 1321.824026921007 211.3249999999982 +24 128270623.808465 1791.71364341375 190.9459999999794 -- !sql_test_String_Decimal32V3_notn_1 -- 1 \N \N \N @@ -9844,18 +9844,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1541230.246848 72.95806500440335 139.24900000000025 -14 2345071.608815 95.80258221213766 125.56799999999848 -15 3551060.850358 126.46964778057601 78.6969999999987 -16 5354280.544635 167.71187673847223 127.19600000000227 -17 8042458.565456001 223.28077644529685 53.28800000000001 -18 1.2039242630958E7 298.2933812512755 58.939999999996644 -19 1.7967427084170002E7 399.73594170086324 156.02700000001073 -20 2.6741241725971E7 537.1563008412476 34.873999999990104 -21 3.9700925869192E7 723.6160345298678 144.29499999998862 -22 5.8808787022755E7 977.0007092111861 0.17400000001393323 -23 8.6934587228786E7 1321.8240269210073 211.32499999999817 -24 1.2827062380846499E8 1791.7136434137499 190.9459999999794 +13 1541230.246848 72.95806500440335 139.2490000000003 +14 2345071.608815 95.80258221213766 125.5679999999985 +15 3551060.850358 126.469647780576 78.6969999999987 +16 5354280.544635 167.7118767384722 127.1960000000023 +17 8042458.565456001 223.2807764452969 53.28800000000001 +18 12039242.630958 298.2933812512755 58.93999999999664 +19 17967427.08417 399.7359417008632 156.0270000000107 +20 26741241.725971 537.1563008412476 34.8739999999901 +21 39700925.869192 723.6160345298678 144.2949999999886 +22 58808787.022755 977.0007092111861 0.1740000000139332 +23 86934587.22878601 1321.824026921007 211.3249999999982 +24 128270623.808465 1791.71364341375 190.9459999999794 -- !sql_test_String_Decimal32V3_2 -- \N \N @@ -9978,17 +9978,17 @@ 11 \N \N 12 \N \N 13 25171.36266 -3963.328660000001 -14 30667.249770000002 -689.663770000001 -15 37981.580879999994 4402.44512 -16 47866.933990000005 12065.57601 -17 61387.8021 23364.221900000004 +14 30667.24977 -689.663770000001 +15 37981.58087999999 4402.44512 +16 47866.93399 12065.57601 +17 61387.8021 23364.2219 18 80049.74321 39803.94078999999 -19 105982.02932 63514.004680000005 +19 105982.02932 63514.00468000001 20 142195.97443 97505.72756999999 -21 192950.26554 146037.79645999998 +21 192950.26554 146037.79646 22 264267.63065 215132.93935 -23 364665.51576 313308.60224000004 -24 506189.42886999995 452610.29313 +23 364665.51576 313308.60224 +24 506189.4288699999 452610.29313 -- !sql_test_String_Decimal64V3_notn_0 -- 1 \N \N @@ -10004,17 +10004,17 @@ 11 \N \N 12 \N \N 13 25171.36266 -3963.328660000001 -14 30667.249770000002 -689.663770000001 -15 37981.580879999994 4402.44512 -16 47866.933990000005 12065.57601 -17 61387.8021 23364.221900000004 +14 30667.24977 -689.663770000001 +15 37981.58087999999 4402.44512 +16 47866.93399 12065.57601 +17 61387.8021 23364.2219 18 80049.74321 39803.94078999999 -19 105982.02932 63514.004680000005 +19 105982.02932 63514.00468000001 20 142195.97443 97505.72756999999 -21 192950.26554 146037.79645999998 +21 192950.26554 146037.79646 22 264267.63065 215132.93935 -23 364665.51576 313308.60224000004 -24 506189.42886999995 452610.29313 +23 364665.51576 313308.60224 +24 506189.4288699999 452610.29313 -- !sql_test_String_Decimal64V3_1 -- \N \N \N \N @@ -10030,18 +10030,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447238102351624E8 0.7279306228805447 10604.017 -14 2.350011430849786E8 0.9560120118888461 14988.793 -15 3.558047407773424E8 1.2622131285013156 4402.44512 -16 5.364163112874825E8 1.6740289581607652 12065.57601 -17 8.056438454190812E8 2.228933297554132 4352.431800000006 -18 1.2059019213932788E9 2.9780418526439707 19681.039579999997 -19 1.7995404370735698E9 3.991144759776611 21045.980040000002 -20 2.6780820587855387E9 5.363624478309718 8125.233849999997 -21 3.975691744266031E9 7.225969313657791 5300.389219999979 -22 5.88879975399851E9 9.756865410488496 18594.17415000001 -23 8.70466453673107E9 13.2012239741778 5167.121119999996 -24 1.2842915113128065E10 17.89502030515582 23977.207209999993 +13 154472381.0235162 0.7279306228805447 10604.017 +14 235001143.0849786 0.9560120118888461 14988.793 +15 355804740.7773424 1.262213128501316 4402.44512 +16 536416311.2874825 1.674028958160765 12065.57601 +17 805643845.4190812 2.228933297554132 4352.431800000006 +18 1205901921.393279 2.978041852643971 19681.03958 +19 1799540437.07357 3.991144759776611 21045.98004 +20 2678082058.785539 5.363624478309718 8125.233849999997 +21 3975691744.266031 7.225969313657791 5300.389219999979 +22 5888799753.99851 9.756865410488496 18594.17415000001 +23 8704664536.73107 13.2012239741778 5167.121119999996 +24 12842915113.12807 17.89502030515582 23977.20720999999 -- !sql_test_String_Decimal64V3_notn_1 -- 1 \N \N \N @@ -10056,18 +10056,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447238102351624E8 0.7279306228805447 10604.017 -14 2.350011430849786E8 0.9560120118888461 14988.793 -15 3.558047407773424E8 1.2622131285013156 4402.44512 -16 5.364163112874825E8 1.6740289581607652 12065.57601 -17 8.056438454190812E8 2.228933297554132 4352.431800000006 -18 1.2059019213932788E9 2.9780418526439707 19681.039579999997 -19 1.7995404370735698E9 3.991144759776611 21045.980040000002 -20 2.6780820587855387E9 5.363624478309718 8125.233849999997 -21 3.975691744266031E9 7.225969313657791 5300.389219999979 -22 5.88879975399851E9 9.756865410488496 18594.17415000001 -23 8.70466453673107E9 13.2012239741778 5167.121119999996 -24 1.2842915113128065E10 17.89502030515582 23977.207209999993 +13 154472381.0235162 0.7279306228805447 10604.017 +14 235001143.0849786 0.9560120118888461 14988.793 +15 355804740.7773424 1.262213128501316 4402.44512 +16 536416311.2874825 1.674028958160765 12065.57601 +17 805643845.4190812 2.228933297554132 4352.431800000006 +18 1205901921.393279 2.978041852643971 19681.03958 +19 1799540437.07357 3.991144759776611 21045.98004 +20 2678082058.785539 5.363624478309718 8125.233849999997 +21 3975691744.266031 7.225969313657791 5300.389219999979 +22 5888799753.99851 9.756865410488496 18594.17415000001 +23 8704664536.73107 13.2012239741778 5167.121119999996 +24 12842915113.12807 17.89502030515582 23977.20720999999 -- !sql_test_String_Decimal64V3_2 -- \N \N @@ -10189,18 +10189,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568961536267698E8 -1.45668407328677E8 -14 1.5680511124978802E8 -1.56775133663788E8 -15 1.67922425580899E8 -1.6788004155489898E8 -16 1.7904231093401E8 -1.7898237842401E8 -17 1.9016583180212098E8 -1.90081079778121E8 -18 2.01294493743232E8 -2.01174640059232E8 -19 2.1243042602934298E8 -2.12260929995343E8 -20 2.2357663997445402E8 -2.23336938272454E8 -21 2.3473739426556498E8 -2.34398406203565E8 -22 2.45918711630676E8 -2.45439311060676E8 -23 2.5712910951578698E8 -2.56451135397787E8 -24 2.68380633428898E8 -2.67421833706898E8 +13 145689615.362677 -145668407.328677 +14 156805111.249788 -156775133.663788 +15 167922425.580899 -167880041.554899 +16 179042310.93401 -178982378.42401 +17 190165831.802121 -190081079.778121 +18 201294493.743232 -201174640.059232 +19 212430426.029343 -212260929.995343 +20 223576639.974454 -223336938.272454 +21 234737394.265565 -234398406.203565 +22 245918711.630676 -245439311.060676 +23 257129109.515787 -256451135.397787 +24 268380633.428898 -267421833.706898 -- !sql_test_String_Decimal128V3_notn_0 -- 1 \N \N @@ -10215,18 +10215,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 1.4568961536267698E8 -1.45668407328677E8 -14 1.5680511124978802E8 -1.56775133663788E8 -15 1.67922425580899E8 -1.6788004155489898E8 -16 1.7904231093401E8 -1.7898237842401E8 -17 1.9016583180212098E8 -1.90081079778121E8 -18 2.01294493743232E8 -2.01174640059232E8 -19 2.1243042602934298E8 -2.12260929995343E8 -20 2.2357663997445402E8 -2.23336938272454E8 -21 2.3473739426556498E8 -2.34398406203565E8 -22 2.45918711630676E8 -2.45439311060676E8 -23 2.5712910951578698E8 -2.56451135397787E8 -24 2.68380633428898E8 -2.67421833706898E8 +13 145689615.362677 -145668407.328677 +14 156805111.249788 -156775133.663788 +15 167922425.580899 -167880041.554899 +16 179042310.93401 -178982378.42401 +17 190165831.802121 -190081079.778121 +18 201294493.743232 -201174640.059232 +19 212430426.029343 -212260929.995343 +20 223576639.974454 -223336938.272454 +21 234737394.265565 -234398406.203565 +22 245918711.630676 -245439311.060676 +23 257129109.515787 -256451135.397787 +24 268380633.428898 -267421833.706898 -- !sql_test_String_Decimal128V3_1 -- \N \N \N \N @@ -10242,18 +10242,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447827128527517E12 7.279028668610382E-5 10604.017 -14 2.350094689949447E12 9.559781423176688E-5 14988.793 -15 3.5581651244869517E12 1.262171370017361E-4 21192.013 -16 5.364329568799107E12 1.6739770127994797E-4 29966.255 -17 8.056673844043637E12 2.2288681753596603E-4 42376.012 -18 1.2059352095628559E13 2.977959647927322E-4 59926.842 -19 1.799587513006657E13 3.991040354260183E-4 84748.017 -20 2.6781486338173504E13 5.363491146101878E-4 119850.851 -21 3.9757858953962266E13 7.225798194489018E-4 169494.031 -22 5.888932903807677E13 9.756644806044754E-4 239700.285 -23 8.704852839187608E13 0.0013200938406696123 338987.059 -24 1.2843181413417883E14 0.0017894649256196833 479399.861 +13 1544782712852.752 7.279028668610382e-05 10604.017 +14 2350094689949.447 9.559781423176688e-05 14988.793 +15 3558165124486.952 0.0001262171370017361 21192.013 +16 5364329568799.107 0.000167397701279948 29966.255 +17 8056673844043.637 0.000222886817535966 42376.012 +18 12059352095628.56 0.0002977959647927322 59926.842 +19 17995875130066.57 0.0003991040354260183 84748.01700000001 +20 26781486338173.5 0.0005363491146101878 119850.851 +21 39757858953962.27 0.0007225798194489018 169494.031 +22 58889329038076.77 0.0009756644806044754 239700.285 +23 87048528391876.08 0.001320093840669612 338987.059 +24 128431814134178.8 0.001789464925619683 479399.861 -- !sql_test_String_Decimal128V3_notn_1 -- 1 \N \N \N @@ -10268,18 +10268,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.5447827128527517E12 7.279028668610382E-5 10604.017 -14 2.350094689949447E12 9.559781423176688E-5 14988.793 -15 3.5581651244869517E12 1.262171370017361E-4 21192.013 -16 5.364329568799107E12 1.6739770127994797E-4 29966.255 -17 8.056673844043637E12 2.2288681753596603E-4 42376.012 -18 1.2059352095628559E13 2.977959647927322E-4 59926.842 -19 1.799587513006657E13 3.991040354260183E-4 84748.017 -20 2.6781486338173504E13 5.363491146101878E-4 119850.851 -21 3.9757858953962266E13 7.225798194489018E-4 169494.031 -22 5.888932903807677E13 9.756644806044754E-4 239700.285 -23 8.704852839187608E13 0.0013200938406696123 338987.059 -24 1.2843181413417883E14 0.0017894649256196833 479399.861 +13 1544782712852.752 7.279028668610382e-05 10604.017 +14 2350094689949.447 9.559781423176688e-05 14988.793 +15 3558165124486.952 0.0001262171370017361 21192.013 +16 5364329568799.107 0.000167397701279948 29966.255 +17 8056673844043.637 0.000222886817535966 42376.012 +18 12059352095628.56 0.0002977959647927322 59926.842 +19 17995875130066.57 0.0003991040354260183 84748.01700000001 +20 26781486338173.5 0.0005363491146101878 119850.851 +21 39757858953962.27 0.0007225798194489018 169494.031 +22 58889329038076.77 0.0009756644806044754 239700.285 +23 87048528391876.08 0.001320093840669612 338987.059 +24 128431814134178.8 0.001789464925619683 479399.861 -- !sql_test_String_Decimal128V3_2 -- \N \N @@ -10402,17 +10402,17 @@ 11 \N \N 12 \N \N 13 10758.306 10449.728 -14 15206.886999999999 14770.699 +14 15206.887 14770.699 15 21500.372 20883.654 16 30402.288 29530.222 17 42992.62 41759.404 -18 60798.831 59054.852999999996 +18 60798.831 59054.853 19 85981.17800000001 83514.856 20 121594.791 118106.911 -21 171960.32499999998 167027.737 -22 243188.145 236212.42500000002 -23 343919.63300000003 334054.485 -24 486375.571 472424.15099999995 +21 171960.325 167027.737 +22 243188.145 236212.425 +23 343919.633 334054.485 +24 486375.571 472424.151 -- !sql_test_String_Char_notn_0 -- 1 \N \N @@ -10428,17 +10428,17 @@ 11 \N \N 12 \N \N 13 10758.306 10449.728 -14 15206.886999999999 14770.699 +14 15206.887 14770.699 15 21500.372 20883.654 16 30402.288 29530.222 17 42992.62 41759.404 -18 60798.831 59054.852999999996 +18 60798.831 59054.853 19 85981.17800000001 83514.856 20 121594.791 118106.911 -21 171960.32499999998 167027.737 -22 243188.145 236212.42500000002 -23 343919.63300000003 334054.485 -24 486375.571 472424.15099999995 +21 171960.325 167027.737 +22 243188.145 236212.425 +23 343919.633 334054.485 +24 486375.571 472424.151 -- !sql_test_String_Char_1 -- \N \N \N \N @@ -10454,18 +10454,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1636083.1789129998 68.72827615708185 112.36500000000069 -14 3268965.820542 68.72629691784276 158.40100000000007 -15 6534747.936666999 68.72513207008714 223.60100000000034 -16 1.3066276066415E7 68.72474101730832 316.01099999999997 -17 2.6129388007296E7 68.72439540194095 446.66800000000603 -18 5.2255547028738E7 68.72430959564856 631.5899999999947 -19 1.0450794939173701E8 68.72421119383438 893.0690000000031 -20 2.0901269309294E8 68.72418259802515 1262.9309999999914 -21 4.1802211169111395E8 68.72417927465257 1786.038999999997 -22 8.360410360401001E8 68.72417040821593 2525.804999999995 -23 1.672078753559866E9 68.72417099064303 3572.0270000000346 -24 3.34415440437631E9 68.72416728906448 5051.580999999973 +13 1636083.178913 68.72827615708185 112.3650000000007 +14 3268965.820542 68.72629691784276 158.4010000000001 +15 6534747.936666999 68.72513207008714 223.6010000000003 +16 13066276.066415 68.72474101730832 316.011 +17 26129388.007296 68.72439540194095 446.668000000006 +18 52255547.028738 68.72430959564856 631.5899999999947 +19 104507949.391737 68.72421119383438 893.0690000000031 +20 209012693.09294 68.72418259802515 1262.930999999991 +21 418022111.6911139 68.72417927465257 1786.038999999997 +22 836041036.0401001 68.72417040821593 2525.804999999995 +23 1672078753.559866 68.72417099064303 3572.027000000035 +24 3344154404.37631 68.72416728906448 5051.580999999973 -- !sql_test_String_Char_notn_1 -- 1 \N \N \N @@ -10480,18 +10480,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1636083.1789129998 68.72827615708185 112.36500000000069 -14 3268965.820542 68.72629691784276 158.40100000000007 -15 6534747.936666999 68.72513207008714 223.60100000000034 -16 1.3066276066415E7 68.72474101730832 316.01099999999997 -17 2.6129388007296E7 68.72439540194095 446.66800000000603 -18 5.2255547028738E7 68.72430959564856 631.5899999999947 -19 1.0450794939173701E8 68.72421119383438 893.0690000000031 -20 2.0901269309294E8 68.72418259802515 1262.9309999999914 -21 4.1802211169111395E8 68.72417927465257 1786.038999999997 -22 8.360410360401001E8 68.72417040821593 2525.804999999995 -23 1.672078753559866E9 68.72417099064303 3572.0270000000346 -24 3.34415440437631E9 68.72416728906448 5051.580999999973 +13 1636083.178913 68.72827615708185 112.3650000000007 +14 3268965.820542 68.72629691784276 158.4010000000001 +15 6534747.936666999 68.72513207008714 223.6010000000003 +16 13066276.066415 68.72474101730832 316.011 +17 26129388.007296 68.72439540194095 446.668000000006 +18 52255547.028738 68.72430959564856 631.5899999999947 +19 104507949.391737 68.72421119383438 893.0690000000031 +20 209012693.09294 68.72418259802515 1262.930999999991 +21 418022111.6911139 68.72417927465257 1786.038999999997 +22 836041036.0401001 68.72417040821593 2525.804999999995 +23 1672078753.559866 68.72417099064303 3572.027000000035 +24 3344154404.37631 68.72416728906448 5051.580999999973 -- !sql_test_String_Char_2 -- \N \N @@ -10613,13 +10613,13 @@ 10 \N \N 11 \N \N 12 \N \N -13 12923.137999999999 8284.896 +13 12923.138 8284.896000000001 14 18266.875 11710.711 -15 25826.754 16557.271999999997 -16 36519.943 23412.567000000003 +15 25826.754 16557.272 +16 36519.943 23412.567 17 51643.742 33108.28200000001 -18 73032.97899999999 46820.704999999994 -19 103282.60200000001 66213.432 +18 73032.97899999999 46820.70499999999 +19 103282.602 66213.432 20 146062.505 93639.197 21 206562.762 132425.3 22 292123.284 187277.286 @@ -10639,13 +10639,13 @@ 10 \N \N 11 \N \N 12 \N \N -13 12923.137999999999 8284.896 +13 12923.138 8284.896000000001 14 18266.875 11710.711 -15 25826.754 16557.271999999997 -16 36519.943 23412.567000000003 +15 25826.754 16557.272 +16 36519.943 23412.567 17 51643.742 33108.28200000001 -18 73032.97899999999 46820.704999999994 -19 103282.60200000001 66213.432 +18 73032.97899999999 46820.70499999999 +19 103282.602 66213.432 20 146062.505 93639.197 21 206562.762 132425.3 22 292123.284 187277.286 @@ -10666,18 +10666,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.4591998509057E7 4.57242938164934 1327.5329999999994 -14 4.9134492535026E7 4.5724277184036275 1876.4650000000001 -15 9.821949152363299E7 4.572426592985455 2653.048999999999 -16 1.9638948579844E8 4.572426243055818 3751.5030000000006 -17 3.9272943769276E8 4.572426257562532 5305.092000000004 -18 7.85409401229354E8 4.572426032171035 7502.293999999994 -19 1.5707693246679451E9 4.572425926990003 10609.67700000001 -20 3.141489038017554E9 4.57242610481582 15004.235 -21 6.28292864124466E9 4.572426042855365 21219.10699999999 -22 1.2565807800854715E10 4.572426026217996 30008.28899999999 -23 2.513156596693834E10 4.57242602075181 42438.087 -24 5.0263082560627815E10 4.572426023604961 60016.489 +13 24591998.509057 4.57242938164934 1327.532999999999 +14 49134492.535026 4.572427718403627 1876.465 +15 98219491.52363299 4.572426592985455 2653.048999999999 +16 196389485.79844 4.572426243055818 3751.503000000001 +17 392729437.69276 4.572426257562532 5305.092000000004 +18 785409401.229354 4.572426032171035 7502.293999999994 +19 1570769324.667945 4.572425926990003 10609.67700000001 +20 3141489038.017554 4.57242610481582 15004.235 +21 6282928641.24466 4.572426042855365 21219.10699999999 +22 12565807800.85472 4.572426026217996 30008.28899999999 +23 25131565966.93834 4.57242602075181 42438.087 +24 50263082560.62782 4.572426023604961 60016.489 -- !sql_test_String_Varchar_notn_1 -- 1 \N \N \N @@ -10692,18 +10692,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.4591998509057E7 4.57242938164934 1327.5329999999994 -14 4.9134492535026E7 4.5724277184036275 1876.4650000000001 -15 9.821949152363299E7 4.572426592985455 2653.048999999999 -16 1.9638948579844E8 4.572426243055818 3751.5030000000006 -17 3.9272943769276E8 4.572426257562532 5305.092000000004 -18 7.85409401229354E8 4.572426032171035 7502.293999999994 -19 1.5707693246679451E9 4.572425926990003 10609.67700000001 -20 3.141489038017554E9 4.57242610481582 15004.235 -21 6.28292864124466E9 4.572426042855365 21219.10699999999 -22 1.2565807800854715E10 4.572426026217996 30008.28899999999 -23 2.513156596693834E10 4.57242602075181 42438.087 -24 5.0263082560627815E10 4.572426023604961 60016.489 +13 24591998.509057 4.57242938164934 1327.532999999999 +14 49134492.535026 4.572427718403627 1876.465 +15 98219491.52363299 4.572426592985455 2653.048999999999 +16 196389485.79844 4.572426243055818 3751.503000000001 +17 392729437.69276 4.572426257562532 5305.092000000004 +18 785409401.229354 4.572426032171035 7502.293999999994 +19 1570769324.667945 4.572425926990003 10609.67700000001 +20 3141489038.017554 4.57242610481582 15004.235 +21 6282928641.24466 4.572426042855365 21219.10699999999 +22 12565807800.85472 4.572426026217996 30008.28899999999 +23 25131565966.93834 4.57242602075181 42438.087 +24 50263082560.62782 4.572426023604961 60016.489 -- !sql_test_String_Varchar_2 -- \N \N @@ -10825,18 +10825,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 21208.034 0.0 -14 29977.586 0.0 -15 42384.026 0.0 -16 59932.51 0.0 -17 84752.024 0.0 -18 119853.684 0.0 -19 169496.034 0.0 -20 239701.702 0.0 -21 338988.062 0.0 -22 479400.57 0.0 -23 677974.118 0.0 -24 958799.722 0.0 +13 21208.034 0 +14 29977.586 0 +15 42384.026 0 +16 59932.51 0 +17 84752.024 0 +18 119853.684 0 +19 169496.034 0 +20 239701.702 0 +21 338988.062 0 +22 479400.57 0 +23 677974.118 0 +24 958799.722 0 -- !sql_test_String_String_notn_0 -- 1 \N \N @@ -10851,18 +10851,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 21208.034 0.0 -14 29977.586 0.0 -15 42384.026 0.0 -16 59932.51 0.0 -17 84752.024 0.0 -18 119853.684 0.0 -19 169496.034 0.0 -20 239701.702 0.0 -21 338988.062 0.0 -22 479400.57 0.0 -23 677974.118 0.0 -24 958799.722 0.0 +13 21208.034 0 +14 29977.586 0 +15 42384.026 0 +16 59932.51 0 +17 84752.024 0 +18 119853.684 0 +19 169496.034 0 +20 239701.702 0 +21 338988.062 0 +22 479400.57 0 +23 677974.118 0 +24 958799.722 0 -- !sql_test_String_String_1 -- \N \N \N \N @@ -10878,18 +10878,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.1244517653628899E8 1.0 0.0 -14 2.24663915596849E8 1.0 0.0 -15 4.4910141499216896E8 1.0 0.0 -16 8.97976438725025E8 1.0 0.0 -17 1.7957263930241442E9 1.0 0.0 -18 3.5912263920929637E9 1.0 0.0 -19 7.18222638543229E9 1.0 0.0 -20 1.43642264854242E10 1.0 0.0 -21 2.8728226544628956E10 1.0 0.0 -22 5.745622662908123E10 1.0 0.0 -23 1.1491222616946948E11 1.0 0.0 -24 2.298242267268193E11 1.0 0.0 +13 112445176.536289 1 0 +14 224663915.596849 1 0 +15 449101414.992169 1 0 +16 897976438.7250251 1 0 +17 1795726393.024144 1 0 +18 3591226392.092964 1 0 +19 7182226385.43229 1 0 +20 14364226485.4242 1 0 +21 28728226544.62896 1 0 +22 57456226629.08123 1 0 +23 114912226169.4695 1 0 +24 229824226726.8193 1 0 -- !sql_test_String_String_notn_1 -- 1 \N \N \N @@ -10904,18 +10904,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 1.1244517653628899E8 1.0 0.0 -14 2.24663915596849E8 1.0 0.0 -15 4.4910141499216896E8 1.0 0.0 -16 8.97976438725025E8 1.0 0.0 -17 1.7957263930241442E9 1.0 0.0 -18 3.5912263920929637E9 1.0 0.0 -19 7.18222638543229E9 1.0 0.0 -20 1.43642264854242E10 1.0 0.0 -21 2.8728226544628956E10 1.0 0.0 -22 5.745622662908123E10 1.0 0.0 -23 1.1491222616946948E11 1.0 0.0 -24 2.298242267268193E11 1.0 0.0 +13 112445176.536289 1 0 +14 224663915.596849 1 0 +15 449101414.992169 1 0 +16 897976438.7250251 1 0 +17 1795726393.024144 1 0 +18 3591226392.092964 1 0 +19 7182226385.43229 1 0 +20 14364226485.4242 1 0 +21 28728226544.62896 1 0 +22 57456226629.08123 1 0 +23 114912226169.4695 1 0 +24 229824226726.8193 1 0 -- !sql_test_String_String_2 -- \N \N @@ -11037,18 +11037,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0130905017E7 -2.0109696983E7 -14 2.0135290793E7 -2.0105313207E7 -15 2.0141495013E7 -2.0099110987E7 -16 2.0150270255E7 -2.0090337745E7 -17 2.0162681012E7 -2.0077928988E7 -18 2.0180232842E7 -2.0060379158E7 -19 2.0205055017E7 -2.0035558983E7 -20 2.0240158851E7 -2.0000457149E7 -21 2.0289803031E7 -1.9950814969E7 -22 2.0360010285E7 -1.9880609715E7 -23 2.0459298059E7 -1.9781323941E7 -24 2.0599711861E7 -1.9640912139E7 +13 20130905.017 -20109696.983 +14 20135290.793 -20105313.207 +15 20141495.013 -20099110.987 +16 20150270.255 -20090337.745 +17 20162681.012 -20077928.988 +18 20180232.842 -20060379.158 +19 20205055.017 -20035558.983 +20 20240158.851 -20000457.149 +21 20289803.031 -19950814.969 +22 20360010.285 -19880609.715 +23 20459298.059 -19781323.941 +24 20599711.861 -19640912.139 -- !sql_test_String_Date_notn_0 -- 1 \N \N @@ -11063,18 +11063,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0130905017E7 -2.0109696983E7 -14 2.0135290793E7 -2.0105313207E7 -15 2.0141495013E7 -2.0099110987E7 -16 2.0150270255E7 -2.0090337745E7 -17 2.0162681012E7 -2.0077928988E7 -18 2.0180232842E7 -2.0060379158E7 -19 2.0205055017E7 -2.0035558983E7 -20 2.0240158851E7 -2.0000457149E7 -21 2.0289803031E7 -1.9950814969E7 -22 2.0360010285E7 -1.9880609715E7 -23 2.0459298059E7 -1.9781323941E7 -24 2.0599711861E7 -1.9640912139E7 +13 20130905.017 -20109696.983 +14 20135290.793 -20105313.207 +15 20141495.013 -20099110.987 +16 20150270.255 -20090337.745 +17 20162681.012 -20077928.988 +18 20180232.842 -20060379.158 +19 20205055.017 -20035558.983 +20 20240158.851 -20000457.149 +21 20289803.031 -19950814.969 +22 20360010.285 -19880609.715 +23 20459298.059 -19781323.941 +24 20599711.861 -19640912.139 -- !sql_test_String_Date_1 -- \N \N \N \N @@ -11090,18 +11090,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013849117E11 5.270307337847481E-4 10604.017 -14 3.01579041775486E11 7.449586492290225E-4 14988.793 -15 4.2638972273993896E11 0.0010532651024191832 21192.013 -16 6.0293016034152E11 0.001489353987892032 29966.255 -17 8.5261828612366E11 0.0021061316913436453 42376.012 -18 1.2057463986536519E12 0.002978425974237171 59926.842 -19 1.7051561196812192E12 0.004212063811948794 84748.017 -20 2.411436036182108E12 0.005956710553337454 119850.851 -21 3.4102722773755786E12 0.008424027235367011 169494.031 -22 4.82284404128835E12 0.011913349496106174 239700.285 -23 6.82052505205535E12 0.016848002945878918 338987.059 -24 9.64567477607663E12 0.023826661385767774 479399.861 +13 213356013849.117 0.0005270307337847481 10604.017 +14 301579041775.486 0.0007449586492290225 14988.793 +15 426389722739.939 0.001053265102419183 21192.013 +16 602930160341.52 0.001489353987892032 29966.255 +17 852618286123.66 0.002106131691343645 42376.012 +18 1205746398653.652 0.002978425974237171 59926.842 +19 1705156119681.219 0.004212063811948794 84748.01700000001 +20 2411436036182.108 0.005956710553337454 119850.851 +21 3410272277375.579 0.008424027235367011 169494.031 +22 4822844041288.35 0.01191334949610617 239700.285 +23 6820525052055.35 0.01684800294587892 338987.059 +24 9645674776076.631 0.02382666138576777 479399.861 -- !sql_test_String_Date_notn_1 -- 1 \N \N \N @@ -11116,18 +11116,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013849117E11 5.270307337847481E-4 10604.017 -14 3.01579041775486E11 7.449586492290225E-4 14988.793 -15 4.2638972273993896E11 0.0010532651024191832 21192.013 -16 6.0293016034152E11 0.001489353987892032 29966.255 -17 8.5261828612366E11 0.0021061316913436453 42376.012 -18 1.2057463986536519E12 0.002978425974237171 59926.842 -19 1.7051561196812192E12 0.004212063811948794 84748.017 -20 2.411436036182108E12 0.005956710553337454 119850.851 -21 3.4102722773755786E12 0.008424027235367011 169494.031 -22 4.82284404128835E12 0.011913349496106174 239700.285 -23 6.82052505205535E12 0.016848002945878918 338987.059 -24 9.64567477607663E12 0.023826661385767774 479399.861 +13 213356013849.117 0.0005270307337847481 10604.017 +14 301579041775.486 0.0007449586492290225 14988.793 +15 426389722739.939 0.001053265102419183 21192.013 +16 602930160341.52 0.001489353987892032 29966.255 +17 852618286123.66 0.002106131691343645 42376.012 +18 1205746398653.652 0.002978425974237171 59926.842 +19 1705156119681.219 0.004212063811948794 84748.01700000001 +20 2411436036182.108 0.005956710553337454 119850.851 +21 3410272277375.579 0.008424027235367011 169494.031 +22 4822844041288.35 0.01191334949610617 239700.285 +23 6820525052055.35 0.01684800294587892 338987.059 +24 9645674776076.631 0.02382666138576777 479399.861 -- !sql_test_String_Date_2 -- \N \N @@ -11249,18 +11249,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120301020605016E13 -2.0120300999396984E13 -14 2.0120302035090793E13 -2.0120302005113207E13 -15 2.012030305139501E13 -2.012030300901099E13 -16 2.0120304070270254E13 -2.0120304010337746E13 -17 2.012030509278101E13 -2.012030500802899E13 -18 2.0120306120432844E13 -2.0120306000579156E13 -19 2.0120307155355016E13 -2.0120306985858984E13 -20 2.012030820055885E13 -2.012030796085715E13 -21 2.012030926030303E13 -2.012030892131497E13 -22 2.0120310340610285E13 -2.0120309861209715E13 -23 2.012031144999806E13 -2.012031077202394E13 -24 2.012031260051186E13 -2.012031164171214E13 +13 20120301020605.02 -20120300999396.98 +14 20120302035090.79 -20120302005113.21 +15 20120303051395.01 -20120303009010.99 +16 20120304070270.25 -20120304010337.75 +17 20120305092781.01 -20120305008028.99 +18 20120306120432.84 -20120306000579.16 +19 20120307155355.02 -20120306985858.98 +20 20120308200558.85 -20120307960857.15 +21 20120309260303.03 -20120308921314.97 +22 20120310340610.29 -20120309861209.71 +23 20120311449998.06 -20120310772023.94 +24 20120312600511.86 -20120311641712.14 -- !sql_test_String_DateTime_notn_0 -- 1 \N \N @@ -11275,18 +11275,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120301020605016E13 -2.0120300999396984E13 -14 2.0120302035090793E13 -2.0120302005113207E13 -15 2.012030305139501E13 -2.012030300901099E13 -16 2.0120304070270254E13 -2.0120304010337746E13 -17 2.012030509278101E13 -2.012030500802899E13 -18 2.0120306120432844E13 -2.0120306000579156E13 -19 2.0120307155355016E13 -2.0120306985858984E13 -20 2.012030820055885E13 -2.012030796085715E13 -21 2.012030926030303E13 -2.012030892131497E13 -22 2.0120310340610285E13 -2.0120309861209715E13 -23 2.012031144999806E13 -2.012031077202394E13 -24 2.012031260051186E13 -2.012031164171214E13 +13 20120301020605.02 -20120300999396.98 +14 20120302035090.79 -20120302005113.21 +15 20120303051395.01 -20120303009010.99 +16 20120304070270.25 -20120304010337.75 +17 20120305092781.01 -20120305008028.99 +18 20120306120432.84 -20120306000579.16 +19 20120307155355.02 -20120306985858.98 +20 20120308200558.85 -20120307960857.15 +21 20120309260303.03 -20120308921314.97 +22 20120310340610.29 -20120309861209.71 +23 20120311449998.06 -20120310772023.94 +24 20120312600511.86 -20120311641712.14 -- !sql_test_String_DateTime_1 -- \N \N \N \N @@ -11302,18 +11302,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013955167776E17 5.27030733522782E-10 10604.017 -14 3.0157904207679072E17 7.449586484847415E-10 14988.793 -15 4.2638972338000134E17 1.0532651008381053E-9 21192.013 -16 6.0293016154928E17 1.4893539849086316E-9 29966.255 -17 8.5261828825962291E17 2.1061316860674046E-9 42376.012 -18 1.20574640227958554E18 2.9784259652804164E-9 59926.842 -19 1.70515612566502246E18 4.212063797167649E-9 84748.017 -20 2.4114360458550303E18 5.956710529443476E-9 119850.851 -21 3.4102722927671624E18 8.424027197346845E-9 169494.031 -22 4.8228440654765056E18 1.1913349436356791E-8 239700.285 -23 6.8205250896866417E18 1.684800285292242E-8 338987.059 -24 9.645674834137706E18 2.3826661242345814E-8 479399.861 +13 2.133560139551678e+17 5.27030733522782e-10 10604.017 +14 3.015790420767907e+17 7.449586484847415e-10 14988.793 +15 4.263897233800013e+17 1.053265100838105e-09 21192.013 +16 6.0293016154928e+17 1.489353984908632e-09 29966.255 +17 8.526182882596229e+17 2.106131686067405e-09 42376.012 +18 1.205746402279586e+18 2.978425965280416e-09 59926.842 +19 1.705156125665022e+18 4.212063797167649e-09 84748.01700000001 +20 2.41143604585503e+18 5.956710529443476e-09 119850.851 +21 3.410272292767162e+18 8.424027197346845e-09 169494.031 +22 4.822844065476506e+18 1.191334943635679e-08 239700.285 +23 6.820525089686642e+18 1.684800285292242e-08 338987.059 +24 9.645674834137706e+18 2.382666124234581e-08 479399.861 -- !sql_test_String_DateTime_notn_1 -- 1 \N \N \N @@ -11328,18 +11328,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013955167776E17 5.27030733522782E-10 10604.017 -14 3.0157904207679072E17 7.449586484847415E-10 14988.793 -15 4.2638972338000134E17 1.0532651008381053E-9 21192.013 -16 6.0293016154928E17 1.4893539849086316E-9 29966.255 -17 8.5261828825962291E17 2.1061316860674046E-9 42376.012 -18 1.20574640227958554E18 2.9784259652804164E-9 59926.842 -19 1.70515612566502246E18 4.212063797167649E-9 84748.017 -20 2.4114360458550303E18 5.956710529443476E-9 119850.851 -21 3.4102722927671624E18 8.424027197346845E-9 169494.031 -22 4.8228440654765056E18 1.1913349436356791E-8 239700.285 -23 6.8205250896866417E18 1.684800285292242E-8 338987.059 -24 9.645674834137706E18 2.3826661242345814E-8 479399.861 +13 2.133560139551678e+17 5.27030733522782e-10 10604.017 +14 3.015790420767907e+17 7.449586484847415e-10 14988.793 +15 4.263897233800013e+17 1.053265100838105e-09 21192.013 +16 6.0293016154928e+17 1.489353984908632e-09 29966.255 +17 8.526182882596229e+17 2.106131686067405e-09 42376.012 +18 1.205746402279586e+18 2.978425965280416e-09 59926.842 +19 1.705156125665022e+18 4.212063797167649e-09 84748.01700000001 +20 2.41143604585503e+18 5.956710529443476e-09 119850.851 +21 3.410272292767162e+18 8.424027197346845e-09 169494.031 +22 4.822844065476506e+18 1.191334943635679e-08 239700.285 +23 6.820525089686642e+18 1.684800285292242e-08 338987.059 +24 9.645674834137706e+18 2.382666124234581e-08 479399.861 -- !sql_test_String_DateTime_2 -- \N \N @@ -11461,18 +11461,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0130905017E7 -2.0109696983E7 -14 2.0135290793E7 -2.0105313207E7 -15 2.0141495013E7 -2.0099110987E7 -16 2.0150270255E7 -2.0090337745E7 -17 2.0162681012E7 -2.0077928988E7 -18 2.0180232842E7 -2.0060379158E7 -19 2.0205055017E7 -2.0035558983E7 -20 2.0240158851E7 -2.0000457149E7 -21 2.0289803031E7 -1.9950814969E7 -22 2.0360010285E7 -1.9880609715E7 -23 2.0459298059E7 -1.9781323941E7 -24 2.0599711861E7 -1.9640912139E7 +13 20130905.017 -20109696.983 +14 20135290.793 -20105313.207 +15 20141495.013 -20099110.987 +16 20150270.255 -20090337.745 +17 20162681.012 -20077928.988 +18 20180232.842 -20060379.158 +19 20205055.017 -20035558.983 +20 20240158.851 -20000457.149 +21 20289803.031 -19950814.969 +22 20360010.285 -19880609.715 +23 20459298.059 -19781323.941 +24 20599711.861 -19640912.139 -- !sql_test_String_DateV2_notn_0 -- 1 \N \N @@ -11487,18 +11487,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0130905017E7 -2.0109696983E7 -14 2.0135290793E7 -2.0105313207E7 -15 2.0141495013E7 -2.0099110987E7 -16 2.0150270255E7 -2.0090337745E7 -17 2.0162681012E7 -2.0077928988E7 -18 2.0180232842E7 -2.0060379158E7 -19 2.0205055017E7 -2.0035558983E7 -20 2.0240158851E7 -2.0000457149E7 -21 2.0289803031E7 -1.9950814969E7 -22 2.0360010285E7 -1.9880609715E7 -23 2.0459298059E7 -1.9781323941E7 -24 2.0599711861E7 -1.9640912139E7 +13 20130905.017 -20109696.983 +14 20135290.793 -20105313.207 +15 20141495.013 -20099110.987 +16 20150270.255 -20090337.745 +17 20162681.012 -20077928.988 +18 20180232.842 -20060379.158 +19 20205055.017 -20035558.983 +20 20240158.851 -20000457.149 +21 20289803.031 -19950814.969 +22 20360010.285 -19880609.715 +23 20459298.059 -19781323.941 +24 20599711.861 -19640912.139 -- !sql_test_String_DateV2_1 -- \N \N \N \N @@ -11514,18 +11514,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013849117E11 5.270307337847481E-4 10604.017 -14 3.01579041775486E11 7.449586492290225E-4 14988.793 -15 4.2638972273993896E11 0.0010532651024191832 21192.013 -16 6.0293016034152E11 0.001489353987892032 29966.255 -17 8.5261828612366E11 0.0021061316913436453 42376.012 -18 1.2057463986536519E12 0.002978425974237171 59926.842 -19 1.7051561196812192E12 0.004212063811948794 84748.017 -20 2.411436036182108E12 0.005956710553337454 119850.851 -21 3.4102722773755786E12 0.008424027235367011 169494.031 -22 4.82284404128835E12 0.011913349496106174 239700.285 -23 6.82052505205535E12 0.016848002945878918 338987.059 -24 9.64567477607663E12 0.023826661385767774 479399.861 +13 213356013849.117 0.0005270307337847481 10604.017 +14 301579041775.486 0.0007449586492290225 14988.793 +15 426389722739.939 0.001053265102419183 21192.013 +16 602930160341.52 0.001489353987892032 29966.255 +17 852618286123.66 0.002106131691343645 42376.012 +18 1205746398653.652 0.002978425974237171 59926.842 +19 1705156119681.219 0.004212063811948794 84748.01700000001 +20 2411436036182.108 0.005956710553337454 119850.851 +21 3410272277375.579 0.008424027235367011 169494.031 +22 4822844041288.35 0.01191334949610617 239700.285 +23 6820525052055.35 0.01684800294587892 338987.059 +24 9645674776076.631 0.02382666138576777 479399.861 -- !sql_test_String_DateV2_notn_1 -- 1 \N \N \N @@ -11540,18 +11540,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013849117E11 5.270307337847481E-4 10604.017 -14 3.01579041775486E11 7.449586492290225E-4 14988.793 -15 4.2638972273993896E11 0.0010532651024191832 21192.013 -16 6.0293016034152E11 0.001489353987892032 29966.255 -17 8.5261828612366E11 0.0021061316913436453 42376.012 -18 1.2057463986536519E12 0.002978425974237171 59926.842 -19 1.7051561196812192E12 0.004212063811948794 84748.017 -20 2.411436036182108E12 0.005956710553337454 119850.851 -21 3.4102722773755786E12 0.008424027235367011 169494.031 -22 4.82284404128835E12 0.011913349496106174 239700.285 -23 6.82052505205535E12 0.016848002945878918 338987.059 -24 9.64567477607663E12 0.023826661385767774 479399.861 +13 213356013849.117 0.0005270307337847481 10604.017 +14 301579041775.486 0.0007449586492290225 14988.793 +15 426389722739.939 0.001053265102419183 21192.013 +16 602930160341.52 0.001489353987892032 29966.255 +17 852618286123.66 0.002106131691343645 42376.012 +18 1205746398653.652 0.002978425974237171 59926.842 +19 1705156119681.219 0.004212063811948794 84748.01700000001 +20 2411436036182.108 0.005956710553337454 119850.851 +21 3410272277375.579 0.008424027235367011 169494.031 +22 4822844041288.35 0.01191334949610617 239700.285 +23 6820525052055.35 0.01684800294587892 338987.059 +24 9645674776076.631 0.02382666138576777 479399.861 -- !sql_test_String_DateV2_2 -- \N \N @@ -11673,18 +11673,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120301020605016E13 -2.0120300999396984E13 -14 2.0120302035090793E13 -2.0120302005113207E13 -15 2.012030305139501E13 -2.012030300901099E13 -16 2.0120304070270254E13 -2.0120304010337746E13 -17 2.012030509278101E13 -2.012030500802899E13 -18 2.0120306120432844E13 -2.0120306000579156E13 -19 2.0120307155355016E13 -2.0120306985858984E13 -20 2.012030820055885E13 -2.012030796085715E13 -21 2.012030926030303E13 -2.012030892131497E13 -22 2.0120310340610285E13 -2.0120309861209715E13 -23 2.012031144999806E13 -2.012031077202394E13 -24 2.012031260051186E13 -2.012031164171214E13 +13 20120301020605.02 -20120300999396.98 +14 20120302035090.79 -20120302005113.21 +15 20120303051395.01 -20120303009010.99 +16 20120304070270.25 -20120304010337.75 +17 20120305092781.01 -20120305008028.99 +18 20120306120432.84 -20120306000579.16 +19 20120307155355.02 -20120306985858.98 +20 20120308200558.85 -20120307960857.15 +21 20120309260303.03 -20120308921314.97 +22 20120310340610.29 -20120309861209.71 +23 20120311449998.06 -20120310772023.94 +24 20120312600511.86 -20120311641712.14 -- !sql_test_String_DateTimeV2_notn_0 -- 1 \N \N @@ -11699,18 +11699,18 @@ 10 \N \N 11 \N \N 12 \N \N -13 2.0120301020605016E13 -2.0120300999396984E13 -14 2.0120302035090793E13 -2.0120302005113207E13 -15 2.012030305139501E13 -2.012030300901099E13 -16 2.0120304070270254E13 -2.0120304010337746E13 -17 2.012030509278101E13 -2.012030500802899E13 -18 2.0120306120432844E13 -2.0120306000579156E13 -19 2.0120307155355016E13 -2.0120306985858984E13 -20 2.012030820055885E13 -2.012030796085715E13 -21 2.012030926030303E13 -2.012030892131497E13 -22 2.0120310340610285E13 -2.0120309861209715E13 -23 2.012031144999806E13 -2.012031077202394E13 -24 2.012031260051186E13 -2.012031164171214E13 +13 20120301020605.02 -20120300999396.98 +14 20120302035090.79 -20120302005113.21 +15 20120303051395.01 -20120303009010.99 +16 20120304070270.25 -20120304010337.75 +17 20120305092781.01 -20120305008028.99 +18 20120306120432.84 -20120306000579.16 +19 20120307155355.02 -20120306985858.98 +20 20120308200558.85 -20120307960857.15 +21 20120309260303.03 -20120308921314.97 +22 20120310340610.29 -20120309861209.71 +23 20120311449998.06 -20120310772023.94 +24 20120312600511.86 -20120311641712.14 -- !sql_test_String_DateTimeV2_1 -- \N \N \N \N @@ -11726,18 +11726,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013955167776E17 5.27030733522782E-10 10604.017 -14 3.0157904207679072E17 7.449586484847415E-10 14988.793 -15 4.2638972338000134E17 1.0532651008381053E-9 21192.013 -16 6.0293016154928E17 1.4893539849086316E-9 29966.255 -17 8.5261828825962291E17 2.1061316860674046E-9 42376.012 -18 1.20574640227958554E18 2.9784259652804164E-9 59926.842 -19 1.70515612566502246E18 4.212063797167649E-9 84748.017 -20 2.4114360458550303E18 5.956710529443476E-9 119850.851 -21 3.4102722927671624E18 8.424027197346845E-9 169494.031 -22 4.8228440654765056E18 1.1913349436356791E-8 239700.285 -23 6.8205250896866417E18 1.684800285292242E-8 338987.059 -24 9.645674834137706E18 2.3826661242345814E-8 479399.861 +13 2.133560139551678e+17 5.27030733522782e-10 10604.017 +14 3.015790420767907e+17 7.449586484847415e-10 14988.793 +15 4.263897233800013e+17 1.053265100838105e-09 21192.013 +16 6.0293016154928e+17 1.489353984908632e-09 29966.255 +17 8.526182882596229e+17 2.106131686067405e-09 42376.012 +18 1.205746402279586e+18 2.978425965280416e-09 59926.842 +19 1.705156125665022e+18 4.212063797167649e-09 84748.01700000001 +20 2.41143604585503e+18 5.956710529443476e-09 119850.851 +21 3.410272292767162e+18 8.424027197346845e-09 169494.031 +22 4.822844065476506e+18 1.191334943635679e-08 239700.285 +23 6.820525089686642e+18 1.684800285292242e-08 338987.059 +24 9.645674834137706e+18 2.382666124234581e-08 479399.861 -- !sql_test_String_DateTimeV2_notn_1 -- 1 \N \N \N @@ -11752,18 +11752,18 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 2.13356013955167776E17 5.27030733522782E-10 10604.017 -14 3.0157904207679072E17 7.449586484847415E-10 14988.793 -15 4.2638972338000134E17 1.0532651008381053E-9 21192.013 -16 6.0293016154928E17 1.4893539849086316E-9 29966.255 -17 8.5261828825962291E17 2.1061316860674046E-9 42376.012 -18 1.20574640227958554E18 2.9784259652804164E-9 59926.842 -19 1.70515612566502246E18 4.212063797167649E-9 84748.017 -20 2.4114360458550303E18 5.956710529443476E-9 119850.851 -21 3.4102722927671624E18 8.424027197346845E-9 169494.031 -22 4.8228440654765056E18 1.1913349436356791E-8 239700.285 -23 6.8205250896866417E18 1.684800285292242E-8 338987.059 -24 9.645674834137706E18 2.3826661242345814E-8 479399.861 +13 2.133560139551678e+17 5.27030733522782e-10 10604.017 +14 3.015790420767907e+17 7.449586484847415e-10 14988.793 +15 4.263897233800013e+17 1.053265100838105e-09 21192.013 +16 6.0293016154928e+17 1.489353984908632e-09 29966.255 +17 8.526182882596229e+17 2.106131686067405e-09 42376.012 +18 1.205746402279586e+18 2.978425965280416e-09 59926.842 +19 1.705156125665022e+18 4.212063797167649e-09 84748.01700000001 +20 2.41143604585503e+18 5.956710529443476e-09 119850.851 +21 3.410272292767162e+18 8.424027197346845e-09 169494.031 +22 4.822844065476506e+18 1.191334943635679e-08 239700.285 +23 6.820525089686642e+18 1.684800285292242e-08 338987.059 +24 9.645674834137706e+18 2.382666124234581e-08 479399.861 -- !sql_test_String_DateTimeV2_2 -- \N \N @@ -11891,7 +11891,7 @@ 16 29966.255 29966.255 17 42376.012 42376.012 18 59926.842 59926.842 -19 84748.017 84748.017 +19 84748.01700000001 84748.01700000001 20 119851.851 119849.851 21 169495.031 169493.031 22 239701.285 239699.285 @@ -11917,7 +11917,7 @@ 16 29966.255 29966.255 17 42376.012 42376.012 18 59926.842 59926.842 -19 84748.017 84748.017 +19 84748.01700000001 84748.01700000001 20 119851.851 119849.851 21 169495.031 169493.031 22 239701.285 239699.285 @@ -11938,16 +11938,16 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 119850.851 119850.851 0.8509999999951106 -21 169494.031 169494.031 0.030999999988125637 -22 239700.285 239700.285 0.28500000000349246 +21 169494.031 169494.031 0.03099999998812564 +22 239700.285 239700.285 0.2850000000034925 23 338987.059 338987.059 0.0590000000083819 24 479399.861 479399.861 0.86099999997532 @@ -11964,16 +11964,16 @@ 10 \N \N \N 11 \N \N \N 12 \N \N \N -13 0.0 \N \N -14 0.0 \N \N -15 0.0 \N \N -16 0.0 \N \N -17 0.0 \N \N -18 0.0 \N \N -19 0.0 \N \N +13 0 \N \N +14 0 \N \N +15 0 \N \N +16 0 \N \N +17 0 \N \N +18 0 \N \N +19 0 \N \N 20 119850.851 119850.851 0.8509999999951106 -21 169494.031 169494.031 0.030999999988125637 -22 239700.285 239700.285 0.28500000000349246 +21 169494.031 169494.031 0.03099999998812564 +22 239700.285 239700.285 0.2850000000034925 23 338987.059 338987.059 0.0590000000083819 24 479399.861 479399.861 0.86099999997532 diff --git a/regression-test/suites/datatype_p0/complex_types/test_pruned_columns.groovy b/regression-test/suites/datatype_p0/complex_types/test_pruned_columns.groovy new file mode 100644 index 00000000000000..d54d924e97fdc9 --- /dev/null +++ b/regression-test/suites/datatype_p0/complex_types/test_pruned_columns.groovy @@ -0,0 +1,88 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_pruned_columns") { + sql """DROP TABLE IF EXISTS `tbl_test_pruned_columns`""" + sql """ + CREATE TABLE `tbl_test_pruned_columns` ( + `id` int NULL, + `s` struct>>> NULL + ) ENGINE=OLAP + DUPLICATE KEY(`id`) + DISTRIBUTED BY RANDOM BUCKETS AUTO + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + + sql """ + insert into `tbl_test_pruned_columns` values + (1, named_struct('city', 'beijing', 'data', array(map(1, named_struct('a', 10, 'b', 20.0), 2, named_struct('a', 30, 'b', 40))))), + (2, named_struct('city', 'shanghai', 'data', array(map(2, named_struct('a', 50, 'b', 40.0), 1, named_struct('a', 70, 'b', 80))))); + """ + + qt_sql """ + select * from `tbl_test_pruned_columns` order by 1; + """ + + qt_sql1 """ + select b.id, array_map(x -> struct_element(map_values(x)[1], 'a'), struct_element(s, 'data')) from `tbl_test_pruned_columns` t join (select 1 id) b on t.id = b.id order by 1; + """ + + qt_sql2 """ + select id, struct_element(s, 'city') from `tbl_test_pruned_columns` order by 1; + """ + + qt_sql3 """ + select id, struct_element(s, 'data') from `tbl_test_pruned_columns` order by 1; + """ + + qt_sql4 """ + select id, struct_element(s, 'data') from `tbl_test_pruned_columns` where struct_element(struct_element(s, 'data')[1][2], 'b') = 40 order by 1; + """ + + qt_sql5 """ + select id, struct_element(s, 'city') from `tbl_test_pruned_columns` where struct_element(struct_element(s, 'data')[1][2], 'b') = 40 order by 1; + """ + + sql """DROP TABLE IF EXISTS `tbl_test_pruned_columns_map`""" + sql """ + CREATE TABLE `tbl_test_pruned_columns_map` ( + `id` bigint NULL, + `dynamic_attributes` map> NULL + ) ENGINE=OLAP + DUPLICATE KEY(`id`) + DISTRIBUTED BY RANDOM BUCKETS AUTO + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + + sql """ + insert into `tbl_test_pruned_columns_map` values + (1, '{"theme_preference":{"attribute_value":"light", "confidence_score":0.41, "last_updated":"2025-11-03 15:32:33"}, "language_setting":{"attribute_value":"es", "confidence_score":0.65, "last_updated":"2025-11-03 15:32:33"}}'), + (2, '{"theme_preference":{"attribute_value":"light", "confidence_score":0.99, "last_updated":"2025-11-03 15:32:33"}, "language_setting":{"attribute_value":"es", "confidence_score":0.92, "last_updated":"2025-11-03 15:32:33"}}'); + """ + + qt_sql6 """ + select count(struct_element(dynamic_attributes['theme_preference'], 'confidence_score')) from `tbl_test_pruned_columns_map`; + """ + + qt_sql7 """ + select struct_element(dynamic_attributes['theme_preference'], 'confidence_score') from `tbl_test_pruned_columns_map` order by id; + """ +} \ No newline at end of file