Skip to content

Invalid IPv6 value (CANNOT_PARSE_DOMAIN_VALUE_FROM_STRING) with subquery #35528

@maxmouchet

Description

@maxmouchet

Inclusion (IN/NOT IN) test does not work when the subquery returns IPv6 values.

Does it reproduce on recent release?

Yes, on version 22.3.2.

How to reproduce

On a stock Docker container (clickhouse/clickhouse-server:22):

CREATE TABLE IF NOT EXISTS test_ipv6 (a IPv6) ENGINE = MergeTree ORDER BY a;
INSERT INTO test_ipv6 VALUES ('::ffff:1.1.1.1'),('::ffff:2.2.2.2');
SELECT a FROM test_ipv6 FORMAT TabSeparated;
-- ::ffff:1.1.1.1
-- ::ffff:2.2.2.2
-- OK!

SELECT a FROM test_ipv6 WHERE a <= toIPv6('::ffff:1.1.1.1') FORMAT TabSeparated;
-- ::ffff:1.1.1.1
-- OK!

SELECT a
FROM test_ipv6
WHERE a IN (
    SELECT a
    FROM test_ipv6
    WHERE a <= toIPv6('::ffff:1.1.1.1')
);
-- Received exception from server (version 22.3.2):
-- Code: 441. DB::Exception: Received from localhost:9000. DB::Exception: Invalid IPv6 value: while executing 'FUNCTION in(a : 0, __set :: 1) -> in(a, _subquery9) UInt8 : 2'. (CANNOT_PARSE_DOMAIN_VALUE_FROM_STRING)

Expected behavior

The last query should work and return ::ffff:1.1.1.1.

Error message and/or stacktrace

Received exception from server (version 22.3.2):
Code: 441. DB::Exception: Received from localhost:9000. DB::Exception: Invalid IPv6 value: while executing 'FUNCTION in(a : 0, __set :: 1) -> in(a, _subquery9) UInt8 : 2'. (CANNOT_PARSE_DOMAIN_VALUE_FROM_STRING)

Additional context

  • Same issue with two different tables (e.g. test_ipv6_1 and test_ipv6_2).
  • Works on ClickHouse 21.

Metadata

Metadata

Assignees

Labels

bugConfirmed user-visible misbehaviour in official releasemajor

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions