MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / insertValue

Method insertValue

src/Processors/Sources/SQLiteSource.cpp:150–272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

148}
149
150void SQLiteSource::insertValue(IColumn & column, ExternalResultDescription::ValueType type, int idx, const IDataType & data_type)
151{
152 switch (type)
153 {
154 case ValueType::vtUInt8:
155 assert_cast<ColumnUInt8 &>(column).insertValue(static_cast<UInt8>(sqlite3_column_int(compiled_statement.get(), idx)));
156 break;
157 case ValueType::vtUInt16:
158 assert_cast<ColumnUInt16 &>(column).insertValue(static_cast<UInt16>(sqlite3_column_int(compiled_statement.get(), idx)));
159 break;
160 case ValueType::vtUInt32:
161 assert_cast<ColumnUInt32 &>(column).insertValue(static_cast<UInt32>(sqlite3_column_int64(compiled_statement.get(), idx)));
162 break;
163 case ValueType::vtUInt64:
164 /// There is no uint64 in sqlite3, only int and int64
165 assert_cast<ColumnUInt64 &>(column).insertValue(sqlite3_column_int64(compiled_statement.get(), idx));
166 break;
167 case ValueType::vtInt8:
168 assert_cast<ColumnInt8 &>(column).insertValue(static_cast<Int8>(sqlite3_column_int(compiled_statement.get(), idx)));
169 break;
170 case ValueType::vtInt16:
171 assert_cast<ColumnInt16 &>(column).insertValue(static_cast<Int16>(sqlite3_column_int(compiled_statement.get(), idx)));
172 break;
173 case ValueType::vtInt32:
174 assert_cast<ColumnInt32 &>(column).insertValue(sqlite3_column_int(compiled_statement.get(), idx));
175 break;
176 case ValueType::vtInt64:
177 assert_cast<ColumnInt64 &>(column).insertValue(sqlite3_column_int64(compiled_statement.get(), idx));
178 break;
179 case ValueType::vtFloat32:
180 assert_cast<ColumnFloat32 &>(column).insertValue(static_cast<Float32>(sqlite3_column_double(compiled_statement.get(), idx)));
181 break;
182 case ValueType::vtFloat64:
183 assert_cast<ColumnFloat64 &>(column).insertValue(sqlite3_column_double(compiled_statement.get(), idx));
184 break;
185 case ValueType::vtEnum8:
186 {
187 const char * data = reinterpret_cast<const char *>(sqlite3_column_text(compiled_statement.get(), idx));
188 assert_cast<ColumnInt8 &>(column).insertValue(
189 static_cast<Int8>(assert_cast<const DataTypeEnum<Int8> &>(data_type).castToValue(data).safeGet<Int8>()));
190 break;
191 }
192 case ValueType::vtEnum16:
193 {
194 const char * data = reinterpret_cast<const char *>(sqlite3_column_text(compiled_statement.get(), idx));
195 assert_cast<ColumnInt16 &>(column).insertValue(
196 static_cast<Int16>(assert_cast<const DataTypeEnum<Int16> &>(data_type).castToValue(data).safeGet<Int16>()));
197 break;
198 }
199 case ValueType::vtString:
200 {
201 const char * data = reinterpret_cast<const char *>(sqlite3_column_text(compiled_statement.get(), idx));
202 int len = sqlite3_column_bytes(compiled_statement.get(), idx);
203 assert_cast<ColumnString &>(column).insertData(data, len);
204 break;
205 }
206 case ValueType::vtDate:
207 {

Callers 15

insertValueFunction · 0.45
makeDistinctKeyChunkFunction · 0.45
makeSortedGroupedChunkFunction · 0.45
oneColumnSourceFunction · 0.45
SingleValueSourceMethod · 0.45
readGeoJSONPositionFunction · 0.45
checkAndInsertNullableFunction · 0.45
insertIntegerFunction · 0.45
insertStringFunction · 0.45
insertFloat32Function · 0.45
insertFloat64Function · 0.45
insertUUIDFunction · 0.45

Calls 9

string_viewClass · 0.85
readDateTextFunction · 0.85
readDateTimeTextFunction · 0.85
castToValueMethod · 0.80
getMethod · 0.45
insertDataMethod · 0.45
insertMethod · 0.45
deserializeWholeTextMethod · 0.45

Tested by 5

makeDistinctKeyChunkFunction · 0.36
makeSortedGroupedChunkFunction · 0.36
oneColumnSourceFunction · 0.36
SingleValueSourceMethod · 0.36
TESTFunction · 0.36