[Fix](Outfile) Fix the column type mapping in the orc/parquet file format (#32281)

| Doris Type             | Orc Type                     |  Parquet Type                |
|---------------------|--------------------|------------------------|
| Date                            | Long (logical: DATE)                 |       int32 (Logical: Date)                                        |
| DateTime                    | TIMESTAMP (logical: TIMESTAMP)    |       int96                          |
This commit is contained in:
Tiewei Fang
2024-03-21 14:59:21 +08:00
committed by yiguolei
parent ca05129fa1
commit d7a3ff1ddf
54 changed files with 743 additions and 1026 deletions

View File

@ -28,6 +28,7 @@
#include <arrow/util/decimal.h>
#include <arrow/visit_type_inline.h>
#include <arrow/visitor.h>
#include <cctz/time_zone.h>
#include <glog/logging.h>
#include <stdint.h>
@ -71,16 +72,12 @@ namespace doris {
class FromBlockConverter : public arrow::TypeVisitor {
public:
FromBlockConverter(const vectorized::Block& block, const std::shared_ptr<arrow::Schema>& schema,
arrow::MemoryPool* pool)
: _block(block), _schema(schema), _pool(pool), _cur_field_idx(-1) {
// obtain local time zone
time_t ts = 0;
struct tm t;
char buf[16];
localtime_r(&ts, &t);
strftime(buf, sizeof(buf), "%Z", &t);
_time_zone = buf;
}
arrow::MemoryPool* pool, const cctz::time_zone& timezone_obj)
: _block(block),
_schema(schema),
_pool(pool),
_cur_field_idx(-1),
_timezone_obj(timezone_obj) {}
~FromBlockConverter() override = default;
@ -363,7 +360,7 @@ private:
vectorized::DataTypePtr _cur_type;
arrow::ArrayBuilder* _cur_builder = nullptr;
std::string _time_zone;
const cctz::time_zone& _timezone_obj;
std::vector<std::shared_ptr<arrow::Array>> _arrays;
};
@ -391,7 +388,8 @@ Status FromBlockConverter::convert(std::shared_ptr<arrow::RecordBatch>* out) {
auto column = _cur_col->convert_to_full_column_if_const();
try {
_cur_type->get_serde()->write_column_to_arrow(*column, nullptr, _cur_builder,
_cur_start, _cur_start + _cur_rows);
_cur_start, _cur_start + _cur_rows,
_timezone_obj);
} catch (std::exception& e) {
return Status::InternalError("Fail to convert block data to arrow data, error: {}",
e.what());
@ -407,8 +405,9 @@ Status FromBlockConverter::convert(std::shared_ptr<arrow::RecordBatch>* out) {
Status convert_to_arrow_batch(const vectorized::Block& block,
const std::shared_ptr<arrow::Schema>& schema, arrow::MemoryPool* pool,
std::shared_ptr<arrow::RecordBatch>* result) {
FromBlockConverter converter(block, schema, pool);
std::shared_ptr<arrow::RecordBatch>* result,
const cctz::time_zone& timezone_obj) {
FromBlockConverter converter(block, schema, pool, timezone_obj);
return converter.convert(result);
}

View File

@ -17,6 +17,8 @@
#pragma once
#include <cctz/time_zone.h>
#include <memory>
#include "common/status.h"
@ -38,6 +40,7 @@ namespace doris {
Status convert_to_arrow_batch(const vectorized::Block& block,
const std::shared_ptr<arrow::Schema>& schema, arrow::MemoryPool* pool,
std::shared_ptr<arrow::RecordBatch>* result);
std::shared_ptr<arrow::RecordBatch>* result,
const cctz::time_zone& timezone_obj);
} // namespace doris

View File

@ -78,13 +78,23 @@ Status convert_to_arrow_type(const TypeDescriptor& type, std::shared_ptr<arrow::
case TYPE_HLL:
case TYPE_DATE:
case TYPE_DATETIME:
case TYPE_DATEV2:
case TYPE_DATETIMEV2:
case TYPE_STRING:
case TYPE_JSONB:
case TYPE_OBJECT:
*result = arrow::utf8();
break;
case TYPE_DATEV2:
*result = std::make_shared<arrow::Date32Type>();
break;
case TYPE_DATETIMEV2:
if (type.scale > 3) {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::MICRO);
} else if (type.scale > 0) {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::MILLI);
} else {
*result = std::make_shared<arrow::TimestampType>(arrow::TimeUnit::SECOND);
}
break;
case TYPE_DECIMALV2:
*result = std::make_shared<arrow::Decimal128Type>(27, 9);
break;

View File

@ -269,7 +269,7 @@ void DataTypeArraySerDe::read_one_cell_from_jsonb(IColumn& column, const JsonbVa
void DataTypeArraySerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
auto& array_column = static_cast<const ColumnArray&>(column);
auto& offsets = array_column.get_offsets();
auto& nested_data = array_column.get_data();
@ -283,7 +283,7 @@ void DataTypeArraySerDe::write_column_to_arrow(const IColumn& column, const Null
}
checkArrowStatus(builder.Append(), column.get_name(), array_builder->type()->name());
nested_serde->write_column_to_arrow(nested_data, nullptr, nested_builder,
offsets[array_idx - 1], offsets[array_idx]);
offsets[array_idx - 1], offsets[array_idx], ctz);
}
}

View File

@ -83,8 +83,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;

View File

@ -62,8 +62,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override {
throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
"write_column_to_arrow with type " + column.get_name());
}

View File

@ -160,7 +160,7 @@ Status DataTypeDateTimeSerDe::deserialize_one_cell_from_json(IColumn& column, Sl
void DataTypeDate64SerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
auto& col_data = static_cast<const ColumnVector<Int64>&>(column).get_data();
auto& string_builder = assert_cast<arrow::StringBuilder&>(*array_builder);
for (size_t i = start; i < end; ++i) {

View File

@ -57,8 +57,8 @@ public:
const FormatOptions& options) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;
Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& row_buffer,

View File

@ -100,19 +100,27 @@ Status DataTypeDateTimeV2SerDe::deserialize_one_cell_from_json(IColumn& column,
void DataTypeDateTimeV2SerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
auto& col_data = static_cast<const ColumnVector<UInt64>&>(column).get_data();
auto& string_builder = assert_cast<arrow::StringBuilder&>(*array_builder);
int end, const cctz::time_zone& ctz) const {
const auto& col_data = static_cast<const ColumnVector<UInt64>&>(column).get_data();
auto& timestamp_builder = assert_cast<arrow::TimestampBuilder&>(*array_builder);
for (size_t i = start; i < end; ++i) {
char buf[64];
const DateV2Value<DateTimeV2ValueType>* time_val =
(const DateV2Value<DateTimeV2ValueType>*)(&col_data[i]);
int len = time_val->to_buffer(buf);
if (null_map && (*null_map)[i]) {
checkArrowStatus(string_builder.AppendNull(), column.get_name(),
checkArrowStatus(timestamp_builder.AppendNull(), column.get_name(),
array_builder->type()->name());
} else {
checkArrowStatus(string_builder.Append(buf, len), column.get_name(),
int64_t timestamp = 0;
DateV2Value<DateTimeV2ValueType> datetime_val =
binary_cast<UInt64, DateV2Value<DateTimeV2ValueType>>(col_data[i]);
datetime_val.unix_timestamp(&timestamp, ctz);
if (scale > 3) {
uint32_t microsecond = datetime_val.microsecond();
timestamp = (timestamp * 1000000) + microsecond;
} else if (scale > 0) {
uint32_t millisecond = datetime_val.microsecond() / 1000;
timestamp = (timestamp * 1000) + millisecond;
}
checkArrowStatus(timestamp_builder.Append(timestamp), column.get_name(),
array_builder->type()->name());
}
}

View File

@ -60,8 +60,8 @@ public:
const FormatOptions& options) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;

View File

@ -27,6 +27,9 @@
namespace doris {
namespace vectorized {
// This number represents the number of days from 0000-01-01 to 1970-01-01
static const int32_t date_threshold = 719528;
Status DataTypeDateV2SerDe::serialize_column_to_json(const IColumn& column, int start_idx,
int end_idx, BufferWritable& bw,
FormatOptions& options) const {
@ -79,19 +82,17 @@ Status DataTypeDateV2SerDe::deserialize_one_cell_from_json(IColumn& column, Slic
void DataTypeDateV2SerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
auto& col_data = static_cast<const ColumnVector<UInt32>&>(column).get_data();
auto& string_builder = assert_cast<arrow::StringBuilder&>(*array_builder);
int end, const cctz::time_zone& ctz) const {
const auto& col_data = static_cast<const ColumnVector<UInt32>&>(column).get_data();
auto& date32_builder = assert_cast<arrow::Date32Builder&>(*array_builder);
for (size_t i = start; i < end; ++i) {
char buf[64];
const DateV2Value<DateV2ValueType>* time_val =
(const DateV2Value<DateV2ValueType>*)(&col_data[i]);
int len = time_val->to_buffer(buf);
int32_t daynr = binary_cast<UInt32, DateV2Value<DateV2ValueType>>(col_data[i]).daynr() -
date_threshold;
if (null_map && (*null_map)[i]) {
checkArrowStatus(string_builder.AppendNull(), column.get_name(),
checkArrowStatus(date32_builder.AppendNull(), column.get_name(),
array_builder->type()->name());
} else {
checkArrowStatus(string_builder.Append(buf, len), column.get_name(),
checkArrowStatus(date32_builder.Append(daynr), column.get_name(),
array_builder->type()->name());
}
}
@ -157,43 +158,16 @@ Status DataTypeDateV2SerDe::write_column_to_orc(const std::string& timezone, con
orc::ColumnVectorBatch* orc_col_batch, int start,
int end,
std::vector<StringRef>& buffer_list) const {
auto& col_data = assert_cast<const ColumnVector<UInt32>&>(column).get_data();
orc::StringVectorBatch* cur_batch = dynamic_cast<orc::StringVectorBatch*>(orc_col_batch);
char* ptr = (char*)malloc(BUFFER_UNIT_SIZE);
if (!ptr) {
return Status::InternalError(
"malloc memory error when write largeint column data to orc file.");
}
StringRef bufferRef;
bufferRef.data = ptr;
bufferRef.size = BUFFER_UNIT_SIZE;
size_t offset = 0;
const size_t begin_off = offset;
const auto& col_data = assert_cast<const ColumnVector<UInt32>&>(column).get_data();
auto* cur_batch = dynamic_cast<orc::LongVectorBatch*>(orc_col_batch);
for (size_t row_id = start; row_id < end; row_id++) {
if (cur_batch->notNull[row_id] == 0) {
continue;
}
int len = binary_cast<UInt32, DateV2Value<DateV2ValueType>>(col_data[row_id])
.to_buffer(const_cast<char*>(bufferRef.data) + offset);
REALLOC_MEMORY_FOR_ORC_WRITER()
cur_batch->length[row_id] = len;
offset += len;
cur_batch->data[row_id] =
binary_cast<UInt32, DateV2Value<DateV2ValueType>>(col_data[row_id]).daynr() -
date_threshold;
}
size_t data_off = 0;
for (size_t row_id = start; row_id < end; row_id++) {
if (cur_batch->notNull[row_id] == 1) {
cur_batch->data[row_id] = const_cast<char*>(bufferRef.data) + begin_off + data_off;
data_off += cur_batch->length[row_id];
}
}
buffer_list.emplace_back(bufferRef);
cur_batch->numElements = end - start;
return Status::OK();
}

View File

@ -58,8 +58,8 @@ public:
const FormatOptions& options) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;
Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& row_buffer,

View File

@ -86,7 +86,7 @@ Status DataTypeDecimalSerDe<T>::deserialize_one_cell_from_json(IColumn& column,
template <typename T>
void DataTypeDecimalSerDe<T>::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
auto& col = reinterpret_cast<const ColumnDecimal<T>&>(column);
auto& builder = reinterpret_cast<arrow::Decimal128Builder&>(*array_builder);
if constexpr (std::is_same_v<T, Decimal<Int128>>) {

View File

@ -97,8 +97,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;
Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& row_buffer,

View File

@ -133,8 +133,8 @@ void DataTypeHLLSerDe::read_one_cell_from_jsonb(IColumn& column, const JsonbValu
}
void DataTypeHLLSerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const {
const auto& col = assert_cast<const ColumnHLL&>(column);
auto& builder = assert_cast<arrow::StringBuilder&>(*array_builder);
for (size_t string_i = start; string_i < end; ++string_i) {

View File

@ -53,8 +53,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override {
throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,

View File

@ -112,7 +112,7 @@ Status DataTypeJsonbSerDe::deserialize_one_cell_from_json(IColumn& column, Slice
void DataTypeJsonbSerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
const auto& string_column = assert_cast<const ColumnString&>(column);
auto& builder = assert_cast<arrow::StringBuilder&>(*array_builder);
for (size_t string_i = start; string_i < end; ++string_i) {

View File

@ -42,8 +42,8 @@ public:
Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<false>& row_buffer,
int row_idx, bool col_const) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
Status serialize_one_cell_to_json(const IColumn& column, int row_num, BufferWritable& bw,
FormatOptions& options) const override;

View File

@ -325,8 +325,8 @@ void DataTypeMapSerDe::write_one_cell_to_jsonb(const IColumn& column, JsonbWrite
}
void DataTypeMapSerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const {
auto& builder = assert_cast<arrow::MapBuilder&>(*array_builder);
auto& map_column = assert_cast<const ColumnMap&>(column);
const IColumn& nested_keys_column = map_column.get_keys();
@ -360,15 +360,15 @@ void DataTypeMapSerDe::write_column_to_arrow(const IColumn& column, const NullMa
checkArrowStatus(builder.Append(), column.get_name(), array_builder->type()->name());
key_serde->write_column_to_arrow(*key_mutable_data, nullptr, key_builder, 0,
key_mutable_data->size());
key_mutable_data->size(), ctz);
value_serde->write_column_to_arrow(*value_mutable_data, nullptr, value_builder, 0,
value_mutable_data->size());
value_mutable_data->size(), ctz);
} else {
checkArrowStatus(builder.Append(), column.get_name(), array_builder->type()->name());
key_serde->write_column_to_arrow(nested_keys_column, nullptr, key_builder,
offsets[r - 1], offsets[r]);
offsets[r - 1], offsets[r], ctz);
value_serde->write_column_to_arrow(nested_values_column, nullptr, value_builder,
offsets[r - 1], offsets[r]);
offsets[r - 1], offsets[r], ctz);
}
}
}

View File

@ -76,8 +76,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;

View File

@ -262,11 +262,11 @@ void DataTypeNullableSerDe::read_one_cell_from_jsonb(IColumn& column, const Json
**/
void DataTypeNullableSerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
const auto& column_nullable = assert_cast<const ColumnNullable&>(column);
nested_serde->write_column_to_arrow(column_nullable.get_nested_column(),
&column_nullable.get_null_map_data(), array_builder, start,
end);
end, ctz);
}
void DataTypeNullableSerDe::read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array,

View File

@ -70,8 +70,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;
Status write_column_to_mysql(const IColumn& column, MysqlRowBuffer<true>& row_buffer,

View File

@ -72,7 +72,7 @@ using DORIS_NUMERIC_ARROW_BUILDER =
template <typename T>
void DataTypeNumberSerDe<T>::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
auto& col_data = assert_cast<const ColumnType&>(column).get_data();
using ARROW_BUILDER_TYPE = typename TypeMapLookup<T, DORIS_NUMERIC_ARROW_BUILDER>::ValueType;
auto arrow_null_map = revert_null_map(null_map, start, end);

View File

@ -80,8 +80,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;

View File

@ -72,8 +72,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override {
throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
"write_column_to_arrow with type " + column.get_name());
}

View File

@ -100,8 +100,8 @@ public:
col.insert_value(val);
}
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override {
throw doris::Exception(ErrorCode::NOT_IMPLEMENTED_ERROR,
"write_column_to_arrow with type " + column.get_name());
}

View File

@ -261,8 +261,8 @@ public:
// Arrow serializer and deserializer
virtual void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const = 0;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const = 0;
virtual void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const = 0;

View File

@ -156,8 +156,8 @@ public:
}
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override {
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override {
const auto& string_column = assert_cast<const ColumnType&>(column);
auto& builder = assert_cast<arrow::StringBuilder&>(*array_builder);
for (size_t string_i = start; string_i < end; ++string_i) {

View File

@ -300,7 +300,7 @@ void DataTypeStructSerDe::read_one_cell_from_jsonb(IColumn& column, const JsonbV
void DataTypeStructSerDe::write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const {
int end, const cctz::time_zone& ctz) const {
auto& builder = assert_cast<arrow::StructBuilder&>(*array_builder);
auto& struct_column = assert_cast<const ColumnStruct&>(column);
for (int r = start; r < end; ++r) {
@ -313,7 +313,7 @@ void DataTypeStructSerDe::write_column_to_arrow(const IColumn& column, const Nul
for (size_t ei = 0; ei < struct_column.tuple_size(); ++ei) {
auto elem_builder = builder.field_builder(ei);
elemSerDeSPtrs[ei]->write_column_to_arrow(struct_column.get_column(ei), nullptr,
elem_builder, r, r + 1);
elem_builder, r, r + 1, ctz);
}
}
}

View File

@ -149,8 +149,8 @@ public:
void read_one_cell_from_jsonb(IColumn& column, const JsonbValue* arg) const override;
void write_column_to_arrow(const IColumn& column, const NullMap* null_map,
arrow::ArrayBuilder* array_builder, int start,
int end) const override;
arrow::ArrayBuilder* array_builder, int start, int end,
const cctz::time_zone& ctz) const override;
void read_column_from_arrow(IColumn& column, const arrow::Array* arrow_array, int start,
int end, const cctz::time_zone& ctz) const override;

View File

@ -40,6 +40,7 @@
#include "olap/olap_common.h"
#include "runtime/decimalv2_value.h"
#include "runtime/define_primitive_type.h"
#include "runtime/runtime_state.h"
#include "runtime/types.h"
#include "util/arrow/block_convertor.h"
#include "util/arrow/row_batch.h"
@ -222,7 +223,10 @@ Status VParquetTransformer::_parse_properties() {
builder.enable_dictionary();
}
_parquet_writer_properties = builder.build();
_arrow_properties = parquet::ArrowWriterProperties::Builder().store_schema()->build();
_arrow_properties = parquet::ArrowWriterProperties::Builder()
.enable_deprecated_int96_timestamps()
->store_schema()
->build();
} catch (const parquet::ParquetException& e) {
return Status::InternalError("parquet writer parse properties error: {}", e.what());
}
@ -250,8 +254,8 @@ Status VParquetTransformer::write(const Block& block) {
// serialize
std::shared_ptr<arrow::RecordBatch> result;
RETURN_IF_ERROR(
convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(), &result));
RETURN_IF_ERROR(convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(),
&result, _state->timezone_obj()));
auto get_table_res = arrow::Table::FromRecordBatches(result->schema(), {result});
if (!get_table_res.ok()) {

View File

@ -41,6 +41,7 @@ Status VArrowFlightResultWriter::init(RuntimeState* state) {
return Status::InternalError("sinker is NULL pointer.");
}
_is_dry_run = state->query_options().dry_run_query;
_timezone_obj = state->timezone_obj();
return Status::OK();
}
@ -73,7 +74,7 @@ Status VArrowFlightResultWriter::write(Block& input_block) {
{
SCOPED_TIMER(_convert_tuple_timer);
RETURN_IF_ERROR(convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(),
&result));
&result, _timezone_obj));
}
{
SCOPED_TIMER(_result_send_timer);

View File

@ -18,6 +18,7 @@
#pragma once
#include <arrow/type.h>
#include <cctz/time_zone.h>
#include <stddef.h>
#include <memory>
@ -73,6 +74,8 @@ private:
uint64_t _bytes_sent = 0;
std::shared_ptr<arrow::Schema> _arrow_schema;
cctz::time_zone _timezone_obj;
};
} // namespace vectorized
} // namespace doris

View File

@ -72,6 +72,7 @@ Status MemoryScratchSink::prepare(RuntimeState* state) {
_profile = state->obj_pool()->add(new RuntimeProfile(title.str()));
init_sink_common_profile();
_timezone_obj = state->timezone_obj();
return Status::OK();
}
@ -89,7 +90,7 @@ Status MemoryScratchSink::send(RuntimeState* state, Block* input_block, bool eos
// After expr executed, use recaculated schema as final schema
RETURN_IF_ERROR(convert_block_arrow_schema(block, &block_arrow_schema));
RETURN_IF_ERROR(convert_to_arrow_batch(block, block_arrow_schema, arrow::default_memory_pool(),
&result));
&result, _timezone_obj));
_queue->blocking_put(result);
return Status::OK();
}

View File

@ -17,6 +17,8 @@
#pragma once
#include <cctz/time_zone.h>
#include <memory>
#include <vector>
@ -64,7 +66,7 @@ public:
private:
Status _prepare_vexpr(RuntimeState* state);
cctz::time_zone _timezone_obj;
BlockQueueSharedPtr _queue;
// Owned by the RuntimeState.

View File

@ -496,8 +496,10 @@ void serialize_and_deserialize_arrow_test() {
std::cout << "block data: " << block.dump_data(0, row_num) << std::endl;
std::cout << "_arrow_schema: " << _arrow_schema->ToString(true) << std::endl;
static_cast<void>(
convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(), &result));
cctz::time_zone timezone_obj;
TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, timezone_obj);
static_cast<void>(convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(),
&result, timezone_obj));
Block new_block = block.clone_empty();
EXPECT_TRUE(result != nullptr);
std::cout << "result: " << result->ToString() << std::endl;
@ -628,8 +630,10 @@ TEST(DataTypeSerDeArrowTest, DataTypeMapNullKeySerDeTest) {
std::cout << "block structure: " << block.dump_structure() << std::endl;
std::cout << "_arrow_schema: " << _arrow_schema->ToString(true) << std::endl;
static_cast<void>(
convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(), &result));
cctz::time_zone timezone_obj;
TimezoneUtils::find_cctz_time_zone(TimezoneUtils::default_time_zone, timezone_obj);
static_cast<void>(convert_to_arrow_batch(block, _arrow_schema, arrow::default_memory_pool(),
&result, timezone_obj));
Block new_block = block.clone_empty();
EXPECT_TRUE(result != nullptr);
std::cout << "result: " << result->ToString() << std::endl;

View File

@ -297,15 +297,21 @@ public class OutFileClause {
}
orcType = "string";
break;
case DATEV2:
orcType = "date";
break;
case DATETIMEV2:
orcType = "timestamp";
break;
case CHAR:
orcType = "char(" + dorisType.getLength() + ")";
break;
case VARCHAR:
orcType = "varchar(" + dorisType.getLength() + ")";
break;
case LARGEINT:
case DATE:
case DATETIME:
case DATEV2:
case CHAR:
case VARCHAR:
orcType = "string";
break;
case DECIMALV2:
@ -402,74 +408,50 @@ public class OutFileClause {
case FLOAT:
case DOUBLE:
case STRING:
if (!schema.second.equals(resultType.getPrimitiveType().toString().toLowerCase())) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use " + resultType.getPrimitiveType().toString() + ","
+ " but the type of column " + i + " is " + schema.second);
}
checkOrcType(schema.second, resultType.getPrimitiveType().toString().toLowerCase(), true,
resultType.getPrimitiveType().toString());
break;
case DATEV2:
checkOrcType(schema.second, "date", true, resultType.getPrimitiveType().toString());
break;
case DATETIMEV2:
if (!schema.second.equals("timestamp")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use timestamp, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "timestamp", true, resultType.getPrimitiveType().toString());
break;
case CHAR:
checkOrcType(schema.second, "char", false, resultType.getPrimitiveType().toString());
break;
case VARCHAR:
checkOrcType(schema.second, "varchar", false, resultType.getPrimitiveType().toString());
break;
case LARGEINT:
case DATE:
case DATETIME:
case DATEV2:
case CHAR:
case VARCHAR:
if (!schema.second.equals("string")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use string, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "string", true, resultType.getPrimitiveType().toString());
break;
case DECIMAL32:
case DECIMAL64:
case DECIMAL128:
case DECIMALV2:
if (!schema.second.startsWith("decimal")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use string, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "decimal", false, resultType.getPrimitiveType().toString());
break;
case HLL:
case BITMAP:
if (ConnectContext.get() != null && ConnectContext.get()
.getSessionVariable().isReturnObjectDataAsBinary()) {
if (!schema.second.equals("string")) {
throw new AnalysisException("project field type is HLL/BITMAP, should use string, "
+ "but the definition type of column " + i + " is " + schema.second);
}
checkOrcType(schema.second, "string", true, resultType.getPrimitiveType().toString());
} else {
throw new AnalysisException("Orc format does not support column type: "
+ resultType.getPrimitiveType());
}
break;
case STRUCT:
if (!schema.second.startsWith("struct")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use struct, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "struct", false, resultType.getPrimitiveType().toString());
break;
case MAP:
if (!schema.second.startsWith("map")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use map, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "map", false, resultType.getPrimitiveType().toString());
break;
case ARRAY:
if (!schema.second.startsWith("array")) {
throw new AnalysisException("project field type is " + resultType.getPrimitiveType().toString()
+ ", should use array, but the definition type of column " + i + " is "
+ schema.second);
}
checkOrcType(schema.second, "array", false, resultType.getPrimitiveType().toString());
break;
default:
throw new AnalysisException("Orc format does not support column type: "
@ -478,6 +460,22 @@ public class OutFileClause {
}
}
private void checkOrcType(String orcType, String expectType, boolean isEqual, String dorisType)
throws AnalysisException {
if (isEqual) {
if (orcType.equals(expectType)) {
return;
}
} else {
if (orcType.startsWith(expectType)) {
return;
}
}
throw new AnalysisException("project field type is " + dorisType
+ ", should use " + expectType + ", but the definition type is " + orcType);
}
private void analyzeForParquetFormat(List<Expr> resultExprs, List<String> colLabels) throws AnalysisException {
if (this.parquetSchemas.isEmpty()) {
genParquetColumnName(resultExprs, colLabels);

View File

@ -102,156 +102,156 @@
99 2017-10-01 2017-10-01T00:00 Beijing 99 99 true 99 99 99 99.99 99.99 char99 99
-- !select_load1 --
1 2017-10-01 2017-10-01 00:00:00 Beijing 1 1 true 1 1 1.1 1.1 char1 1 1
10 2017-10-01 2017-10-01 00:00:00 Beijing 10 10 true 10 10 10.1 10.1 char10 10 10
100 2017-10-01 2017-10-01 00:00:00 \N \N \N \N \N \N \N \N \N \N \N
11 2017-10-01 2017-10-01 00:00:00 Beijing 11 11 true 11 11 11.11 11.11 char11 11 11
12 2017-10-01 2017-10-01 00:00:00 Beijing 12 12 true 12 12 12.12 12.12 char12 12 12
13 2017-10-01 2017-10-01 00:00:00 Beijing 13 13 true 13 13 13.13 13.13 char13 13 13
14 2017-10-01 2017-10-01 00:00:00 Beijing 14 14 true 14 14 14.14 14.14 char14 14 14
15 2017-10-01 2017-10-01 00:00:00 Beijing 15 15 true 15 15 15.15 15.15 char15 15 15
16 2017-10-01 2017-10-01 00:00:00 Beijing 16 16 true 16 16 16.16 16.16 char16 16 16
17 2017-10-01 2017-10-01 00:00:00 Beijing 17 17 true 17 17 17.17 17.17 char17 17 17
18 2017-10-01 2017-10-01 00:00:00 Beijing 18 18 true 18 18 18.18 18.18 char18 18 18
19 2017-10-01 2017-10-01 00:00:00 Beijing 19 19 true 19 19 19.19 19.19 char19 19 19
2 2017-10-01 2017-10-01 00:00:00 Beijing 2 2 true 2 2 2.2 2.2 char2 2 2
20 2017-10-01 2017-10-01 00:00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01 00:00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01 00:00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01 00:00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01 00:00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01 00:00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01 00:00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01 00:00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01 00:00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01 00:00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
3 2017-10-01 2017-10-01 00:00:00 Beijing 3 3 true 3 3 3.3 3.3 char3 3 3
30 2017-10-01 2017-10-01 00:00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01 00:00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01 00:00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01 00:00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01 00:00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01 00:00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01 00:00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01 00:00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01 00:00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01 00:00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
4 2017-10-01 2017-10-01 00:00:00 Beijing 4 4 true 4 4 4.4 4.4 char4 4 4
40 2017-10-01 2017-10-01 00:00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01 00:00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01 00:00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01 00:00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01 00:00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01 00:00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01 00:00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01 00:00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01 00:00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01 00:00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
5 2017-10-01 2017-10-01 00:00:00 Beijing 5 5 true 5 5 5.5 5.5 char5 5 5
50 2017-10-01 2017-10-01 00:00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01 00:00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01 00:00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01 00:00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01 00:00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01 00:00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01 00:00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01 00:00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01 00:00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01 00:00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
6 2017-10-01 2017-10-01 00:00:00 Beijing 6 6 true 6 6 6.6 6.6 char6 6 6
60 2017-10-01 2017-10-01 00:00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01 00:00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01 00:00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01 00:00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01 00:00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01 00:00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01 00:00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01 00:00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01 00:00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01 00:00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69
7 2017-10-01 2017-10-01 00:00:00 Beijing 7 7 true 7 7 7.7 7.7 char7 7 7
70 2017-10-01 2017-10-01 00:00:00 Beijing 70 70 true 70 70 70.7 70.7 char70 70 70
71 2017-10-01 2017-10-01 00:00:00 Beijing 71 71 true 71 71 71.71 71.71 char71 71 71
72 2017-10-01 2017-10-01 00:00:00 Beijing 72 72 true 72 72 72.72 72.72 char72 72 72
73 2017-10-01 2017-10-01 00:00:00 Beijing 73 73 true 73 73 73.73 73.73 char73 73 73
74 2017-10-01 2017-10-01 00:00:00 Beijing 74 74 true 74 74 74.74 74.74 char74 74 74
75 2017-10-01 2017-10-01 00:00:00 Beijing 75 75 true 75 75 75.75 75.75 char75 75 75
76 2017-10-01 2017-10-01 00:00:00 Beijing 76 76 true 76 76 76.76 76.76 char76 76 76
77 2017-10-01 2017-10-01 00:00:00 Beijing 77 77 true 77 77 77.77 77.77 char77 77 77
78 2017-10-01 2017-10-01 00:00:00 Beijing 78 78 true 78 78 78.78 78.78 char78 78 78
79 2017-10-01 2017-10-01 00:00:00 Beijing 79 79 true 79 79 79.79 79.79 char79 79 79
8 2017-10-01 2017-10-01 00:00:00 Beijing 8 8 true 8 8 8.8 8.8 char8 8 8
80 2017-10-01 2017-10-01 00:00:00 Beijing 80 80 true 80 80 80.8 80.8 char80 80 80
81 2017-10-01 2017-10-01 00:00:00 Beijing 81 81 true 81 81 81.81 81.81 char81 81 81
82 2017-10-01 2017-10-01 00:00:00 Beijing 82 82 true 82 82 82.82 82.82 char82 82 82
83 2017-10-01 2017-10-01 00:00:00 Beijing 83 83 true 83 83 83.83 83.83 char83 83 83
84 2017-10-01 2017-10-01 00:00:00 Beijing 84 84 true 84 84 84.84 84.84 char84 84 84
85 2017-10-01 2017-10-01 00:00:00 Beijing 85 85 true 85 85 85.85 85.85 char85 85 85
86 2017-10-01 2017-10-01 00:00:00 Beijing 86 86 true 86 86 86.86 86.86 char86 86 86
87 2017-10-01 2017-10-01 00:00:00 Beijing 87 87 true 87 87 87.87 87.87 char87 87 87
88 2017-10-01 2017-10-01 00:00:00 Beijing 88 88 true 88 88 88.88 88.88 char88 88 88
89 2017-10-01 2017-10-01 00:00:00 Beijing 89 89 true 89 89 89.89 89.89 char89 89 89
9 2017-10-01 2017-10-01 00:00:00 Beijing 9 9 true 9 9 9.9 9.9 char9 9 9
90 2017-10-01 2017-10-01 00:00:00 Beijing 90 90 true 90 90 90.9 90.9 char90 90 90
91 2017-10-01 2017-10-01 00:00:00 Beijing 91 91 true 91 91 91.91 91.91 char91 91 91
92 2017-10-01 2017-10-01 00:00:00 Beijing 92 92 true 92 92 92.92 92.92 char92 92 92
93 2017-10-01 2017-10-01 00:00:00 Beijing 93 93 true 93 93 93.93 93.93 char93 93 93
94 2017-10-01 2017-10-01 00:00:00 Beijing 94 94 true 94 94 94.94 94.94 char94 94 94
95 2017-10-01 2017-10-01 00:00:00 Beijing 95 95 true 95 95 95.95 95.95 char95 95 95
96 2017-10-01 2017-10-01 00:00:00 Beijing 96 96 true 96 96 96.96 96.96 char96 96 96
97 2017-10-01 2017-10-01 00:00:00 Beijing 97 97 true 97 97 97.97 97.97 char97 97 97
98 2017-10-01 2017-10-01 00:00:00 Beijing 98 98 true 98 98 98.98 98.98 char98 98 98
99 2017-10-01 2017-10-01 00:00:00 Beijing 99 99 true 99 99 99.99 99.99 char99 99 99
1 2017-10-01 2017-10-01T00:00 Beijing 1 1 true 1 1 1.1 1.1 char1 1 1
10 2017-10-01 2017-10-01T00:00 Beijing 10 10 true 10 10 10.1 10.1 char10 10 10
100 2017-10-01 2017-10-01T00:00 \N \N \N \N \N \N \N \N \N \N \N
11 2017-10-01 2017-10-01T00:00 Beijing 11 11 true 11 11 11.11 11.11 char11 11 11
12 2017-10-01 2017-10-01T00:00 Beijing 12 12 true 12 12 12.12 12.12 char12 12 12
13 2017-10-01 2017-10-01T00:00 Beijing 13 13 true 13 13 13.13 13.13 char13 13 13
14 2017-10-01 2017-10-01T00:00 Beijing 14 14 true 14 14 14.14 14.14 char14 14 14
15 2017-10-01 2017-10-01T00:00 Beijing 15 15 true 15 15 15.15 15.15 char15 15 15
16 2017-10-01 2017-10-01T00:00 Beijing 16 16 true 16 16 16.16 16.16 char16 16 16
17 2017-10-01 2017-10-01T00:00 Beijing 17 17 true 17 17 17.17 17.17 char17 17 17
18 2017-10-01 2017-10-01T00:00 Beijing 18 18 true 18 18 18.18 18.18 char18 18 18
19 2017-10-01 2017-10-01T00:00 Beijing 19 19 true 19 19 19.19 19.19 char19 19 19
2 2017-10-01 2017-10-01T00:00 Beijing 2 2 true 2 2 2.2 2.2 char2 2 2
20 2017-10-01 2017-10-01T00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01T00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01T00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01T00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01T00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01T00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01T00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01T00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01T00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01T00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
3 2017-10-01 2017-10-01T00:00 Beijing 3 3 true 3 3 3.3 3.3 char3 3 3
30 2017-10-01 2017-10-01T00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01T00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01T00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01T00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01T00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01T00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01T00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01T00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01T00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01T00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
4 2017-10-01 2017-10-01T00:00 Beijing 4 4 true 4 4 4.4 4.4 char4 4 4
40 2017-10-01 2017-10-01T00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01T00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01T00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01T00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01T00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01T00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01T00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01T00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01T00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01T00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
5 2017-10-01 2017-10-01T00:00 Beijing 5 5 true 5 5 5.5 5.5 char5 5 5
50 2017-10-01 2017-10-01T00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01T00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01T00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01T00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01T00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01T00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01T00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01T00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01T00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01T00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
6 2017-10-01 2017-10-01T00:00 Beijing 6 6 true 6 6 6.6 6.6 char6 6 6
60 2017-10-01 2017-10-01T00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01T00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01T00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01T00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01T00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01T00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01T00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01T00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01T00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01T00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69
7 2017-10-01 2017-10-01T00:00 Beijing 7 7 true 7 7 7.7 7.7 char7 7 7
70 2017-10-01 2017-10-01T00:00 Beijing 70 70 true 70 70 70.7 70.7 char70 70 70
71 2017-10-01 2017-10-01T00:00 Beijing 71 71 true 71 71 71.71 71.71 char71 71 71
72 2017-10-01 2017-10-01T00:00 Beijing 72 72 true 72 72 72.72 72.72 char72 72 72
73 2017-10-01 2017-10-01T00:00 Beijing 73 73 true 73 73 73.73 73.73 char73 73 73
74 2017-10-01 2017-10-01T00:00 Beijing 74 74 true 74 74 74.74 74.74 char74 74 74
75 2017-10-01 2017-10-01T00:00 Beijing 75 75 true 75 75 75.75 75.75 char75 75 75
76 2017-10-01 2017-10-01T00:00 Beijing 76 76 true 76 76 76.76 76.76 char76 76 76
77 2017-10-01 2017-10-01T00:00 Beijing 77 77 true 77 77 77.77 77.77 char77 77 77
78 2017-10-01 2017-10-01T00:00 Beijing 78 78 true 78 78 78.78 78.78 char78 78 78
79 2017-10-01 2017-10-01T00:00 Beijing 79 79 true 79 79 79.79 79.79 char79 79 79
8 2017-10-01 2017-10-01T00:00 Beijing 8 8 true 8 8 8.8 8.8 char8 8 8
80 2017-10-01 2017-10-01T00:00 Beijing 80 80 true 80 80 80.8 80.8 char80 80 80
81 2017-10-01 2017-10-01T00:00 Beijing 81 81 true 81 81 81.81 81.81 char81 81 81
82 2017-10-01 2017-10-01T00:00 Beijing 82 82 true 82 82 82.82 82.82 char82 82 82
83 2017-10-01 2017-10-01T00:00 Beijing 83 83 true 83 83 83.83 83.83 char83 83 83
84 2017-10-01 2017-10-01T00:00 Beijing 84 84 true 84 84 84.84 84.84 char84 84 84
85 2017-10-01 2017-10-01T00:00 Beijing 85 85 true 85 85 85.85 85.85 char85 85 85
86 2017-10-01 2017-10-01T00:00 Beijing 86 86 true 86 86 86.86 86.86 char86 86 86
87 2017-10-01 2017-10-01T00:00 Beijing 87 87 true 87 87 87.87 87.87 char87 87 87
88 2017-10-01 2017-10-01T00:00 Beijing 88 88 true 88 88 88.88 88.88 char88 88 88
89 2017-10-01 2017-10-01T00:00 Beijing 89 89 true 89 89 89.89 89.89 char89 89 89
9 2017-10-01 2017-10-01T00:00 Beijing 9 9 true 9 9 9.9 9.9 char9 9 9
90 2017-10-01 2017-10-01T00:00 Beijing 90 90 true 90 90 90.9 90.9 char90 90 90
91 2017-10-01 2017-10-01T00:00 Beijing 91 91 true 91 91 91.91 91.91 char91 91 91
92 2017-10-01 2017-10-01T00:00 Beijing 92 92 true 92 92 92.92 92.92 char92 92 92
93 2017-10-01 2017-10-01T00:00 Beijing 93 93 true 93 93 93.93 93.93 char93 93 93
94 2017-10-01 2017-10-01T00:00 Beijing 94 94 true 94 94 94.94 94.94 char94 94 94
95 2017-10-01 2017-10-01T00:00 Beijing 95 95 true 95 95 95.95 95.95 char95 95 95
96 2017-10-01 2017-10-01T00:00 Beijing 96 96 true 96 96 96.96 96.96 char96 96 96
97 2017-10-01 2017-10-01T00:00 Beijing 97 97 true 97 97 97.97 97.97 char97 97 97
98 2017-10-01 2017-10-01T00:00 Beijing 98 98 true 98 98 98.98 98.98 char98 98 98
99 2017-10-01 2017-10-01T00:00 Beijing 99 99 true 99 99 99.99 99.99 char99 99 99
-- !select_load1 --
20 2017-10-01 2017-10-01 00:00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01 00:00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01 00:00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01 00:00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01 00:00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01 00:00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01 00:00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01 00:00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01 00:00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01 00:00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
30 2017-10-01 2017-10-01 00:00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01 00:00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01 00:00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01 00:00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01 00:00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01 00:00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01 00:00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01 00:00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01 00:00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01 00:00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
40 2017-10-01 2017-10-01 00:00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01 00:00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01 00:00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01 00:00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01 00:00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01 00:00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01 00:00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01 00:00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01 00:00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01 00:00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
50 2017-10-01 2017-10-01 00:00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01 00:00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01 00:00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01 00:00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01 00:00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01 00:00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01 00:00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01 00:00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01 00:00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01 00:00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
60 2017-10-01 2017-10-01 00:00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01 00:00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01 00:00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01 00:00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01 00:00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01 00:00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01 00:00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01 00:00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01 00:00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01 00:00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69
20 2017-10-01 2017-10-01T00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01T00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01T00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01T00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01T00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01T00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01T00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01T00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01T00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01T00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
30 2017-10-01 2017-10-01T00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01T00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01T00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01T00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01T00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01T00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01T00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01T00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01T00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01T00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
40 2017-10-01 2017-10-01T00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01T00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01T00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01T00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01T00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01T00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01T00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01T00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01T00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01T00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
50 2017-10-01 2017-10-01T00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01T00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01T00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01T00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01T00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01T00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01T00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01T00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01T00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01T00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
60 2017-10-01 2017-10-01T00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01T00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01T00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01T00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01T00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01T00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01T00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01T00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01T00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01T00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69

View File

@ -199,7 +199,7 @@ __max_0 INT Yes false \N NONE
9 id not exist
-- !desc_s3 --
__case_expr_1 TEXT Yes false \N NONE
__case_expr_1 VARCHAR(65533) Yes false \N NONE
id INT Yes false \N NONE
-- !select_base1 --
@ -233,7 +233,7 @@ __binary_predicate_4 BOOLEAN Yes false \N NONE
__cast_expr_3 BIGINT Yes false \N NONE
__in_predicate_6 BOOLEAN Yes false \N NONE
__literal_1 TINYINT Yes false \N NONE
__literal_2 TEXT Yes false \N NONE
__literal_2 VARCHAR(65533) Yes false \N NONE
id INT Yes false \N NONE
-- !select_base1 --

View File

@ -60,12 +60,12 @@
7 doris7 [null, null, null, "2017-10-01 00:00:00", "2011-10-01 01:23:59"]
-- !select_load_datetime --
1 doris1 ["2017-10-01 00:00:00", "2011-10-01 01:23:59"]
2 doris2 ["2017-10-01 00:00:00", "2011-10-01 01:23:59"]
1 doris1 ["2017-10-01 00:00:00.000000", "2011-10-01 01:23:59.000000"]
2 doris2 ["2017-10-01 00:00:00.000000", "2011-10-01 01:23:59.000000"]
3 doris3 []
5 doris5 ["2017-10-01 00:00:00", null, "2017-10-01 00:00:00"]
5 doris5 ["2017-10-01 00:00:00.000000", null, "2017-10-01 00:00:00.000000"]
6 doris6 [null, null, null]
7 doris7 [null, null, null, "2017-10-01 00:00:00", "2011-10-01 01:23:59"]
7 doris7 [null, null, null, "2017-10-01 00:00:00.000000", "2011-10-01 01:23:59.000000"]
-- !select_base_varchar --
1 doris1 ["2017-10-01 00:00:00", "2011-10-01 01:23:59"]

View File

@ -116,14 +116,14 @@
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}
-- !select_load7 --
1 doris_1 {"user_id": 1, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 1, "sex": 1, "bool_col": 1, "int_col": 1, "bigint_col": 1, "largeint_col": "1", "float_col": 1.1, "double_col": 1.1, "char_col": "char1_1234", "decimal_col": 1}
2 doris_2 {"user_id": 2, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 2, "sex": 2, "bool_col": 1, "int_col": 2, "bigint_col": 2, "largeint_col": "2", "float_col": 2.2, "double_col": 2.2, "char_col": "char2_1234", "decimal_col": 2}
3 doris_3 {"user_id": 3, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 3, "sex": 3, "bool_col": 1, "int_col": 3, "bigint_col": 3, "largeint_col": "3", "float_col": 3.3, "double_col": 3.3, "char_col": "char3_1234", "decimal_col": 3}
4 doris_4 {"user_id": 4, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 4, "sex": 4, "bool_col": 1, "int_col": 4, "bigint_col": 4, "largeint_col": "4", "float_col": 4.4, "double_col": 4.4, "char_col": "char4_1234", "decimal_col": 4}
5 doris_5 {"user_id": 5, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 5, "sex": 5, "bool_col": 1, "int_col": 5, "bigint_col": 5, "largeint_col": "5", "float_col": 5.5, "double_col": 5.5, "char_col": "char5_1234", "decimal_col": 5}
6 doris_6 {"user_id": 6, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 6, "sex": 6, "bool_col": 1, "int_col": 6, "bigint_col": 6, "largeint_col": "6", "float_col": 6.6, "double_col": 6.6, "char_col": "char6_1234", "decimal_col": 6}
7 doris_7 {"user_id": 7, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 7, "sex": 7, "bool_col": 1, "int_col": 7, "bigint_col": 7, "largeint_col": "7", "float_col": 7.7, "double_col": 7.7, "char_col": "char7_1234", "decimal_col": 7}
8 doris_8 {"user_id": 8, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 8, "sex": 8, "bool_col": 1, "int_col": 8, "bigint_col": 8, "largeint_col": "8", "float_col": 8.8, "double_col": 8.8, "char_col": "char8_1234", "decimal_col": 8}
9 doris_9 {"user_id": 9, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 9, "sex": 9, "bool_col": 1, "int_col": 9, "bigint_col": 9, "largeint_col": "9", "float_col": 9.9, "double_col": 9.9, "char_col": "char9_1234", "decimal_col": 9}
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}
1 doris_1 {"user_id": 1, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 1, "sex": 1, "bool_col": 1, "int_col": 1, "bigint_col": 1, "largeint_col": "1", "float_col": 1.1, "double_col": 1.1, "char_col": "char1_1234", "decimal_col": 1}
2 doris_2 {"user_id": 2, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 2, "sex": 2, "bool_col": 1, "int_col": 2, "bigint_col": 2, "largeint_col": "2", "float_col": 2.2, "double_col": 2.2, "char_col": "char2_1234", "decimal_col": 2}
3 doris_3 {"user_id": 3, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 3, "sex": 3, "bool_col": 1, "int_col": 3, "bigint_col": 3, "largeint_col": "3", "float_col": 3.3, "double_col": 3.3, "char_col": "char3_1234", "decimal_col": 3}
4 doris_4 {"user_id": 4, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 4, "sex": 4, "bool_col": 1, "int_col": 4, "bigint_col": 4, "largeint_col": "4", "float_col": 4.4, "double_col": 4.4, "char_col": "char4_1234", "decimal_col": 4}
5 doris_5 {"user_id": 5, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 5, "sex": 5, "bool_col": 1, "int_col": 5, "bigint_col": 5, "largeint_col": "5", "float_col": 5.5, "double_col": 5.5, "char_col": "char5_1234", "decimal_col": 5}
6 doris_6 {"user_id": 6, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 6, "sex": 6, "bool_col": 1, "int_col": 6, "bigint_col": 6, "largeint_col": "6", "float_col": 6.6, "double_col": 6.6, "char_col": "char6_1234", "decimal_col": 6}
7 doris_7 {"user_id": 7, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 7, "sex": 7, "bool_col": 1, "int_col": 7, "bigint_col": 7, "largeint_col": "7", "float_col": 7.7, "double_col": 7.7, "char_col": "char7_1234", "decimal_col": 7}
8 doris_8 {"user_id": 8, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 8, "sex": 8, "bool_col": 1, "int_col": 8, "bigint_col": 8, "largeint_col": "8", "float_col": 8.8, "double_col": 8.8, "char_col": "char8_1234", "decimal_col": 8}
9 doris_9 {"user_id": 9, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 9, "sex": 9, "bool_col": 1, "int_col": 9, "bigint_col": 9, "largeint_col": "9", "float_col": 9.9, "double_col": 9.9, "char_col": "char9_1234", "decimal_col": 9}
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}

View File

@ -208,16 +208,16 @@
10 doris10 {"2003-04-29 01:02:03":"a", "2006-02-22 02:01:04":"max_largeint", "2020-03-21 19:21:23":"b"}
-- !select_load10 --
1 doris1 {"2023-04-20 01:02:03":"null", "2018-04-20 10:40:35":"b"}
2 doris2 {"2000-04-20 00:00:00":"a", "1967-12-31 12:24:56":"b"}
3 doris3 {"2023-01-01 00:00:00":"b", "2023-02-27 00:01:02":"d"}
1 doris1 {"2023-04-20 01:02:03.000000":"null", "2018-04-20 10:40:35.000000":"b"}
2 doris2 {"2000-04-20 00:00:00.000000":"a", "1967-12-31 12:24:56.000000":"b"}
3 doris3 {"2023-01-01 00:00:00.000000":"b", "2023-02-27 00:01:02.000000":"d"}
4 doris4 {}
5 doris5 {}
6 \N \N
7 doris7 \N
8 doris8 {"2025-12-31 12:01:41":"min_largeint", "2006-02-19 09:01:02":"max_largeint"}
9 doris9 {"0209-04-20 00:00:00":"min_largeint", "0102-03-21 00:00:00":"b"}
10 doris10 {"2003-04-29 01:02:03":"a", "2006-02-22 02:01:04":"max_largeint", "2020-03-21 19:21:23":"b"}
8 doris8 {"2025-12-31 12:01:41.000000":"min_largeint", "2006-02-19 09:01:02.000000":"max_largeint"}
9 doris9 {"0209-04-20 00:00:00.000000":"min_largeint", "0102-03-21 00:00:00.000000":"b"}
10 doris10 {"2003-04-29 01:02:03.000000":"a", "2006-02-22 02:01:04.000000":"max_largeint", "2020-03-21 19:21:23.000000":"b"}
-- !select_base11 --
1 doris1 {"2023-04-20 01:02:03":null, "2018-04-20 10:40:35":123}
@ -230,14 +230,14 @@
8 doris8 {"2025-12-31 12:01:41":524524, "2006-02-19 09:01:02":2534}
-- !select_load11 --
1 doris1 {"2023-04-20 01:02:03":null, "2018-04-20 10:40:35":123}
2 doris2 {"2000-04-20 00:00:00":-2147483648, "1967-12-31 12:24:56":2147483647}
3 doris3 {"2023-01-01 00:00:00":1246, "2023-02-27 00:01:02":5646}
1 doris1 {"2023-04-20 01:02:03.000000":null, "2018-04-20 10:40:35.000000":123}
2 doris2 {"2000-04-20 00:00:00.000000":-2147483648, "1967-12-31 12:24:56.000000":2147483647}
3 doris3 {"2023-01-01 00:00:00.000000":1246, "2023-02-27 00:01:02.000000":5646}
4 doris4 {}
5 doris5 {}
6 \N \N
7 doris7 \N
8 doris8 {"2025-12-31 12:01:41":524524, "2006-02-19 09:01:02":2534}
8 doris8 {"2025-12-31 12:01:41.000000":524524, "2006-02-19 09:01:02.000000":2534}
-- !select_base12 --
1 doris1 {"2023-04-20":null, "2018-04-20":123}
@ -290,14 +290,14 @@
8 doris8 {"2025-12-31 11:22:33":"min_largeint", "2006-02-19 00:44:55":"max_largeint"}
-- !select_load14 --
1 doris1 {"2023-04-20 12:20:03":"null", "2018-04-20 12:59:59":null}
2 doris2 {"2000-04-20 23:59:59":"-2147483648", "1967-12-31 00:00:00":"2147483647"}
3 doris3 {"2023-01-01 07:24:54":"1246", "2023-02-27 15:12:13":"5646"}
1 doris1 {"2023-04-20 12:20:03.000000":"null", "2018-04-20 12:59:59.000000":null}
2 doris2 {"2000-04-20 23:59:59.000000":"-2147483648", "1967-12-31 00:00:00.000000":"2147483647"}
3 doris3 {"2023-01-01 07:24:54.000000":"1246", "2023-02-27 15:12:13.000000":"5646"}
4 doris4 {}
5 doris5 {}
6 \N \N
7 doris7 \N
8 doris8 {"2025-12-31 11:22:33":"min_largeint", "2006-02-19 00:44:55":"max_largeint"}
8 doris8 {"2025-12-31 11:22:33.000000":"min_largeint", "2006-02-19 00:44:55.000000":"max_largeint"}
-- !select_base15 --
1 doris1 {100:"null", 111:"b"}

View File

@ -6,10 +6,10 @@
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !select_load1 --
1 2023-04-20 2023-04-20 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31T23:59:59 9999-12-31T23:59:59 2023-04-20T00:00:00.120 2023-04-20T00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20T12:34:56 2023-04-20T00:00 2023-04-20T00:00:00.123 2023-04-20T00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
1 2023-04-20 2023-04-20 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 1 1 1 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59 9999-12-31 23:59:59 2023-04-20 00:00:00.120000 2023-04-20 00:00:00.334400 Haidian -32768 -128 1 -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4013e-45 5e-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56 2023-04-20 00:00:00 2023-04-20 00:00:00.123000 2023-04-20 00:00:00.123456 Beijing 32767 127 1 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157e+308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 4 4 1 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !select_load2 --
1 2023-04-20 2023-04-20 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
@ -24,14 +24,14 @@
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !select_load4 --
1 2023-04-20 2023-04-20 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31T23:59:59 9999-12-31T23:59:59 2023-04-20T00:00:00.120 2023-04-20T00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20T12:34:56 2023-04-20T00:00 2023-04-20T00:00:00.123 2023-04-20T00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
1 2023-04-20 2023-04-20 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 1 1 1 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59 9999-12-31 23:59:59 2023-04-20 00:00:00.120000 2023-04-20 00:00:00.334400 Haidian -32768 -128 1 -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4013e-45 5e-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56 2023-04-20 00:00:00 2023-04-20 00:00:00.123000 2023-04-20 00:00:00.123456 Beijing 32767 127 1 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157e+308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 4 4 1 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !select_load5 --
1 2023-04-20 2023-04-20 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31T23:59:59 9999-12-31T23:59:59 2023-04-20T00:00:00.120 2023-04-20T00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20T12:34:56 2023-04-20T00:00 2023-04-20T00:00:00.123 2023-04-20T00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
1 2023-04-20 2023-04-20 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 1 1 1 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59 9999-12-31 23:59:59 2023-04-20 00:00:00.120000 2023-04-20 00:00:00.334400 Haidian -32768 -128 1 -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4013e-45 5e-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56 2023-04-20 00:00:00 2023-04-20 00:00:00.123000 2023-04-20 00:00:00.123456 Beijing 32767 127 1 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157e+308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 4 4 1 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000

View File

@ -102,104 +102,104 @@
100 2017-10-01 2017-10-01T00:00 \N \N \N \N \N \N \N \N \N \N \N
-- !select_load1 --
1 Beijing 1 1 true 1 1 1.1 1.1 char1 1
2 Beijing 2 2 true 2 2 2.2 2.2 char2 2
3 Beijing 3 3 true 3 3 3.3 3.3 char3 3
4 Beijing 4 4 true 4 4 4.4 4.4 char4 4
5 Beijing 5 5 true 5 5 5.5 5.5 char5 5
6 Beijing 6 6 true 6 6 6.6 6.6 char6 6
7 Beijing 7 7 true 7 7 7.7 7.7 char7 7
8 Beijing 8 8 true 8 8 8.8 8.8 char8 8
9 Beijing 9 9 true 9 9 9.9 9.9 char9 9
10 Beijing 10 10 true 10 10 10.1 10.1 char10 10
11 Beijing 11 11 true 11 11 11.11 11.11 char11 11
12 Beijing 12 12 true 12 12 12.12 12.12 char12 12
13 Beijing 13 13 true 13 13 13.13 13.13 char13 13
14 Beijing 14 14 true 14 14 14.14 14.14 char14 14
15 Beijing 15 15 true 15 15 15.15 15.15 char15 15
16 Beijing 16 16 true 16 16 16.16 16.16 char16 16
17 Beijing 17 17 true 17 17 17.17 17.17 char17 17
18 Beijing 18 18 true 18 18 18.18 18.18 char18 18
19 Beijing 19 19 true 19 19 19.19 19.19 char19 19
20 Beijing 20 20 true 20 20 20.2 20.2 char20 20
21 Beijing 21 21 true 21 21 21.21 21.21 char21 21
22 Beijing 22 22 true 22 22 22.22 22.22 char22 22
23 Beijing 23 23 true 23 23 23.23 23.23 char23 23
24 Beijing 24 24 true 24 24 24.24 24.24 char24 24
25 Beijing 25 25 true 25 25 25.25 25.25 char25 25
26 Beijing 26 26 true 26 26 26.26 26.26 char26 26
27 Beijing 27 27 true 27 27 27.27 27.27 char27 27
28 Beijing 28 28 true 28 28 28.28 28.28 char28 28
29 Beijing 29 29 true 29 29 29.29 29.29 char29 29
30 Beijing 30 30 true 30 30 30.3 30.3 char30 30
31 Beijing 31 31 true 31 31 31.31 31.31 char31 31
32 Beijing 32 32 true 32 32 32.32 32.32 char32 32
33 Beijing 33 33 true 33 33 33.33 33.33 char33 33
34 Beijing 34 34 true 34 34 34.34 34.34 char34 34
35 Beijing 35 35 true 35 35 35.35 35.35 char35 35
36 Beijing 36 36 true 36 36 36.36 36.36 char36 36
37 Beijing 37 37 true 37 37 37.37 37.37 char37 37
38 Beijing 38 38 true 38 38 38.38 38.38 char38 38
39 Beijing 39 39 true 39 39 39.39 39.39 char39 39
40 Beijing 40 40 true 40 40 40.4 40.4 char40 40
41 Beijing 41 41 true 41 41 41.41 41.41 char41 41
42 Beijing 42 42 true 42 42 42.42 42.42 char42 42
43 Beijing 43 43 true 43 43 43.43 43.43 char43 43
44 Beijing 44 44 true 44 44 44.44 44.44 char44 44
45 Beijing 45 45 true 45 45 45.45 45.45 char45 45
46 Beijing 46 46 true 46 46 46.46 46.46 char46 46
47 Beijing 47 47 true 47 47 47.47 47.47 char47 47
48 Beijing 48 48 true 48 48 48.48 48.48 char48 48
49 Beijing 49 49 true 49 49 49.49 49.49 char49 49
50 Beijing 50 50 true 50 50 50.5 50.5 char50 50
51 Beijing 51 51 true 51 51 51.51 51.51 char51 51
52 Beijing 52 52 true 52 52 52.52 52.52 char52 52
53 Beijing 53 53 true 53 53 53.53 53.53 char53 53
54 Beijing 54 54 true 54 54 54.54 54.54 char54 54
55 Beijing 55 55 true 55 55 55.55 55.55 char55 55
56 Beijing 56 56 true 56 56 56.56 56.56 char56 56
57 Beijing 57 57 true 57 57 57.57 57.57 char57 57
58 Beijing 58 58 true 58 58 58.58 58.58 char58 58
59 Beijing 59 59 true 59 59 59.59 59.59 char59 59
60 Beijing 60 60 true 60 60 60.6 60.6 char60 60
61 Beijing 61 61 true 61 61 61.61 61.61 char61 61
62 Beijing 62 62 true 62 62 62.62 62.62 char62 62
63 Beijing 63 63 true 63 63 63.63 63.63 char63 63
64 Beijing 64 64 true 64 64 64.64 64.64 char64 64
65 Beijing 65 65 true 65 65 65.65 65.65 char65 65
66 Beijing 66 66 true 66 66 66.66 66.66 char66 66
67 Beijing 67 67 true 67 67 67.67 67.67 char67 67
68 Beijing 68 68 true 68 68 68.68 68.68 char68 68
69 Beijing 69 69 true 69 69 69.69 69.69 char69 69
70 Beijing 70 70 true 70 70 70.7 70.7 char70 70
71 Beijing 71 71 true 71 71 71.71 71.71 char71 71
72 Beijing 72 72 true 72 72 72.72 72.72 char72 72
73 Beijing 73 73 true 73 73 73.73 73.73 char73 73
74 Beijing 74 74 true 74 74 74.74 74.74 char74 74
75 Beijing 75 75 true 75 75 75.75 75.75 char75 75
76 Beijing 76 76 true 76 76 76.76 76.76 char76 76
77 Beijing 77 77 true 77 77 77.77 77.77 char77 77
78 Beijing 78 78 true 78 78 78.78 78.78 char78 78
79 Beijing 79 79 true 79 79 79.79 79.79 char79 79
80 Beijing 80 80 true 80 80 80.8 80.8 char80 80
81 Beijing 81 81 true 81 81 81.81 81.81 char81 81
82 Beijing 82 82 true 82 82 82.82 82.82 char82 82
83 Beijing 83 83 true 83 83 83.83 83.83 char83 83
84 Beijing 84 84 true 84 84 84.84 84.84 char84 84
85 Beijing 85 85 true 85 85 85.85 85.85 char85 85
86 Beijing 86 86 true 86 86 86.86 86.86 char86 86
87 Beijing 87 87 true 87 87 87.87 87.87 char87 87
88 Beijing 88 88 true 88 88 88.88 88.88 char88 88
89 Beijing 89 89 true 89 89 89.89 89.89 char89 89
90 Beijing 90 90 true 90 90 90.9 90.9 char90 90
91 Beijing 91 91 true 91 91 91.91 91.91 char91 91
92 Beijing 92 92 true 92 92 92.92 92.92 char92 92
93 Beijing 93 93 true 93 93 93.93 93.93 char93 93
94 Beijing 94 94 true 94 94 94.94 94.94 char94 94
95 Beijing 95 95 true 95 95 95.95 95.95 char95 95
96 Beijing 96 96 true 96 96 96.96 96.96 char96 96
97 Beijing 97 97 true 97 97 97.97 97.97 char97 97
98 Beijing 98 98 true 98 98 98.98 98.98 char98 98
99 Beijing 99 99 true 99 99 99.99 99.99 char99 99
100 \N \N \N \N \N \N \N \N \N \N
1 2017-10-01 2017-10-01T00:00 Beijing 1 1 true 1 1 1 1.1 1.1 char1 1
2 2017-10-01 2017-10-01T00:00 Beijing 2 2 true 2 2 2 2.2 2.2 char2 2
3 2017-10-01 2017-10-01T00:00 Beijing 3 3 true 3 3 3 3.3 3.3 char3 3
4 2017-10-01 2017-10-01T00:00 Beijing 4 4 true 4 4 4 4.4 4.4 char4 4
5 2017-10-01 2017-10-01T00:00 Beijing 5 5 true 5 5 5 5.5 5.5 char5 5
6 2017-10-01 2017-10-01T00:00 Beijing 6 6 true 6 6 6 6.6 6.6 char6 6
7 2017-10-01 2017-10-01T00:00 Beijing 7 7 true 7 7 7 7.7 7.7 char7 7
8 2017-10-01 2017-10-01T00:00 Beijing 8 8 true 8 8 8 8.8 8.8 char8 8
9 2017-10-01 2017-10-01T00:00 Beijing 9 9 true 9 9 9 9.9 9.9 char9 9
10 2017-10-01 2017-10-01T00:00 Beijing 10 10 true 10 10 10 10.1 10.1 char10 10
11 2017-10-01 2017-10-01T00:00 Beijing 11 11 true 11 11 11 11.11 11.11 char11 11
12 2017-10-01 2017-10-01T00:00 Beijing 12 12 true 12 12 12 12.12 12.12 char12 12
13 2017-10-01 2017-10-01T00:00 Beijing 13 13 true 13 13 13 13.13 13.13 char13 13
14 2017-10-01 2017-10-01T00:00 Beijing 14 14 true 14 14 14 14.14 14.14 char14 14
15 2017-10-01 2017-10-01T00:00 Beijing 15 15 true 15 15 15 15.15 15.15 char15 15
16 2017-10-01 2017-10-01T00:00 Beijing 16 16 true 16 16 16 16.16 16.16 char16 16
17 2017-10-01 2017-10-01T00:00 Beijing 17 17 true 17 17 17 17.17 17.17 char17 17
18 2017-10-01 2017-10-01T00:00 Beijing 18 18 true 18 18 18 18.18 18.18 char18 18
19 2017-10-01 2017-10-01T00:00 Beijing 19 19 true 19 19 19 19.19 19.19 char19 19
20 2017-10-01 2017-10-01T00:00 Beijing 20 20 true 20 20 20 20.2 20.2 char20 20
21 2017-10-01 2017-10-01T00:00 Beijing 21 21 true 21 21 21 21.21 21.21 char21 21
22 2017-10-01 2017-10-01T00:00 Beijing 22 22 true 22 22 22 22.22 22.22 char22 22
23 2017-10-01 2017-10-01T00:00 Beijing 23 23 true 23 23 23 23.23 23.23 char23 23
24 2017-10-01 2017-10-01T00:00 Beijing 24 24 true 24 24 24 24.24 24.24 char24 24
25 2017-10-01 2017-10-01T00:00 Beijing 25 25 true 25 25 25 25.25 25.25 char25 25
26 2017-10-01 2017-10-01T00:00 Beijing 26 26 true 26 26 26 26.26 26.26 char26 26
27 2017-10-01 2017-10-01T00:00 Beijing 27 27 true 27 27 27 27.27 27.27 char27 27
28 2017-10-01 2017-10-01T00:00 Beijing 28 28 true 28 28 28 28.28 28.28 char28 28
29 2017-10-01 2017-10-01T00:00 Beijing 29 29 true 29 29 29 29.29 29.29 char29 29
30 2017-10-01 2017-10-01T00:00 Beijing 30 30 true 30 30 30 30.3 30.3 char30 30
31 2017-10-01 2017-10-01T00:00 Beijing 31 31 true 31 31 31 31.31 31.31 char31 31
32 2017-10-01 2017-10-01T00:00 Beijing 32 32 true 32 32 32 32.32 32.32 char32 32
33 2017-10-01 2017-10-01T00:00 Beijing 33 33 true 33 33 33 33.33 33.33 char33 33
34 2017-10-01 2017-10-01T00:00 Beijing 34 34 true 34 34 34 34.34 34.34 char34 34
35 2017-10-01 2017-10-01T00:00 Beijing 35 35 true 35 35 35 35.35 35.35 char35 35
36 2017-10-01 2017-10-01T00:00 Beijing 36 36 true 36 36 36 36.36 36.36 char36 36
37 2017-10-01 2017-10-01T00:00 Beijing 37 37 true 37 37 37 37.37 37.37 char37 37
38 2017-10-01 2017-10-01T00:00 Beijing 38 38 true 38 38 38 38.38 38.38 char38 38
39 2017-10-01 2017-10-01T00:00 Beijing 39 39 true 39 39 39 39.39 39.39 char39 39
40 2017-10-01 2017-10-01T00:00 Beijing 40 40 true 40 40 40 40.4 40.4 char40 40
41 2017-10-01 2017-10-01T00:00 Beijing 41 41 true 41 41 41 41.41 41.41 char41 41
42 2017-10-01 2017-10-01T00:00 Beijing 42 42 true 42 42 42 42.42 42.42 char42 42
43 2017-10-01 2017-10-01T00:00 Beijing 43 43 true 43 43 43 43.43 43.43 char43 43
44 2017-10-01 2017-10-01T00:00 Beijing 44 44 true 44 44 44 44.44 44.44 char44 44
45 2017-10-01 2017-10-01T00:00 Beijing 45 45 true 45 45 45 45.45 45.45 char45 45
46 2017-10-01 2017-10-01T00:00 Beijing 46 46 true 46 46 46 46.46 46.46 char46 46
47 2017-10-01 2017-10-01T00:00 Beijing 47 47 true 47 47 47 47.47 47.47 char47 47
48 2017-10-01 2017-10-01T00:00 Beijing 48 48 true 48 48 48 48.48 48.48 char48 48
49 2017-10-01 2017-10-01T00:00 Beijing 49 49 true 49 49 49 49.49 49.49 char49 49
50 2017-10-01 2017-10-01T00:00 Beijing 50 50 true 50 50 50 50.5 50.5 char50 50
51 2017-10-01 2017-10-01T00:00 Beijing 51 51 true 51 51 51 51.51 51.51 char51 51
52 2017-10-01 2017-10-01T00:00 Beijing 52 52 true 52 52 52 52.52 52.52 char52 52
53 2017-10-01 2017-10-01T00:00 Beijing 53 53 true 53 53 53 53.53 53.53 char53 53
54 2017-10-01 2017-10-01T00:00 Beijing 54 54 true 54 54 54 54.54 54.54 char54 54
55 2017-10-01 2017-10-01T00:00 Beijing 55 55 true 55 55 55 55.55 55.55 char55 55
56 2017-10-01 2017-10-01T00:00 Beijing 56 56 true 56 56 56 56.56 56.56 char56 56
57 2017-10-01 2017-10-01T00:00 Beijing 57 57 true 57 57 57 57.57 57.57 char57 57
58 2017-10-01 2017-10-01T00:00 Beijing 58 58 true 58 58 58 58.58 58.58 char58 58
59 2017-10-01 2017-10-01T00:00 Beijing 59 59 true 59 59 59 59.59 59.59 char59 59
60 2017-10-01 2017-10-01T00:00 Beijing 60 60 true 60 60 60 60.6 60.6 char60 60
61 2017-10-01 2017-10-01T00:00 Beijing 61 61 true 61 61 61 61.61 61.61 char61 61
62 2017-10-01 2017-10-01T00:00 Beijing 62 62 true 62 62 62 62.62 62.62 char62 62
63 2017-10-01 2017-10-01T00:00 Beijing 63 63 true 63 63 63 63.63 63.63 char63 63
64 2017-10-01 2017-10-01T00:00 Beijing 64 64 true 64 64 64 64.64 64.64 char64 64
65 2017-10-01 2017-10-01T00:00 Beijing 65 65 true 65 65 65 65.65 65.65 char65 65
66 2017-10-01 2017-10-01T00:00 Beijing 66 66 true 66 66 66 66.66 66.66 char66 66
67 2017-10-01 2017-10-01T00:00 Beijing 67 67 true 67 67 67 67.67 67.67 char67 67
68 2017-10-01 2017-10-01T00:00 Beijing 68 68 true 68 68 68 68.68 68.68 char68 68
69 2017-10-01 2017-10-01T00:00 Beijing 69 69 true 69 69 69 69.69 69.69 char69 69
70 2017-10-01 2017-10-01T00:00 Beijing 70 70 true 70 70 70 70.7 70.7 char70 70
71 2017-10-01 2017-10-01T00:00 Beijing 71 71 true 71 71 71 71.71 71.71 char71 71
72 2017-10-01 2017-10-01T00:00 Beijing 72 72 true 72 72 72 72.72 72.72 char72 72
73 2017-10-01 2017-10-01T00:00 Beijing 73 73 true 73 73 73 73.73 73.73 char73 73
74 2017-10-01 2017-10-01T00:00 Beijing 74 74 true 74 74 74 74.74 74.74 char74 74
75 2017-10-01 2017-10-01T00:00 Beijing 75 75 true 75 75 75 75.75 75.75 char75 75
76 2017-10-01 2017-10-01T00:00 Beijing 76 76 true 76 76 76 76.76 76.76 char76 76
77 2017-10-01 2017-10-01T00:00 Beijing 77 77 true 77 77 77 77.77 77.77 char77 77
78 2017-10-01 2017-10-01T00:00 Beijing 78 78 true 78 78 78 78.78 78.78 char78 78
79 2017-10-01 2017-10-01T00:00 Beijing 79 79 true 79 79 79 79.79 79.79 char79 79
80 2017-10-01 2017-10-01T00:00 Beijing 80 80 true 80 80 80 80.8 80.8 char80 80
81 2017-10-01 2017-10-01T00:00 Beijing 81 81 true 81 81 81 81.81 81.81 char81 81
82 2017-10-01 2017-10-01T00:00 Beijing 82 82 true 82 82 82 82.82 82.82 char82 82
83 2017-10-01 2017-10-01T00:00 Beijing 83 83 true 83 83 83 83.83 83.83 char83 83
84 2017-10-01 2017-10-01T00:00 Beijing 84 84 true 84 84 84 84.84 84.84 char84 84
85 2017-10-01 2017-10-01T00:00 Beijing 85 85 true 85 85 85 85.85 85.85 char85 85
86 2017-10-01 2017-10-01T00:00 Beijing 86 86 true 86 86 86 86.86 86.86 char86 86
87 2017-10-01 2017-10-01T00:00 Beijing 87 87 true 87 87 87 87.87 87.87 char87 87
88 2017-10-01 2017-10-01T00:00 Beijing 88 88 true 88 88 88 88.88 88.88 char88 88
89 2017-10-01 2017-10-01T00:00 Beijing 89 89 true 89 89 89 89.89 89.89 char89 89
90 2017-10-01 2017-10-01T00:00 Beijing 90 90 true 90 90 90 90.9 90.9 char90 90
91 2017-10-01 2017-10-01T00:00 Beijing 91 91 true 91 91 91 91.91 91.91 char91 91
92 2017-10-01 2017-10-01T00:00 Beijing 92 92 true 92 92 92 92.92 92.92 char92 92
93 2017-10-01 2017-10-01T00:00 Beijing 93 93 true 93 93 93 93.93 93.93 char93 93
94 2017-10-01 2017-10-01T00:00 Beijing 94 94 true 94 94 94 94.94 94.94 char94 94
95 2017-10-01 2017-10-01T00:00 Beijing 95 95 true 95 95 95 95.95 95.95 char95 95
96 2017-10-01 2017-10-01T00:00 Beijing 96 96 true 96 96 96 96.96 96.96 char96 96
97 2017-10-01 2017-10-01T00:00 Beijing 97 97 true 97 97 97 97.97 97.97 char97 97
98 2017-10-01 2017-10-01T00:00 Beijing 98 98 true 98 98 98 98.98 98.98 char98 98
99 2017-10-01 2017-10-01T00:00 Beijing 99 99 true 99 99 99 99.99 99.99 char99 99
100 2017-10-01 2017-10-01T00:00 \N \N \N \N \N \N \N \N \N \N \N

View File

@ -102,104 +102,104 @@
99 2017-10-01 2017-10-01T00:00 Beijing 99 99 true 99 99 99 99.99 99.99 char99 99
-- !select_load1 --
1 2017-10-01 2017-10-01 00:00:00 Beijing 1 1 true 1 1 1.1 1.1 char1 1 1
10 2017-10-01 2017-10-01 00:00:00 Beijing 10 10 true 10 10 10.1 10.1 char10 10 10
100 2017-10-01 2017-10-01 00:00:00 \N \N \N \N \N \N \N \N \N \N \N
11 2017-10-01 2017-10-01 00:00:00 Beijing 11 11 true 11 11 11.11 11.11 char11 11 11
12 2017-10-01 2017-10-01 00:00:00 Beijing 12 12 true 12 12 12.12 12.12 char12 12 12
13 2017-10-01 2017-10-01 00:00:00 Beijing 13 13 true 13 13 13.13 13.13 char13 13 13
14 2017-10-01 2017-10-01 00:00:00 Beijing 14 14 true 14 14 14.14 14.14 char14 14 14
15 2017-10-01 2017-10-01 00:00:00 Beijing 15 15 true 15 15 15.15 15.15 char15 15 15
16 2017-10-01 2017-10-01 00:00:00 Beijing 16 16 true 16 16 16.16 16.16 char16 16 16
17 2017-10-01 2017-10-01 00:00:00 Beijing 17 17 true 17 17 17.17 17.17 char17 17 17
18 2017-10-01 2017-10-01 00:00:00 Beijing 18 18 true 18 18 18.18 18.18 char18 18 18
19 2017-10-01 2017-10-01 00:00:00 Beijing 19 19 true 19 19 19.19 19.19 char19 19 19
2 2017-10-01 2017-10-01 00:00:00 Beijing 2 2 true 2 2 2.2 2.2 char2 2 2
20 2017-10-01 2017-10-01 00:00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01 00:00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01 00:00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01 00:00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01 00:00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01 00:00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01 00:00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01 00:00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01 00:00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01 00:00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
3 2017-10-01 2017-10-01 00:00:00 Beijing 3 3 true 3 3 3.3 3.3 char3 3 3
30 2017-10-01 2017-10-01 00:00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01 00:00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01 00:00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01 00:00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01 00:00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01 00:00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01 00:00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01 00:00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01 00:00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01 00:00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
4 2017-10-01 2017-10-01 00:00:00 Beijing 4 4 true 4 4 4.4 4.4 char4 4 4
40 2017-10-01 2017-10-01 00:00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01 00:00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01 00:00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01 00:00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01 00:00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01 00:00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01 00:00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01 00:00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01 00:00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01 00:00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
5 2017-10-01 2017-10-01 00:00:00 Beijing 5 5 true 5 5 5.5 5.5 char5 5 5
50 2017-10-01 2017-10-01 00:00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01 00:00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01 00:00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01 00:00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01 00:00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01 00:00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01 00:00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01 00:00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01 00:00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01 00:00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
6 2017-10-01 2017-10-01 00:00:00 Beijing 6 6 true 6 6 6.6 6.6 char6 6 6
60 2017-10-01 2017-10-01 00:00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01 00:00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01 00:00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01 00:00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01 00:00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01 00:00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01 00:00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01 00:00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01 00:00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01 00:00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69
7 2017-10-01 2017-10-01 00:00:00 Beijing 7 7 true 7 7 7.7 7.7 char7 7 7
70 2017-10-01 2017-10-01 00:00:00 Beijing 70 70 true 70 70 70.7 70.7 char70 70 70
71 2017-10-01 2017-10-01 00:00:00 Beijing 71 71 true 71 71 71.71 71.71 char71 71 71
72 2017-10-01 2017-10-01 00:00:00 Beijing 72 72 true 72 72 72.72 72.72 char72 72 72
73 2017-10-01 2017-10-01 00:00:00 Beijing 73 73 true 73 73 73.73 73.73 char73 73 73
74 2017-10-01 2017-10-01 00:00:00 Beijing 74 74 true 74 74 74.74 74.74 char74 74 74
75 2017-10-01 2017-10-01 00:00:00 Beijing 75 75 true 75 75 75.75 75.75 char75 75 75
76 2017-10-01 2017-10-01 00:00:00 Beijing 76 76 true 76 76 76.76 76.76 char76 76 76
77 2017-10-01 2017-10-01 00:00:00 Beijing 77 77 true 77 77 77.77 77.77 char77 77 77
78 2017-10-01 2017-10-01 00:00:00 Beijing 78 78 true 78 78 78.78 78.78 char78 78 78
79 2017-10-01 2017-10-01 00:00:00 Beijing 79 79 true 79 79 79.79 79.79 char79 79 79
8 2017-10-01 2017-10-01 00:00:00 Beijing 8 8 true 8 8 8.8 8.8 char8 8 8
80 2017-10-01 2017-10-01 00:00:00 Beijing 80 80 true 80 80 80.8 80.8 char80 80 80
81 2017-10-01 2017-10-01 00:00:00 Beijing 81 81 true 81 81 81.81 81.81 char81 81 81
82 2017-10-01 2017-10-01 00:00:00 Beijing 82 82 true 82 82 82.82 82.82 char82 82 82
83 2017-10-01 2017-10-01 00:00:00 Beijing 83 83 true 83 83 83.83 83.83 char83 83 83
84 2017-10-01 2017-10-01 00:00:00 Beijing 84 84 true 84 84 84.84 84.84 char84 84 84
85 2017-10-01 2017-10-01 00:00:00 Beijing 85 85 true 85 85 85.85 85.85 char85 85 85
86 2017-10-01 2017-10-01 00:00:00 Beijing 86 86 true 86 86 86.86 86.86 char86 86 86
87 2017-10-01 2017-10-01 00:00:00 Beijing 87 87 true 87 87 87.87 87.87 char87 87 87
88 2017-10-01 2017-10-01 00:00:00 Beijing 88 88 true 88 88 88.88 88.88 char88 88 88
89 2017-10-01 2017-10-01 00:00:00 Beijing 89 89 true 89 89 89.89 89.89 char89 89 89
9 2017-10-01 2017-10-01 00:00:00 Beijing 9 9 true 9 9 9.9 9.9 char9 9 9
90 2017-10-01 2017-10-01 00:00:00 Beijing 90 90 true 90 90 90.9 90.9 char90 90 90
91 2017-10-01 2017-10-01 00:00:00 Beijing 91 91 true 91 91 91.91 91.91 char91 91 91
92 2017-10-01 2017-10-01 00:00:00 Beijing 92 92 true 92 92 92.92 92.92 char92 92 92
93 2017-10-01 2017-10-01 00:00:00 Beijing 93 93 true 93 93 93.93 93.93 char93 93 93
94 2017-10-01 2017-10-01 00:00:00 Beijing 94 94 true 94 94 94.94 94.94 char94 94 94
95 2017-10-01 2017-10-01 00:00:00 Beijing 95 95 true 95 95 95.95 95.95 char95 95 95
96 2017-10-01 2017-10-01 00:00:00 Beijing 96 96 true 96 96 96.96 96.96 char96 96 96
97 2017-10-01 2017-10-01 00:00:00 Beijing 97 97 true 97 97 97.97 97.97 char97 97 97
98 2017-10-01 2017-10-01 00:00:00 Beijing 98 98 true 98 98 98.98 98.98 char98 98 98
99 2017-10-01 2017-10-01 00:00:00 Beijing 99 99 true 99 99 99.99 99.99 char99 99 99
1 2017-10-01 2017-10-01T00:00 Beijing 1 1 true 1 1 1.1 1.1 char1 1 1
10 2017-10-01 2017-10-01T00:00 Beijing 10 10 true 10 10 10.1 10.1 char10 10 10
100 2017-10-01 2017-10-01T00:00 \N \N \N \N \N \N \N \N \N \N \N
11 2017-10-01 2017-10-01T00:00 Beijing 11 11 true 11 11 11.11 11.11 char11 11 11
12 2017-10-01 2017-10-01T00:00 Beijing 12 12 true 12 12 12.12 12.12 char12 12 12
13 2017-10-01 2017-10-01T00:00 Beijing 13 13 true 13 13 13.13 13.13 char13 13 13
14 2017-10-01 2017-10-01T00:00 Beijing 14 14 true 14 14 14.14 14.14 char14 14 14
15 2017-10-01 2017-10-01T00:00 Beijing 15 15 true 15 15 15.15 15.15 char15 15 15
16 2017-10-01 2017-10-01T00:00 Beijing 16 16 true 16 16 16.16 16.16 char16 16 16
17 2017-10-01 2017-10-01T00:00 Beijing 17 17 true 17 17 17.17 17.17 char17 17 17
18 2017-10-01 2017-10-01T00:00 Beijing 18 18 true 18 18 18.18 18.18 char18 18 18
19 2017-10-01 2017-10-01T00:00 Beijing 19 19 true 19 19 19.19 19.19 char19 19 19
2 2017-10-01 2017-10-01T00:00 Beijing 2 2 true 2 2 2.2 2.2 char2 2 2
20 2017-10-01 2017-10-01T00:00 Beijing 20 20 true 20 20 20.2 20.2 char20 20 20
21 2017-10-01 2017-10-01T00:00 Beijing 21 21 true 21 21 21.21 21.21 char21 21 21
22 2017-10-01 2017-10-01T00:00 Beijing 22 22 true 22 22 22.22 22.22 char22 22 22
23 2017-10-01 2017-10-01T00:00 Beijing 23 23 true 23 23 23.23 23.23 char23 23 23
24 2017-10-01 2017-10-01T00:00 Beijing 24 24 true 24 24 24.24 24.24 char24 24 24
25 2017-10-01 2017-10-01T00:00 Beijing 25 25 true 25 25 25.25 25.25 char25 25 25
26 2017-10-01 2017-10-01T00:00 Beijing 26 26 true 26 26 26.26 26.26 char26 26 26
27 2017-10-01 2017-10-01T00:00 Beijing 27 27 true 27 27 27.27 27.27 char27 27 27
28 2017-10-01 2017-10-01T00:00 Beijing 28 28 true 28 28 28.28 28.28 char28 28 28
29 2017-10-01 2017-10-01T00:00 Beijing 29 29 true 29 29 29.29 29.29 char29 29 29
3 2017-10-01 2017-10-01T00:00 Beijing 3 3 true 3 3 3.3 3.3 char3 3 3
30 2017-10-01 2017-10-01T00:00 Beijing 30 30 true 30 30 30.3 30.3 char30 30 30
31 2017-10-01 2017-10-01T00:00 Beijing 31 31 true 31 31 31.31 31.31 char31 31 31
32 2017-10-01 2017-10-01T00:00 Beijing 32 32 true 32 32 32.32 32.32 char32 32 32
33 2017-10-01 2017-10-01T00:00 Beijing 33 33 true 33 33 33.33 33.33 char33 33 33
34 2017-10-01 2017-10-01T00:00 Beijing 34 34 true 34 34 34.34 34.34 char34 34 34
35 2017-10-01 2017-10-01T00:00 Beijing 35 35 true 35 35 35.35 35.35 char35 35 35
36 2017-10-01 2017-10-01T00:00 Beijing 36 36 true 36 36 36.36 36.36 char36 36 36
37 2017-10-01 2017-10-01T00:00 Beijing 37 37 true 37 37 37.37 37.37 char37 37 37
38 2017-10-01 2017-10-01T00:00 Beijing 38 38 true 38 38 38.38 38.38 char38 38 38
39 2017-10-01 2017-10-01T00:00 Beijing 39 39 true 39 39 39.39 39.39 char39 39 39
4 2017-10-01 2017-10-01T00:00 Beijing 4 4 true 4 4 4.4 4.4 char4 4 4
40 2017-10-01 2017-10-01T00:00 Beijing 40 40 true 40 40 40.4 40.4 char40 40 40
41 2017-10-01 2017-10-01T00:00 Beijing 41 41 true 41 41 41.41 41.41 char41 41 41
42 2017-10-01 2017-10-01T00:00 Beijing 42 42 true 42 42 42.42 42.42 char42 42 42
43 2017-10-01 2017-10-01T00:00 Beijing 43 43 true 43 43 43.43 43.43 char43 43 43
44 2017-10-01 2017-10-01T00:00 Beijing 44 44 true 44 44 44.44 44.44 char44 44 44
45 2017-10-01 2017-10-01T00:00 Beijing 45 45 true 45 45 45.45 45.45 char45 45 45
46 2017-10-01 2017-10-01T00:00 Beijing 46 46 true 46 46 46.46 46.46 char46 46 46
47 2017-10-01 2017-10-01T00:00 Beijing 47 47 true 47 47 47.47 47.47 char47 47 47
48 2017-10-01 2017-10-01T00:00 Beijing 48 48 true 48 48 48.48 48.48 char48 48 48
49 2017-10-01 2017-10-01T00:00 Beijing 49 49 true 49 49 49.49 49.49 char49 49 49
5 2017-10-01 2017-10-01T00:00 Beijing 5 5 true 5 5 5.5 5.5 char5 5 5
50 2017-10-01 2017-10-01T00:00 Beijing 50 50 true 50 50 50.5 50.5 char50 50 50
51 2017-10-01 2017-10-01T00:00 Beijing 51 51 true 51 51 51.51 51.51 char51 51 51
52 2017-10-01 2017-10-01T00:00 Beijing 52 52 true 52 52 52.52 52.52 char52 52 52
53 2017-10-01 2017-10-01T00:00 Beijing 53 53 true 53 53 53.53 53.53 char53 53 53
54 2017-10-01 2017-10-01T00:00 Beijing 54 54 true 54 54 54.54 54.54 char54 54 54
55 2017-10-01 2017-10-01T00:00 Beijing 55 55 true 55 55 55.55 55.55 char55 55 55
56 2017-10-01 2017-10-01T00:00 Beijing 56 56 true 56 56 56.56 56.56 char56 56 56
57 2017-10-01 2017-10-01T00:00 Beijing 57 57 true 57 57 57.57 57.57 char57 57 57
58 2017-10-01 2017-10-01T00:00 Beijing 58 58 true 58 58 58.58 58.58 char58 58 58
59 2017-10-01 2017-10-01T00:00 Beijing 59 59 true 59 59 59.59 59.59 char59 59 59
6 2017-10-01 2017-10-01T00:00 Beijing 6 6 true 6 6 6.6 6.6 char6 6 6
60 2017-10-01 2017-10-01T00:00 Beijing 60 60 true 60 60 60.6 60.6 char60 60 60
61 2017-10-01 2017-10-01T00:00 Beijing 61 61 true 61 61 61.61 61.61 char61 61 61
62 2017-10-01 2017-10-01T00:00 Beijing 62 62 true 62 62 62.62 62.62 char62 62 62
63 2017-10-01 2017-10-01T00:00 Beijing 63 63 true 63 63 63.63 63.63 char63 63 63
64 2017-10-01 2017-10-01T00:00 Beijing 64 64 true 64 64 64.64 64.64 char64 64 64
65 2017-10-01 2017-10-01T00:00 Beijing 65 65 true 65 65 65.65 65.65 char65 65 65
66 2017-10-01 2017-10-01T00:00 Beijing 66 66 true 66 66 66.66 66.66 char66 66 66
67 2017-10-01 2017-10-01T00:00 Beijing 67 67 true 67 67 67.67 67.67 char67 67 67
68 2017-10-01 2017-10-01T00:00 Beijing 68 68 true 68 68 68.68 68.68 char68 68 68
69 2017-10-01 2017-10-01T00:00 Beijing 69 69 true 69 69 69.69 69.69 char69 69 69
7 2017-10-01 2017-10-01T00:00 Beijing 7 7 true 7 7 7.7 7.7 char7 7 7
70 2017-10-01 2017-10-01T00:00 Beijing 70 70 true 70 70 70.7 70.7 char70 70 70
71 2017-10-01 2017-10-01T00:00 Beijing 71 71 true 71 71 71.71 71.71 char71 71 71
72 2017-10-01 2017-10-01T00:00 Beijing 72 72 true 72 72 72.72 72.72 char72 72 72
73 2017-10-01 2017-10-01T00:00 Beijing 73 73 true 73 73 73.73 73.73 char73 73 73
74 2017-10-01 2017-10-01T00:00 Beijing 74 74 true 74 74 74.74 74.74 char74 74 74
75 2017-10-01 2017-10-01T00:00 Beijing 75 75 true 75 75 75.75 75.75 char75 75 75
76 2017-10-01 2017-10-01T00:00 Beijing 76 76 true 76 76 76.76 76.76 char76 76 76
77 2017-10-01 2017-10-01T00:00 Beijing 77 77 true 77 77 77.77 77.77 char77 77 77
78 2017-10-01 2017-10-01T00:00 Beijing 78 78 true 78 78 78.78 78.78 char78 78 78
79 2017-10-01 2017-10-01T00:00 Beijing 79 79 true 79 79 79.79 79.79 char79 79 79
8 2017-10-01 2017-10-01T00:00 Beijing 8 8 true 8 8 8.8 8.8 char8 8 8
80 2017-10-01 2017-10-01T00:00 Beijing 80 80 true 80 80 80.8 80.8 char80 80 80
81 2017-10-01 2017-10-01T00:00 Beijing 81 81 true 81 81 81.81 81.81 char81 81 81
82 2017-10-01 2017-10-01T00:00 Beijing 82 82 true 82 82 82.82 82.82 char82 82 82
83 2017-10-01 2017-10-01T00:00 Beijing 83 83 true 83 83 83.83 83.83 char83 83 83
84 2017-10-01 2017-10-01T00:00 Beijing 84 84 true 84 84 84.84 84.84 char84 84 84
85 2017-10-01 2017-10-01T00:00 Beijing 85 85 true 85 85 85.85 85.85 char85 85 85
86 2017-10-01 2017-10-01T00:00 Beijing 86 86 true 86 86 86.86 86.86 char86 86 86
87 2017-10-01 2017-10-01T00:00 Beijing 87 87 true 87 87 87.87 87.87 char87 87 87
88 2017-10-01 2017-10-01T00:00 Beijing 88 88 true 88 88 88.88 88.88 char88 88 88
89 2017-10-01 2017-10-01T00:00 Beijing 89 89 true 89 89 89.89 89.89 char89 89 89
9 2017-10-01 2017-10-01T00:00 Beijing 9 9 true 9 9 9.9 9.9 char9 9 9
90 2017-10-01 2017-10-01T00:00 Beijing 90 90 true 90 90 90.9 90.9 char90 90 90
91 2017-10-01 2017-10-01T00:00 Beijing 91 91 true 91 91 91.91 91.91 char91 91 91
92 2017-10-01 2017-10-01T00:00 Beijing 92 92 true 92 92 92.92 92.92 char92 92 92
93 2017-10-01 2017-10-01T00:00 Beijing 93 93 true 93 93 93.93 93.93 char93 93 93
94 2017-10-01 2017-10-01T00:00 Beijing 94 94 true 94 94 94.94 94.94 char94 94 94
95 2017-10-01 2017-10-01T00:00 Beijing 95 95 true 95 95 95.95 95.95 char95 95 95
96 2017-10-01 2017-10-01T00:00 Beijing 96 96 true 96 96 96.96 96.96 char96 96 96
97 2017-10-01 2017-10-01T00:00 Beijing 97 97 true 97 97 97.97 97.97 char97 97 97
98 2017-10-01 2017-10-01T00:00 Beijing 98 98 true 98 98 98.98 98.98 char98 98 98
99 2017-10-01 2017-10-01T00:00 Beijing 99 99 true 99 99 99.99 99.99 char99 99 99

View File

@ -45,5 +45,5 @@
1 2023-04-20 2023-04-20 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59.0 9999-12-31 23:59:59.0 2023-04-20 00:00:00.12 2023-04-20 00:00:00.3344 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.123 2023-04-20 00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235E38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
4 0001-01-04 0001-01-04 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 2023-04-20 00:00:00.0 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000

View File

@ -36,14 +36,14 @@
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !select_tvf2 --
1 2023-04-20 2023-04-20 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59 9999-12-31 23:59:59 2023-04-20 00:00:00.120000 2023-04-20 00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56 2023-04-20 00:00:00 2023-04-20 00:00:00.123000 2023-04-20 00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
1 2023-04-20 2023-04-20 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31T23:59:59 9999-12-31T23:59:59 2023-04-20T00:00:00.120 2023-04-20T00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20T12:34:56 2023-04-20T00:00 2023-04-20T00:00:00.123 2023-04-20T00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235e+38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 2023-04-20T00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
-- !hive_docker_02 --
1 2023-04-20 2023-04-20 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 23:59:59 9999-12-31 23:59:59 2023-04-20 00:00:00.120000 2023-04-20 00:00:00.334400 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 12:34:56 2023-04-20 00:00:00 2023-04-20 00:00:00.123000 2023-04-20 00:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235E38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0000-01-01 0000-01-01 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 2023-04-20 00:00:00 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000
1 2023-04-20 2023-04-20 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 Beijing Haidian 1 1 true 1 1 1 1.1 1.1 char1 1 1 1 0.1 1.00000000 1.0000000000 1 1.0000000000000000000000000000000000000 0.10000000000000000000000000000000000000
2 9999-12-31 9999-12-31 9999-12-31 15:59:59.0 9999-12-31 15:59:59.0 2023-04-19 16:00:00.12 2023-04-19 16:00:00.3344 Haidian -32768 -128 true -2147483648 -9223372036854775808 -170141183460469231731687303715884105728 1.4E-45 4.9E-324 char2 100000000 100000000 4 0.1 0.99999999 9999999999.9999999999 99999999999999999999999999999999999999 9.9999999999999999999999999999999999999 0.99999999999999999999999999999999999999
3 2023-04-21 2023-04-21 2023-04-20 04:34:56.0 2023-04-19 16:00:00.0 2023-04-19 16:00:00.123 2023-04-19 16:00:00.123456 Beijing 32767 127 true 2147483647 9223372036854775807 170141183460469231731687303715884105727 3.4028235E38 1.7976931348623157E308 char3 999999999 999999999 9 0.9 9.99999999 1234567890.0123456789 12345678901234567890123456789012345678 1.2345678901234567890123456789012345678 0.12345678901234567890123456789012345678
4 0001-01-04 0001-01-04 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 2023-04-19 16:00:00.0 Beijing Haidian 4 4 true 4 4 4 4.4 4.4 char4 4 4 4 0.4 4.00000000 4.0000000000 4 4.0000000000000000000000000000000000000 0.40000000000000000000000000000000000000

View File

@ -99,26 +99,26 @@
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}
-- !select_tvf4 --
1 doris_1 {"user_id": 1, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 1, "sex": 1, "bool_col": 1, "int_col": 1, "bigint_col": 1, "largeint_col": "1", "float_col": 1.1, "double_col": 1.1, "char_col": "char1_1234", "decimal_col": 1}
2 doris_2 {"user_id": 2, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 2, "sex": 2, "bool_col": 1, "int_col": 2, "bigint_col": 2, "largeint_col": "2", "float_col": 2.2, "double_col": 2.2, "char_col": "char2_1234", "decimal_col": 2}
3 doris_3 {"user_id": 3, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 3, "sex": 3, "bool_col": 1, "int_col": 3, "bigint_col": 3, "largeint_col": "3", "float_col": 3.3, "double_col": 3.3, "char_col": "char3_1234", "decimal_col": 3}
4 doris_4 {"user_id": 4, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 4, "sex": 4, "bool_col": 1, "int_col": 4, "bigint_col": 4, "largeint_col": "4", "float_col": 4.4, "double_col": 4.4, "char_col": "char4_1234", "decimal_col": 4}
5 doris_5 {"user_id": 5, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 5, "sex": 5, "bool_col": 1, "int_col": 5, "bigint_col": 5, "largeint_col": "5", "float_col": 5.5, "double_col": 5.5, "char_col": "char5_1234", "decimal_col": 5}
6 doris_6 {"user_id": 6, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 6, "sex": 6, "bool_col": 1, "int_col": 6, "bigint_col": 6, "largeint_col": "6", "float_col": 6.6, "double_col": 6.6, "char_col": "char6_1234", "decimal_col": 6}
7 doris_7 {"user_id": 7, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 7, "sex": 7, "bool_col": 1, "int_col": 7, "bigint_col": 7, "largeint_col": "7", "float_col": 7.7, "double_col": 7.7, "char_col": "char7_1234", "decimal_col": 7}
8 doris_8 {"user_id": 8, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 8, "sex": 8, "bool_col": 1, "int_col": 8, "bigint_col": 8, "largeint_col": "8", "float_col": 8.8, "double_col": 8.8, "char_col": "char8_1234", "decimal_col": 8}
9 doris_9 {"user_id": 9, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": "Beijing", "age": 9, "sex": 9, "bool_col": 1, "int_col": 9, "bigint_col": 9, "largeint_col": "9", "float_col": 9.9, "double_col": 9.9, "char_col": "char9_1234", "decimal_col": 9}
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}
1 doris_1 {"user_id": 1, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 1, "sex": 1, "bool_col": 1, "int_col": 1, "bigint_col": 1, "largeint_col": "1", "float_col": 1.1, "double_col": 1.1, "char_col": "char1_1234", "decimal_col": 1}
2 doris_2 {"user_id": 2, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 2, "sex": 2, "bool_col": 1, "int_col": 2, "bigint_col": 2, "largeint_col": "2", "float_col": 2.2, "double_col": 2.2, "char_col": "char2_1234", "decimal_col": 2}
3 doris_3 {"user_id": 3, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 3, "sex": 3, "bool_col": 1, "int_col": 3, "bigint_col": 3, "largeint_col": "3", "float_col": 3.3, "double_col": 3.3, "char_col": "char3_1234", "decimal_col": 3}
4 doris_4 {"user_id": 4, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 4, "sex": 4, "bool_col": 1, "int_col": 4, "bigint_col": 4, "largeint_col": "4", "float_col": 4.4, "double_col": 4.4, "char_col": "char4_1234", "decimal_col": 4}
5 doris_5 {"user_id": 5, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 5, "sex": 5, "bool_col": 1, "int_col": 5, "bigint_col": 5, "largeint_col": "5", "float_col": 5.5, "double_col": 5.5, "char_col": "char5_1234", "decimal_col": 5}
6 doris_6 {"user_id": 6, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 6, "sex": 6, "bool_col": 1, "int_col": 6, "bigint_col": 6, "largeint_col": "6", "float_col": 6.6, "double_col": 6.6, "char_col": "char6_1234", "decimal_col": 6}
7 doris_7 {"user_id": 7, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 7, "sex": 7, "bool_col": 1, "int_col": 7, "bigint_col": 7, "largeint_col": "7", "float_col": 7.7, "double_col": 7.7, "char_col": "char7_1234", "decimal_col": 7}
8 doris_8 {"user_id": 8, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 8, "sex": 8, "bool_col": 1, "int_col": 8, "bigint_col": 8, "largeint_col": "8", "float_col": 8.8, "double_col": 8.8, "char_col": "char8_1234", "decimal_col": 8}
9 doris_9 {"user_id": 9, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": "Beijing", "age": 9, "sex": 9, "bool_col": 1, "int_col": 9, "bigint_col": 9, "largeint_col": "9", "float_col": 9.9, "double_col": 9.9, "char_col": "char9_1234", "decimal_col": 9}
10 doris_10 {"user_id": 10, "date": "2017-10-01", "datetime": "2017-10-01 00:00:00.000000", "city": null, "age": null, "sex": null, "bool_col": null, "int_col": null, "bigint_col": null, "largeint_col": null, "float_col": null, "double_col": null, "char_col": null, "decimal_col": null}
-- !hive_docker_04 --
1 doris_1 {"user_id":1,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":1,"sex":1,"bool_col":true,"int_col":1,"bigint_col":1,"largeint_col":"1","float_col":1.1,"double_col":1.1,"char_col":"char1_1234","decimal_col":1}
2 doris_2 {"user_id":2,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":2,"sex":2,"bool_col":true,"int_col":2,"bigint_col":2,"largeint_col":"2","float_col":2.2,"double_col":2.2,"char_col":"char2_1234","decimal_col":2}
3 doris_3 {"user_id":3,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":3,"sex":3,"bool_col":true,"int_col":3,"bigint_col":3,"largeint_col":"3","float_col":3.3,"double_col":3.3,"char_col":"char3_1234","decimal_col":3}
4 doris_4 {"user_id":4,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":4,"sex":4,"bool_col":true,"int_col":4,"bigint_col":4,"largeint_col":"4","float_col":4.4,"double_col":4.4,"char_col":"char4_1234","decimal_col":4}
5 doris_5 {"user_id":5,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":5,"sex":5,"bool_col":true,"int_col":5,"bigint_col":5,"largeint_col":"5","float_col":5.5,"double_col":5.5,"char_col":"char5_1234","decimal_col":5}
6 doris_6 {"user_id":6,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":6,"sex":6,"bool_col":true,"int_col":6,"bigint_col":6,"largeint_col":"6","float_col":6.6,"double_col":6.6,"char_col":"char6_1234","decimal_col":6}
7 doris_7 {"user_id":7,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":7,"sex":7,"bool_col":true,"int_col":7,"bigint_col":7,"largeint_col":"7","float_col":7.7,"double_col":7.7,"char_col":"char7_1234","decimal_col":7}
8 doris_8 {"user_id":8,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":8,"sex":8,"bool_col":true,"int_col":8,"bigint_col":8,"largeint_col":"8","float_col":8.8,"double_col":8.8,"char_col":"char8_1234","decimal_col":8}
9 doris_9 {"user_id":9,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":"Beijing","age":9,"sex":9,"bool_col":true,"int_col":9,"bigint_col":9,"largeint_col":"9","float_col":9.9,"double_col":9.9,"char_col":"char9_1234","decimal_col":9}
10 doris_10 {"user_id":10,"date":"2017-10-01","datetime":"2017-10-01 00:00:00","city":null,"age":null,"sex":null,"bool_col":null,"int_col":null,"bigint_col":null,"largeint_col":null,"float_col":null,"double_col":null,"char_col":null,"decimal_col":null}
1 doris_1 {"user_id":1,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":1,"sex":1,"bool_col":true,"int_col":1,"bigint_col":1,"largeint_col":"1","float_col":1.1,"double_col":1.1,"char_col":"char1_1234","decimal_col":1}
2 doris_2 {"user_id":2,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":2,"sex":2,"bool_col":true,"int_col":2,"bigint_col":2,"largeint_col":"2","float_col":2.2,"double_col":2.2,"char_col":"char2_1234","decimal_col":2}
3 doris_3 {"user_id":3,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":3,"sex":3,"bool_col":true,"int_col":3,"bigint_col":3,"largeint_col":"3","float_col":3.3,"double_col":3.3,"char_col":"char3_1234","decimal_col":3}
4 doris_4 {"user_id":4,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":4,"sex":4,"bool_col":true,"int_col":4,"bigint_col":4,"largeint_col":"4","float_col":4.4,"double_col":4.4,"char_col":"char4_1234","decimal_col":4}
5 doris_5 {"user_id":5,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":5,"sex":5,"bool_col":true,"int_col":5,"bigint_col":5,"largeint_col":"5","float_col":5.5,"double_col":5.5,"char_col":"char5_1234","decimal_col":5}
6 doris_6 {"user_id":6,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":6,"sex":6,"bool_col":true,"int_col":6,"bigint_col":6,"largeint_col":"6","float_col":6.6,"double_col":6.6,"char_col":"char6_1234","decimal_col":6}
7 doris_7 {"user_id":7,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":7,"sex":7,"bool_col":true,"int_col":7,"bigint_col":7,"largeint_col":"7","float_col":7.7,"double_col":7.7,"char_col":"char7_1234","decimal_col":7}
8 doris_8 {"user_id":8,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":8,"sex":8,"bool_col":true,"int_col":8,"bigint_col":8,"largeint_col":"8","float_col":8.8,"double_col":8.8,"char_col":"char8_1234","decimal_col":8}
9 doris_9 {"user_id":9,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":"Beijing","age":9,"sex":9,"bool_col":true,"int_col":9,"bigint_col":9,"largeint_col":"9","float_col":9.9,"double_col":9.9,"char_col":"char9_1234","decimal_col":9}
10 doris_10 {"user_id":10,"date":"2017-10-01","datetime":"2017-09-30 16:00:00","city":null,"age":null,"sex":null,"bool_col":null,"int_col":null,"bigint_col":null,"largeint_col":null,"float_col":null,"double_col":null,"char_col":null,"decimal_col":null}

View File

@ -33,7 +33,6 @@ suite("test_outfile_parquet_map_type", "p0") {
String bucket = context.config.otherConfigs.get("s3BucketName");
def export_table_name = "outfile_parquet_map_type_export_test"
def load_table_name = "outfile_parquet_map_type_load_test"
def outFilePath = "${bucket}/outfile/parquet/map_type/exp_"
@ -73,9 +72,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, LARGEINT> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'a': 100, 'b': 111}), (2, 'doris2', {'a': 200, 'b': 222}); """
@ -108,8 +104,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<LARGEINT, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {100: 'null', 111:'b'}), (2, 'doris2', {200:'a', 222:'b'}); """
@ -144,9 +138,7 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<INT, DECIMAL(15,5)> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {100: 0.123, 111:1.2345}), (2, 'doris2', {200:8738931.12312, 222:999.999}); """
sql """ insert into ${export_table_name} values (3, 'doris3', {111: 1111034.123, 333:7771.1231, 399:0.441241, 39999:0.441241}); """
@ -180,9 +172,7 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<INT, DOUBLE> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {100: ${Double.MIN_VALUE}, 111:${Double.MAX_VALUE}}), (2, 'doris2', {200: 123.123, 222:0.9999999}); """
sql """ insert into ${export_table_name} values (3, 'doris3', {111: 187.123, 333:555.6767, 399:129312.113, 3999:123.12314}); """
@ -215,9 +205,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, DECIMAL(15,5)> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'k1': 0.123, '111':1.2345}), (2, 'doris2', {'200':8738931.12312, 'doris':999.999}); """
@ -253,9 +240,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, DOUBLE> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'100': ${Double.MIN_VALUE}, 'doris':${Double.MAX_VALUE}}), (2, 'doris2', {'nereids': 123.123, '222':0.9999999}); """
@ -289,9 +273,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, BIGINT> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'a': 100, 'b': 111}), (2, 'doris2', {'a': 200, 'b': 222}); """
@ -324,9 +305,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, BOOLEAN> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'a': true, 'b': false}), (2, 'doris2', {'a': false, 'b': false}); """
@ -359,9 +337,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<INT, BOOLEAN> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {100: true, 111:true}), (2, 'doris2', {200: false, 222:false}); """
@ -395,8 +370,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<DATETIME, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'2023-04-20 01:02:03': 'null', '2018-04-20 10:40:35':'b'}), (2, 'doris2', {'2000-04-20 00:00:00':'a', '1967-12-31 12:24:56':'b'}); """
@ -431,9 +404,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<DATETIME, INT> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'2023-04-20 01:02:03': null, '2018-04-20 10:40:35': 123}), (2, 'doris2', {'2000-04-20 00:00:00':${Integer.MIN_VALUE}, '1967-12-31 12:24:56':${Integer.MAX_VALUE}}); """
@ -466,9 +436,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<DATE, INT> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'2023-04-20': null, '2018-04-20': 123}), (2, 'doris2', {'2000-04-20':${Integer.MIN_VALUE}, '1967-12-31':${Integer.MAX_VALUE}}); """
@ -501,9 +468,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<DATE, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'2023-04-20': 'null', '2018-04-20': null}), (2, 'doris2', {'2000-04-20':'${Integer.MIN_VALUE}', '1967-12-31':'${Integer.MAX_VALUE}'}); """
@ -536,9 +500,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<DATETIME, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'2023-04-20 12:20:03': 'null', '2018-04-20 12:59:59': null}), (2, 'doris2', {'2000-04-20 23:59:59':'${Integer.MIN_VALUE}', '1967-12-31 00:00:00':'${Integer.MAX_VALUE}'}); """
@ -571,9 +532,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<BIGINT, VARCHAR(20)> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {100: 'null', 111:'b'}), (2, 'doris2', {200:'a', 222:'b'}); """
@ -608,9 +566,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<BOOLEAN, VARCHAR(20)> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, "doris1", {true:"null",false:"b"}), (2, "doris2", {true:"a", true:"b"}); """
@ -644,9 +599,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<BOOLEAN, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {1: 'xxx', 0:'b'}), (2, 'doris2', {1:'a', 1:'b'}); """
@ -681,8 +633,6 @@ suite("test_outfile_parquet_map_type", "p0") {
def map_field_define = "`m_info` Map<STRING, STRING> NULL"
// create table to export data
create_table(export_table_name, map_field_define)
// create table to load data
create_table(load_table_name, map_field_define)
// insert data
sql """ insert into ${export_table_name} values (1, 'doris1', {'doris': 'null', 'nereids':'b'}), (2, 'doris2', {'ftw':'a', 'cyx':'b'}); """
@ -710,5 +660,4 @@ suite("test_outfile_parquet_map_type", "p0") {
"""
} finally {
}
}

View File

@ -26,38 +26,16 @@ suite("test_export_data_types", "p0") {
sql """ set enable_nereids_planner=true """
sql """ set enable_fallback_to_original_planner=false """
String ak = getS3AK()
String sk = getS3SK()
String s3_endpoint = getS3Endpoint()
String region = getS3Region()
String bucket = context.config.otherConfigs.get("s3BucketName");
// check whether the FE config 'enable_outfile_to_local' is true
StringBuilder strBuilder = new StringBuilder()
strBuilder.append("curl --location-trusted -u " + context.config.jdbcUser + ":" + context.config.jdbcPassword)
strBuilder.append(" http://" + context.config.feHttpAddress + "/rest/v1/config/fe")
String command = strBuilder.toString()
def process = command.toString().execute()
def code = process.waitFor()
def err = IOGroovyMethods.getText(new BufferedReader(new InputStreamReader(process.getErrorStream())));
def out = process.getText()
logger.info("Request FE Config: code=" + code + ", out=" + out + ", err=" + err)
assertEquals(code, 0)
def response = parseJson(out.trim())
assertEquals(response.code, 0)
assertEquals(response.msg, "success")
def configJson = response.data.rows
boolean enableOutfileToLocal = false
for (Object conf: configJson) {
assert conf instanceof Map
if (((Map<String, String>) conf).get("Name").toLowerCase() == "enable_outfile_to_local") {
enableOutfileToLocal = ((Map<String, String>) conf).get("Value").toLowerCase() == "true"
}
}
if (!enableOutfileToLocal) {
logger.warn("Please set enable_outfile_to_local to true to run test_outfile")
return
}
def table_export_name = "test_export_data_types"
def table_load_name = "test_load_data_types"
def outfile_path_prefix = """/tmp/test_export"""
def outfile_path_prefix = """${bucket}/export/p0/all_data_types/exp"""
def format = "csv"
def create_table = {table_name ->
sql """ DROP TABLE IF EXISTS ${table_name} """
@ -136,37 +114,16 @@ suite("test_export_data_types", "p0") {
logger.info("insert result: " + insert_res.toString())
qt_select_export1 """ SELECT * FROM ${table_export_name} t ORDER BY user_id; """
def check_path_exists = { dir_path ->
File path = new File(dir_path)
if (!path.exists()) {
assert path.mkdirs()
} else {
throw new IllegalStateException("""${dir_path} already exists! """)
}
}
def check_file_amounts = { dir_path, amount ->
File path = new File(dir_path)
File[] files = path.listFiles()
assert files.length == amount
}
def delete_files = { dir_path ->
File path = new File(dir_path)
if (path.exists()) {
for (File f: path.listFiles()) {
f.delete();
}
path.delete();
}
}
def waiting_export = { export_label ->
while (true) {
def res = sql """ show export where label = "${export_label}" """
logger.info("export state: " + res[0][2])
if (res[0][2] == "FINISHED") {
break;
def json = parseJson(res[0][11])
assert json instanceof List
assertEquals("1", json.fileNumber[0][0])
log.info("outfile_path: ${json.url[0][0]}")
return json.url[0][0];
} else if (res[0][2] == "CANCELLED") {
throw new IllegalStateException("""export failed: ${res[0][10]}""")
} else {
@ -179,55 +136,32 @@ suite("test_export_data_types", "p0") {
def uuid = UUID.randomUUID().toString()
def outFilePath = """${outfile_path_prefix}_${uuid}"""
def label = "label_${uuid}"
format = "csv"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "csv",
"column_separator"=","
"format" = "${format}"
) WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
def outfile_url = waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
create_table(table_load_name);
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'strict_mode', 'true'
set 'format', 'csv'
set 'column_separator', ','
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(4, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
qt_select_load1 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load1 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.${format}",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY c1;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
}
@ -235,161 +169,96 @@ suite("test_export_data_types", "p0") {
uuid = UUID.randomUUID().toString()
outFilePath = """${outfile_path_prefix}_${uuid}"""
label = "label_${uuid}"
format = "parquet"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "parquet"
"format" = "${format}"
) WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
def outfile_url = waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
create_table(table_load_name);
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'strict_mode', 'true'
set 'format', 'parquet'
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(4, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
qt_select_load2 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load2 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.${format}",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY user_id;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
}
// 3. test orc
uuid = UUID.randomUUID().toString()
outFilePath = """${outfile_path_prefix}_${uuid}"""
label = "label_${uuid}"
format = "orc"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "orc"
"format" = "${format}"
) WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
def outfile_url = waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
create_table(table_load_name);
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'strict_mode', 'true'
set 'format', 'orc'
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(4, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
qt_select_load3 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load3 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.${format}",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY user_id;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
}
// 4. test csv_with_names
uuid = UUID.randomUUID().toString()
outFilePath = """${outfile_path_prefix}_${uuid}"""
label = "label_${uuid}"
format = "csv_with_names"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "csv_with_names",
"column_separator"=","
"format" = "${format}"
) WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
def outfile_url = waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
create_table(table_load_name);
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'strict_mode', 'true'
set 'format', 'csv_with_names'
set 'column_separator', ','
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(4, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
qt_select_load4 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load4 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.csv",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY user_id;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
}
@ -397,55 +266,32 @@ suite("test_export_data_types", "p0") {
uuid = UUID.randomUUID().toString()
outFilePath = """${outfile_path_prefix}_${uuid}"""
label = "label_${uuid}"
format = "csv_with_names_and_types"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "csv_with_names_and_types",
"column_separator"=","
"format" = "${format}"
) WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
def outfile_url = waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
create_table(table_load_name);
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'strict_mode', 'true'
set 'format', 'csv_with_names_and_types'
set 'column_separator', ','
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(4, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
qt_select_load5 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load5 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.csv",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY user_id;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
}
try_sql("DROP TABLE IF EXISTS ${table_export_name}")

View File

@ -26,38 +26,16 @@ suite("test_export_orc", "p0") {
sql """ set enable_nereids_planner=true """
sql """ set enable_fallback_to_original_planner=false """
// check whether the FE config 'enable_outfile_to_local' is true
StringBuilder strBuilder = new StringBuilder()
strBuilder.append("curl --location-trusted -u " + context.config.jdbcUser + ":" + context.config.jdbcPassword)
strBuilder.append(" http://" + context.config.feHttpAddress + "/rest/v1/config/fe")
String command = strBuilder.toString()
def process = command.toString().execute()
def code = process.waitFor()
def err = IOGroovyMethods.getText(new BufferedReader(new InputStreamReader(process.getErrorStream())));
def out = process.getText()
logger.info("Request FE Config: code=" + code + ", out=" + out + ", err=" + err)
assertEquals(code, 0)
def response = parseJson(out.trim())
assertEquals(response.code, 0)
assertEquals(response.msg, "success")
def configJson = response.data.rows
boolean enableOutfileToLocal = false
for (Object conf: configJson) {
assert conf instanceof Map
if (((Map<String, String>) conf).get("Name").toLowerCase() == "enable_outfile_to_local") {
enableOutfileToLocal = ((Map<String, String>) conf).get("Value").toLowerCase() == "true"
}
}
if (!enableOutfileToLocal) {
logger.warn("Please set enable_outfile_to_local to true to run test_outfile")
return
}
String ak = getS3AK()
String sk = getS3SK()
String s3_endpoint = getS3Endpoint()
String region = getS3Region()
String bucket = context.config.otherConfigs.get("s3BucketName");
def table_export_name = "test_export_orc"
def table_load_name = "test_load_orc"
def outfile_path_prefix = """/tmp/test_export"""
def outfile_path_prefix = """${bucket}/export/p0/orc/exp"""
def format = "orc"
// create table and insert
sql """ DROP TABLE IF EXISTS ${table_export_name} """
@ -98,37 +76,16 @@ suite("test_export_orc", "p0") {
qt_select_export1 """ SELECT * FROM ${table_export_name} t ORDER BY user_id; """
def check_path_exists = { dir_path ->
File path = new File(dir_path)
if (!path.exists()) {
assert path.mkdirs()
} else {
throw new IllegalStateException("""${dir_path} already exists! """)
}
}
def check_file_amounts = { dir_path, amount ->
File path = new File(dir_path)
File[] files = path.listFiles()
assert files.length == amount
}
def delete_files = { dir_path ->
File path = new File(dir_path)
if (path.exists()) {
for (File f: path.listFiles()) {
f.delete();
}
path.delete();
}
}
def waiting_export = { export_label ->
while (true) {
def res = sql """ show export where label = "${export_label}" """
logger.info("export state: " + res[0][2])
if (res[0][2] == "FINISHED") {
break;
def json = parseJson(res[0][11])
assert json instanceof List
assertEquals("1", json.fileNumber[0][0])
log.info("outfile_path: ${json.url[0][0]}")
return json.url[0][0];
} else if (res[0][2] == "CANCELLED") {
throw new IllegalStateException("""export failed: ${res[0][10]}""")
} else {
@ -142,74 +99,32 @@ suite("test_export_orc", "p0") {
def outFilePath = """${outfile_path_prefix}_${uuid}"""
def label = "label_${uuid}"
try {
// check export path
check_path_exists.call("${outFilePath}")
// exec export
sql """
EXPORT TABLE ${table_export_name} TO "file://${outFilePath}/"
EXPORT TABLE ${table_export_name} TO "s3://${outFilePath}/"
PROPERTIES(
"label" = "${label}",
"format" = "orc",
'columns' = 'user_id, city, age, sex, bool_col, int_col, bigint_col, float_col, double_col, char_col, decimal_col'
"format" = "${format}"
)
WITH S3(
"s3.endpoint" = "${s3_endpoint}",
"s3.region" = "${region}",
"s3.secret_key"="${sk}",
"s3.access_key" = "${ak}"
);
"""
waiting_export.call(label)
// check file amounts
check_file_amounts.call("${outFilePath}", 1)
def outfile_url = waiting_export.call(label)
// check data correctness
sql """ DROP TABLE IF EXISTS ${table_load_name} """
sql """
CREATE TABLE IF NOT EXISTS ${table_load_name} (
`user_id` INT NOT NULL COMMENT "用户id",
`city` VARCHAR(20) COMMENT "用户所在城市",
`age` SMALLINT COMMENT "用户年龄",
`sex` TINYINT COMMENT "用户性别",
`bool_col` boolean COMMENT "",
`int_col` int COMMENT "",
`bigint_col` bigint COMMENT "",
`float_col` float COMMENT "",
`double_col` double COMMENT "",
`char_col` CHAR(10) COMMENT "",
`decimal_col` decimal COMMENT ""
)
DISTRIBUTED BY HASH(user_id) PROPERTIES("replication_num" = "1");
"""
File[] files = new File("${outFilePath}").listFiles()
String file_path = files[0].getAbsolutePath()
streamLoad {
table "${table_load_name}"
set 'columns', 'user_id, city, age, sex, bool_col, int_col, bigint_col, float_col, double_col, char_col, decimal_col'
set 'strict_mode', 'true'
set 'format', 'orc'
file "${file_path}"
time 10000 // limit inflight 10s
check { result, exception, startTime, endTime ->
if (exception != null) {
throw exception
}
log.info("Stream load result: ${result}".toString())
def json = parseJson(result)
assertEquals("success", json.Status.toLowerCase())
assertEquals(100, json.NumberTotalRows)
assertEquals(0, json.NumberFilteredRows)
}
}
sql """ sync; """
qt_select_load1 """ SELECT * FROM ${table_load_name} t ORDER BY user_id; """
qt_select_load1 """ SELECT * FROM s3(
"uri" = "http://${s3_endpoint}${outfile_url.substring(4, outfile_url.length() - 1)}0.${format}",
"s3.access_key"= "${ak}",
"s3.secret_key" = "${sk}",
"format" = "${format}",
"region" = "${region}"
) ORDER BY user_id;
"""
} finally {
try_sql("DROP TABLE IF EXISTS ${table_load_name}")
delete_files.call("${outFilePath}")
try_sql("DROP TABLE IF EXISTS ${table_export_name}")
}
try_sql("DROP TABLE IF EXISTS ${table_export_name}")
}

View File

@ -183,12 +183,12 @@ suite("test_hive_read_orc", "external,hive,external_docker") {
def hive_column_define = """
user_id INT,
`date` STRING,
datev2 STRING,
`datetime` STRING,
datetimev2_1 STRING,
datetimev2_2 STRING,
datetimev2_3 STRING,
`date` DATE,
datev2 DATE,
`datetime` TIMESTAMP,
datetimev2_1 TIMESTAMP,
datetimev2_2 TIMESTAMP,
datetimev2_3 TIMESTAMP,
city STRING,
street STRING,
age SMALLINT,

View File

@ -183,12 +183,12 @@ suite("test_hive_read_parquet", "external,hive,external_docker") {
def hive_column_define = """
user_id INT,
`date` STRING,
datev2 STRING,
`datetime` STRING,
datetimev2_1 STRING,
datetimev2_2 STRING,
datetimev2_3 STRING,
`date` DATE,
datev2 DATE,
`datetime` TIMESTAMP,
datetimev2_1 TIMESTAMP,
datetimev2_2 TIMESTAMP,
datetimev2_3 TIMESTAMP,
city STRING,
street STRING,
age SMALLINT,

View File

@ -238,7 +238,7 @@ suite("test_hive_read_parquet_complex_type", "external,hive,external_docker") {
try {
def doris_field_define = "`s_info` STRUCT<user_id:INT, date:DATE, datetime:DATETIME, city:VARCHAR(20), age:SMALLINT, sex:TINYINT, bool_col:BOOLEAN, int_col:INT, bigint_col:BIGINT, largeint_col:LARGEINT, float_col:FLOAT, double_col:DOUBLE, char_col:CHAR(10), decimal_col:DECIMAL> NULL"
def hive_field_define = "`s_info` STRUCT<user_id:INT, `date`:STRING, `datetime`:STRING, city:VARCHAR(20), age:SMALLINT, sex:TINYINT, bool_col:BOOLEAN, int_col:INT, bigint_col:BIGINT, largeint_col:STRING, float_col:FLOAT, double_col:DOUBLE, char_col:CHAR(10), decimal_col:DECIMAL>"
def hive_field_define = "`s_info` STRUCT<user_id:INT, `date`:DATE, `datetime`:TIMESTAMP, city:VARCHAR(20), age:SMALLINT, sex:TINYINT, bool_col:BOOLEAN, int_col:INT, bigint_col:BIGINT, largeint_col:STRING, float_col:FLOAT, double_col:DOUBLE, char_col:CHAR(10), decimal_col:DECIMAL>"
// create table to export data