Skip to content

Commit

Permalink
blah
Browse files Browse the repository at this point in the history
  • Loading branch information
jkartseva committed Mar 21, 2024
1 parent dcaa712 commit 837193f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/Functions/FunctionsJSON.h
Original file line number Diff line number Diff line change
Expand Up @@ -865,11 +865,9 @@ struct JSONExtractTree
explicit LowCardinalityFixedStringNode(const size_t fixed_length_) : fixed_length(fixed_length_) { }
bool insertResultToColumn(IColumn & dest, const Element & element) override
{
// If element is an object we delegate the insertion to JSONExtractRawImpl
if (element.isObject())
// For types other than string, delegate the insertion to JSONExtractRawImpl.
if (!element.isString())
return JSONExtractRawImpl<JSONParser>::insertResultToLowCardinalityFixedStringColumn(dest, element, fixed_length);
else if (!element.isString())
return false;

auto str = element.getString();
if (str.size() > fixed_length)
Expand Down Expand Up @@ -1484,9 +1482,6 @@ class JSONExtractRawImpl
// We use insertResultToLowCardinalityFixedStringColumn in case we are inserting raw data in a Low Cardinality FixedString column
static bool insertResultToLowCardinalityFixedStringColumn(IColumn & dest, const Element & element, size_t fixed_length)
{
if (element.getObject().size() > fixed_length)
return false;

ColumnFixedString::Chars chars;
WriteBufferFromVector<ColumnFixedString::Chars> buf(chars, AppendModeTag());
traverse(element, buf);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,10 @@
\0\0\0\0\0
131231
131231
1234
1234
{"b":131231}
\0\0\0\0
1234567890
18446744073709551615
-9223372036854775807
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,10 @@ SELECT JSONExtract('{"a": 123456}', 'a', 'FixedString(5)');
SELECT JSONExtract('{"a": 123456}', 'a', 'FixedString(6)');
SELECT JSONExtract(materialize('{"a": 131231}'), 'a', 'LowCardinality(FixedString(5))') FROM numbers(2);
SELECT JSONExtract(materialize('{"a": 131231}'), 'a', 'LowCardinality(FixedString(6))') FROM numbers(2);
SELECT JSONExtract(materialize('{"a": 131231, "b": 1234}'), 'b', 'LowCardinality(FixedString(4))');
SELECT JSONExtract(materialize('{"a": 131231, "b": "1234"}'), 'b', 'LowCardinality(FixedString(4))');
SELECT JSONExtract(materialize('{"a": {"b": 131231} }'), 'a', 'LowCardinality(FixedString(12))');
SELECT JSONExtract(materialize('{"a": 131231, "b": 1234567890}'), 'b', 'LowCardinality(FixedString(4))');
SELECT JSONExtract(materialize('{"a": 131231, "b": 1234567890}'), 'b', 'LowCardinality(FixedString(10))');
SELECT JSONExtract(materialize('{"a": 18446744073709551615}'), 'a', 'LowCardinality(FixedString(20))');
SELECT JSONExtract(materialize('{"a": -9223372036854775807}'), 'a', 'LowCardinality(FixedString(20))');

0 comments on commit 837193f

Please sign in to comment.