mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Allow to parse BOM in TSV if the first column cannot contain BOM in its value
This commit is contained in:
parent
8df64543b7
commit
e8a9c7d518
@ -126,7 +126,7 @@ void TabSeparatedRowInputFormat::fillUnreadColumnsWithDefaults(MutableColumns &
|
|||||||
|
|
||||||
void TabSeparatedRowInputFormat::readPrefix()
|
void TabSeparatedRowInputFormat::readPrefix()
|
||||||
{
|
{
|
||||||
if (with_names || with_types)
|
if (with_names || with_types || data_types.at(0)->textCanContainOnlyValidUTF8())
|
||||||
{
|
{
|
||||||
/// In this format, we assume that column name or type cannot contain BOM,
|
/// In this format, we assume that column name or type cannot contain BOM,
|
||||||
/// so, if format has header,
|
/// so, if format has header,
|
||||||
|
2
tests/queries/0_stateless/01258_bom_tsv.reference
Normal file
2
tests/queries/0_stateless/01258_bom_tsv.reference
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
1 2 3
|
||||||
|
4 5 6
|
14
tests/queries/0_stateless/01258_bom_tsv.sh
Executable file
14
tests/queries/0_stateless/01258_bom_tsv.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||||
|
. $CURDIR/../shell_config.sh
|
||||||
|
|
||||||
|
# BOM can be parsed if TSV format has first column that cannot contain arbitrary binary data (such as integer)
|
||||||
|
# In contrast, BOM cannot be parsed if the first column in String as it can contain arbitrary binary data.
|
||||||
|
|
||||||
|
echo 'DROP TABLE IF EXISTS bom' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}" --data-binary @-
|
||||||
|
echo 'CREATE TABLE bom (a UInt8, b UInt8, c UInt8) ENGINE = Memory' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}" --data-binary @-
|
||||||
|
echo -ne '1\t2\t3\n' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}&query=INSERT+INTO+bom+FORMAT+TSV" --data-binary @-
|
||||||
|
echo -ne '\xEF\xBB\xBF4\t5\t6\n' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}&query=INSERT+INTO+bom+FORMAT+TSV" --data-binary @-
|
||||||
|
echo 'SELECT * FROM bom ORDER BY a' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}" --data-binary @-
|
||||||
|
echo 'DROP TABLE bom' | ${CLICKHOUSE_CURL} -sS "${CLICKHOUSE_URL}" --data-binary @-
|
Loading…
Reference in New Issue
Block a user