Skip to content

Commit 436a844

Browse files
authored
YQ-3803 RD support Json columns without predicate (#11163)
1 parent 183361a commit 436a844

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

ydb/core/fq/libs/row_dispatcher/json_parser.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ struct TJsonParserBuffer {
7373
};
7474

7575
class TColumnParser {
76-
using TParser = std::function<void(simdjson::fallback::ondemand::value, NYql::NUdf::TUnboxedValue&)>;
76+
using TParser = std::function<void(simdjson::builtin::ondemand::value, NYql::NUdf::TUnboxedValue&)>;
7777

7878
public:
7979
const std::string Name;
@@ -97,7 +97,7 @@ class TColumnParser {
9797
}
9898
}
9999

100-
void ParseJsonValue(simdjson::fallback::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
100+
void ParseJsonValue(simdjson::builtin::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
101101
Parser(jsonValue, resultValue);
102102
NumberValues++;
103103
}
@@ -130,7 +130,7 @@ class TColumnParser {
130130
}
131131

132132
static TParser AddOptional(TParser parser) {
133-
return [parser](simdjson::fallback::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
133+
return [parser](simdjson::builtin::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
134134
parser(std::move(jsonValue), resultValue);
135135
if (resultValue) {
136136
resultValue = resultValue.MakeOptional();
@@ -140,9 +140,9 @@ class TColumnParser {
140140

141141
static TParser GetJsonValueParser(NYql::NUdf::EDataSlot dataSlot, bool optional) {
142142
const auto& typeInfo = NYql::NUdf::GetDataTypeInfo(dataSlot);
143-
return [dataSlot, optional, &typeInfo](simdjson::fallback::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
143+
return [dataSlot, optional, &typeInfo](simdjson::builtin::ondemand::value jsonValue, NYql::NUdf::TUnboxedValue& resultValue) {
144144
switch (jsonValue.type()) {
145-
case simdjson::fallback::ondemand::json_type::number: {
145+
case simdjson::builtin::ondemand::json_type::number: {
146146
try {
147147
switch (dataSlot) {
148148
case NYql::NUdf::EDataSlot::Int8:
@@ -155,7 +155,7 @@ class TColumnParser {
155155
resultValue = ParseJsonNumber<i32>(jsonValue.get_int64().value());
156156
break;
157157
case NYql::NUdf::EDataSlot::Int64:
158-
resultValue = NYql::NUdf::TUnboxedValuePod(jsonValue.get_int64().value());
158+
resultValue = ParseJsonNumber<i64>(jsonValue.get_int64().value());
159159
break;
160160

161161
case NYql::NUdf::EDataSlot::Uint8:
@@ -168,7 +168,7 @@ class TColumnParser {
168168
resultValue = ParseJsonNumber<ui32>(jsonValue.get_uint64().value());
169169
break;
170170
case NYql::NUdf::EDataSlot::Uint64:
171-
resultValue = NYql::NUdf::TUnboxedValuePod(jsonValue.get_uint64().value());
171+
resultValue = ParseJsonNumber<ui64>(jsonValue.get_uint64().value());
172172
break;
173173

174174
case NYql::NUdf::EDataSlot::Double:
@@ -187,7 +187,7 @@ class TColumnParser {
187187
break;
188188
}
189189

190-
case simdjson::fallback::ondemand::json_type::string: {
190+
case simdjson::builtin::ondemand::json_type::string: {
191191
const auto rawString = jsonValue.get_string().value();
192192
resultValue = NKikimr::NMiniKQL::ValueFromString(dataSlot, rawString);
193193
if (Y_UNLIKELY(!resultValue)) {
@@ -197,8 +197,8 @@ class TColumnParser {
197197
break;
198198
}
199199

200-
case simdjson::fallback::ondemand::json_type::array:
201-
case simdjson::fallback::ondemand::json_type::object: {
200+
case simdjson::builtin::ondemand::json_type::array:
201+
case simdjson::builtin::ondemand::json_type::object: {
202202
const auto rawJson = jsonValue.raw_json().value();
203203
if (Y_UNLIKELY(dataSlot != NYql::NUdf::EDataSlot::Json)) {
204204
throw yexception() << "found unexpected nested value (raw: '" << TruncateString(rawJson) << "'), expected data type " <<typeInfo.Name << ", please use Json type for nested values";
@@ -211,15 +211,15 @@ class TColumnParser {
211211
break;
212212
}
213213

214-
case simdjson::fallback::ondemand::json_type::boolean: {
214+
case simdjson::builtin::ondemand::json_type::boolean: {
215215
if (Y_UNLIKELY(dataSlot != NYql::NUdf::EDataSlot::Bool)) {
216216
throw yexception() << "found unexpected bool value, expected data type " << typeInfo.Name;
217217
}
218218
resultValue = NYql::NUdf::TUnboxedValuePod(jsonValue.get_bool().value());
219219
break;
220220
}
221221

222-
case simdjson::fallback::ondemand::json_type::null: {
222+
case simdjson::builtin::ondemand::json_type::null: {
223223
if (Y_UNLIKELY(!optional)) {
224224
throw yexception() << "found unexpected null value, expected non optional data type " << typeInfo.Name;
225225
}

0 commit comments

Comments
 (0)