mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-24 18:50:49 +00:00
Addition to prev. revision [#METR-19266].
This commit is contained in:
parent
3f9fc77e22
commit
81a08bcd87
@ -122,12 +122,25 @@ void DataTypeNullable::deserializeTextEscaped(IColumn & column, ReadBuffer & ist
|
||||
},
|
||||
[this, &istr] (IColumn & nested)
|
||||
{
|
||||
/// We need to place backslash back in front of istr.
|
||||
if (istr.position() != istr.buffer().begin())
|
||||
{
|
||||
/// We could step back to consume backslash again.
|
||||
--istr.position();
|
||||
nested_data_type->deserializeTextEscaped(nested, istr);
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Otherwise, we need to place backslash back in front of istr.
|
||||
ReadBuffer prefix(const_cast<char *>("\\"), 1, 0);
|
||||
ConcatReadBuffer prepended_istr(prefix, istr);
|
||||
|
||||
ReadBuffer prefix(const_cast<char *>("\\"), 1, 0);
|
||||
ConcatReadBuffer prepended_istr(prefix, istr);
|
||||
nested_data_type->deserializeTextEscaped(nested, prepended_istr);
|
||||
|
||||
nested_data_type->deserializeTextEscaped(nested, prepended_istr);
|
||||
/// Synchronise cursor position in original buffer.
|
||||
|
||||
if (prepended_istr.count() > 1)
|
||||
istr.position() = prepended_istr.position();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user