mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 17:41:59 +00:00
Merge pull request #17525 from ClickHouse/null-as-default-default
Attempt to make NULL as default by default
This commit is contained in:
commit
34e4ace029
@ -433,7 +433,7 @@ class IColumn;
|
||||
M(Bool, input_format_defaults_for_omitted_fields, true, "For input data calculate default expressions for omitted fields (it works for JSONEachRow, CSV and TSV formats).", IMPORTANT) \
|
||||
M(Bool, input_format_tsv_empty_as_default, false, "Treat empty fields in TSV input as default values.", 0) \
|
||||
M(Bool, input_format_tsv_enum_as_number, false, "Treat inserted enum values in TSV formats as enum indices \\N", 0) \
|
||||
M(Bool, input_format_null_as_default, false, "For text input formats initialize null fields with default values if data type of this field is not nullable", 0) \
|
||||
M(Bool, input_format_null_as_default, true, "For text input formats initialize null fields with default values if data type of this field is not nullable", 0) \
|
||||
\
|
||||
M(DateTimeInputFormat, date_time_input_format, FormatSettings::DateTimeInputFormat::Basic, "Method to read DateTime from text input formats. Possible values: 'basic' and 'best_effort'.", 0) \
|
||||
M(DateTimeOutputFormat, date_time_output_format, FormatSettings::DateTimeOutputFormat::Simple, "Method to write DateTime to text output. Possible values: 'simple', 'iso', 'unix_timestamp'.", 0) \
|
||||
|
@ -3,6 +3,8 @@ DROP TABLE IF EXISTS values_template;
|
||||
DROP TABLE IF EXISTS values_template_nullable;
|
||||
DROP TABLE IF EXISTS values_template_fallback;
|
||||
|
||||
SET input_format_null_as_default = 0;
|
||||
|
||||
CREATE TABLE type_names (n UInt8, s1 String, s2 String, s3 String) ENGINE=Memory;
|
||||
CREATE TABLE values_template (d Date, s String, u UInt8, i Int64, f Float64, a Array(UInt8)) ENGINE = Memory;
|
||||
CREATE TABLE values_template_nullable (d Date, s Nullable(String), u Nullable(UInt8), a Array(Nullable(Float32))) ENGINE = Memory;
|
||||
|
@ -1,5 +1,6 @@
|
||||
DROP TABLE IF EXISTS test_table;
|
||||
DROP TABLE IF EXISTS test_table_2;
|
||||
SET input_format_null_as_default = 0;
|
||||
SELECT 1;
|
||||
/* Check JSONCompactEachRow Output */
|
||||
CREATE TABLE test_table (value UInt8, name String) ENGINE = MergeTree() ORDER BY value;
|
||||
|
@ -21,7 +21,7 @@ echo '2020-04-21 12:34:56, "Hello", 12345678,1' | "${PARSER[@]}" 2>&1| grep "ERR
|
||||
echo '2020-04-21 12:34:56,,123Hello' | "${PARSER[@]}" 2>&1| grep "ERROR"
|
||||
echo -e '2020-04-21 12:34:56, "Hello", 12345678\n\n\n\n ' | "${PARSER[@]}" 2>&1| grep "ERROR" || echo "OK"
|
||||
|
||||
PARSER=(${CLICKHOUSE_LOCAL} --query 'SELECT t, s, d FROM table' --structure 't DateTime, s String, d Decimal64(10)' --input-format TSV)
|
||||
PARSER=(${CLICKHOUSE_LOCAL} --input_format_null_as_default=0 --query 'SELECT t, s, d FROM table' --structure 't DateTime, s String, d Decimal64(10)' --input-format TSV)
|
||||
echo -e '2020-04-21 12:34:56\tHello\t12345678' | "${PARSER[@]}" 2>&1| grep "ERROR" || echo -e "\nTSV"
|
||||
echo -e '2020-04-21 12:34:56\tHello\t123456789' | "${PARSER[@]}" 2>&1| grep "ERROR"
|
||||
echo -e '2020-04-21 12:34:567\tHello\t123456789' | "${PARSER[@]}" 2>&1| grep "ERROR"
|
||||
|
@ -23,7 +23,7 @@ echo "DROP TABLE IF EXISTS test_table;" | ${CLICKHOUSE_CLIENT}
|
||||
echo "SELECT 5;" | ${CLICKHOUSE_CLIENT}
|
||||
# Check JSONStringsEachRow Input
|
||||
echo "CREATE TABLE test_table (v1 String, v2 UInt8, v3 DEFAULT v2 * 16, v4 UInt8 DEFAULT 8) ENGINE = MergeTree() ORDER BY v2;" | ${CLICKHOUSE_CLIENT}
|
||||
echo 'INSERT INTO test_table FORMAT JSONStringsEachRow {"v1": "first", "v2": "1", "v3": "2", "v4": "NULL"} {"v1": "second", "v2": "2", "v3": "null", "v4": "6"};' | ${CLICKHOUSE_CLIENT}
|
||||
echo 'INSERT INTO test_table FORMAT JSONStringsEachRow {"v1": "first", "v2": "1", "v3": "2", "v4": "NULL"} {"v1": "second", "v2": "2", "v3": "null", "v4": "6"};' | ${CLICKHOUSE_CLIENT} --input_format_null_as_default=0
|
||||
echo "SELECT * FROM test_table FORMAT JSONStringsEachRow;" | ${CLICKHOUSE_CLIENT}
|
||||
echo "TRUNCATE TABLE test_table;" | ${CLICKHOUSE_CLIENT}
|
||||
echo "SELECT 6;" | ${CLICKHOUSE_CLIENT}
|
||||
|
@ -1,5 +1,6 @@
|
||||
DROP TABLE IF EXISTS test_table;
|
||||
DROP TABLE IF EXISTS test_table_2;
|
||||
SET input_format_null_as_default = 0;
|
||||
SELECT 1;
|
||||
/* Check JSONCompactStringsEachRow Output */
|
||||
CREATE TABLE test_table (value UInt8, name String) ENGINE = MergeTree() ORDER BY value;
|
||||
|
@ -0,0 +1 @@
|
||||
\N World
|
@ -0,0 +1,6 @@
|
||||
-- Check that "null as default" applies only if type is not Nullable.
|
||||
|
||||
SET input_format_null_as_default = 1;
|
||||
CREATE TEMPORARY TABLE t (x Nullable(String) DEFAULT 'Hello', y String DEFAULT 'World');
|
||||
INSERT INTO t VALUES (NULL, NULL);
|
||||
SELECT * FROM t;
|
Loading…
Reference in New Issue
Block a user