MCPcopy Create free account
hub / github.com/ByConity/ByConity / insertPostgreSQLValue

Function insertPostgreSQLValue

src/Core/PostgreSQL/insertPostgreSQLValue.cpp:56–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54
55
56void insertPostgreSQLValue(
57 IColumn & column, std::string_view value,
58 const ExternalResultDescription::ValueType type, const DataTypePtr data_type,
59 std::unordered_map<size_t, PostgreSQLArrayInfo> & array_info, size_t idx)
60{
61 switch (type)
62 {
63
64 case ExternalResultDescription::ValueType::vtUInt8:
65 {
66 if (value == "t")
67 assert_cast<ColumnUInt8 &>(column).insertValue(1);
68 else if (value == "f")
69 assert_cast<ColumnUInt8 &>(column).insertValue(0);
70 else
71 assert_cast<ColumnUInt8 &>(column).insertValue(pqxx::from_string<uint16_t>(value));
72 break;
73 }
74 case ExternalResultDescription::ValueType::vtUInt16:
75 assert_cast<ColumnUInt16 &>(column).insertValue(pqxx::from_string<uint16_t>(value));
76 break;
77 case ExternalResultDescription::ValueType::vtUInt32:
78 assert_cast<ColumnUInt32 &>(column).insertValue(pqxx::from_string<uint32_t>(value));
79 break;
80 case ExternalResultDescription::ValueType::vtUInt64:
81 assert_cast<ColumnUInt64 &>(column).insertValue(pqxx::from_string<uint64_t>(value));
82 break;
83 case ExternalResultDescription::ValueType::vtInt8:
84 assert_cast<ColumnInt8 &>(column).insertValue(pqxx::from_string<int16_t>(value));
85 break;
86 case ExternalResultDescription::ValueType::vtInt16:
87 assert_cast<ColumnInt16 &>(column).insertValue(pqxx::from_string<int16_t>(value));
88 break;
89 case ExternalResultDescription::ValueType::vtInt32:
90 assert_cast<ColumnInt32 &>(column).insertValue(pqxx::from_string<int32_t>(value));
91 break;
92 case ExternalResultDescription::ValueType::vtInt64:
93 assert_cast<ColumnInt64 &>(column).insertValue(pqxx::from_string<int64_t>(value));
94 break;
95 case ExternalResultDescription::ValueType::vtFloat32:
96 assert_cast<ColumnFloat32 &>(column).insertValue(pqxx::from_string<float>(value));
97 break;
98 case ExternalResultDescription::ValueType::vtFloat64:
99 assert_cast<ColumnFloat64 &>(column).insertValue(pqxx::from_string<double>(value));
100 break;
101 case ExternalResultDescription::ValueType::vtEnum8:[[fallthrough]];
102 case ExternalResultDescription::ValueType::vtEnum16:[[fallthrough]];
103 case ExternalResultDescription::ValueType::vtFixedString:[[fallthrough]];
104 case ExternalResultDescription::ValueType::vtString:
105 assert_cast<ColumnString &>(column).insertData(value.data(), value.size());
106 break;
107 case ExternalResultDescription::ValueType::vtUUID:
108 assert_cast<ColumnUInt128 &>(column).insert(parse<UUID>(value.data(), value.size()));
109 break;
110 case ExternalResultDescription::ValueType::vtDate:
111 assert_cast<ColumnUInt16 &>(column).insertValue(UInt16{LocalDate{std::string(value)}.getDayNum()});
112 break;
113 case ExternalResultDescription::ValueType::vtDate32:

Callers 2

insertValueMethod · 0.85
readImplMethod · 0.85

Calls 15

readDateTimeTextFunction · 0.85
parse_valueFunction · 0.85
getDayNumMethod · 0.80
getExtendedDayNumMethod · 0.80
ExceptionClass · 0.50
maxFunction · 0.50
ArrayClass · 0.50
insertValueMethod · 0.45
insertDataMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected