mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 15:42:02 +00:00
Merge pull request #35039 from zzsmdfj/issue/#34890_fix_input_format_null_as_default_bug
to #34890_fix_input_format_null_as_default_bug
This commit is contained in:
commit
ed7b40253c
@ -187,7 +187,7 @@ void AddingDefaultsTransform::transform(Chunk & chunk)
|
|||||||
{
|
{
|
||||||
const String & column_name = column_def.name;
|
const String & column_name = column_def.name;
|
||||||
|
|
||||||
if (column_defaults.count(column_name) == 0)
|
if (column_defaults.count(column_name) == 0 || !res.has(column_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
size_t block_column_position = res.getPositionByName(column_name);
|
size_t block_column_position = res.getPositionByName(column_name);
|
||||||
|
@ -33,3 +33,9 @@ Values
|
|||||||
1 world 3 2019-07-23 [1,2,3] ('tuple',3.14)
|
1 world 3 2019-07-23 [1,2,3] ('tuple',3.14)
|
||||||
2 Hello 123 2019-06-19 [] ('test',2.71828)
|
2 Hello 123 2019-06-19 [] ('test',2.71828)
|
||||||
3 Hello 42 2019-06-19 [1,2,3] ('default',0.75)
|
3 Hello 42 2019-06-19 [1,2,3] ('default',0.75)
|
||||||
|
default_by_other_column
|
||||||
|
1 2 ('tuple',3)
|
||||||
|
10 10 ('default',2.5)
|
||||||
|
100 100 ('default',25)
|
||||||
|
100 100 ('default',25)
|
||||||
|
100 100 ('default',25)
|
||||||
|
@ -5,7 +5,9 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
|||||||
. "$CURDIR"/../shell_config.sh
|
. "$CURDIR"/../shell_config.sh
|
||||||
|
|
||||||
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS null_as_default";
|
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS null_as_default";
|
||||||
|
$CLICKHOUSE_CLIENT --query="DROP TABLE IF EXISTS default_by_other_column";
|
||||||
$CLICKHOUSE_CLIENT --query="CREATE TABLE null_as_default (i Int8, s String DEFAULT 'Hello', n UInt64 DEFAULT 42, d Date DEFAULT '2019-06-19', a Array(UInt8) DEFAULT [1, 2, 3], t Tuple(String, Float64) DEFAULT ('default', i / 4)) ENGINE = Memory";
|
$CLICKHOUSE_CLIENT --query="CREATE TABLE null_as_default (i Int8, s String DEFAULT 'Hello', n UInt64 DEFAULT 42, d Date DEFAULT '2019-06-19', a Array(UInt8) DEFAULT [1, 2, 3], t Tuple(String, Float64) DEFAULT ('default', i / 4)) ENGINE = Memory";
|
||||||
|
$CLICKHOUSE_CLIENT --query="CREATE TABLE default_by_other_column (a Float32 DEFAULT 100, b Float64 DEFAULT a, c Tuple(String, Float64) DEFAULT ('default', b / 4)) ENGINE = Memory";
|
||||||
|
|
||||||
echo 'CSV'
|
echo 'CSV'
|
||||||
echo '\N, 1, \N, "2019-07-22", "[10, 20, 30]", \N
|
echo '\N, 1, \N, "2019-07-22", "[10, 20, 30]", \N
|
||||||
@ -62,3 +64,12 @@ echo '(NULL, '\''1'\'', (null), '\''2019-07-22'\'', ([10, 20, 30]), (NuLl)),
|
|||||||
(3, null, (null), null, (null), (null))' | $CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO null_as_default VALUES";
|
(3, null, (null), null, (null), (null))' | $CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO null_as_default VALUES";
|
||||||
$CLICKHOUSE_CLIENT --query="SELECT * FROM null_as_default ORDER BY i";
|
$CLICKHOUSE_CLIENT --query="SELECT * FROM null_as_default ORDER BY i";
|
||||||
$CLICKHOUSE_CLIENT --query="DROP TABLE null_as_default";
|
$CLICKHOUSE_CLIENT --query="DROP TABLE null_as_default";
|
||||||
|
|
||||||
|
echo 'default_by_other_column'
|
||||||
|
$CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO default_by_other_column(c) VALUES(null)";
|
||||||
|
$CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO default_by_other_column(b, c) VALUES(null, null)";
|
||||||
|
$CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO default_by_other_column(a, b, c) VALUES(null, null, null)";
|
||||||
|
$CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO default_by_other_column(a) VALUES(10)";
|
||||||
|
$CLICKHOUSE_CLIENT --input_format_null_as_default=1 --query="INSERT INTO default_by_other_column(a, b, c) VALUES(1, 2, ('tuple', 3))";
|
||||||
|
$CLICKHOUSE_CLIENT --query="SELECT * FROM default_by_other_column ORDER BY a";
|
||||||
|
$CLICKHOUSE_CLIENT --query="DROP TABLE default_by_other_column";
|
||||||
|
@ -2,6 +2,7 @@ x UInt32 DEFAULT y
|
|||||||
y UInt32 EPHEMERAL 17
|
y UInt32 EPHEMERAL 17
|
||||||
z UInt32 DEFAULT 5
|
z UInt32 DEFAULT 5
|
||||||
1 2
|
1 2
|
||||||
|
17 2
|
||||||
17 5
|
17 5
|
||||||
7 5
|
7 5
|
||||||
21 5
|
21 5
|
||||||
|
@ -11,9 +11,10 @@ SELECT * FROM t_ephemeral_02205_1;
|
|||||||
|
|
||||||
TRUNCATE TABLE t_ephemeral_02205_1;
|
TRUNCATE TABLE t_ephemeral_02205_1;
|
||||||
|
|
||||||
# Attempt to use ephemeral through default of ordinary column should end up with error 10 -
|
INSERT INTO t_ephemeral_02205_1 VALUES (DEFAULT, 2);
|
||||||
# ephemeral only considered when explicitly mentioned in the columns list
|
SELECT * FROM t_ephemeral_02205_1;
|
||||||
INSERT INTO t_ephemeral_02205_1 VALUES (DEFAULT, 2); -- { clientError 10 }
|
|
||||||
|
TRUNCATE TABLE t_ephemeral_02205_1;
|
||||||
|
|
||||||
# Test INSERT using ephemerals default
|
# Test INSERT using ephemerals default
|
||||||
INSERT INTO t_ephemeral_02205_1 (x, y) VALUES (DEFAULT, DEFAULT);
|
INSERT INTO t_ephemeral_02205_1 (x, y) VALUES (DEFAULT, DEFAULT);
|
||||||
|
Loading…
Reference in New Issue
Block a user