@Override
    public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
        try {
            info = ClickHouseJdbcUrlParser.parse(url, info).getProperties();
        } catch (Exception e) {
            log.error("Could not parse url {}", url, e);
        }

        List<DriverPropertyInfo> result = new ArrayList<>(ClickHouseClientOption.values().length * 2);
        for (ClickHouseClientOption option : ClickHouseClientOption.values()) {
            result.add(create(option, info));
        }

        // and then client-specific options
        for (ClickHouseOption option : clientSpecificOptions.values()) {
            result.add(create(option, info));
        }

        result.addAll(JdbcConfig.getDriverProperties());
        return result.toArray(new DriverPropertyInfo[0]);
    }
JDBC driver for ClickHouse. It takes a connection string like below for
connecting to ClickHouse server:
{@code jdbc:(ch|clickhouse)[:<protocol>]://[<user>[:<password>]@]<host>[:<port>][/<db>][?<parameter=value>,[<parameter=value]]][#<tag>[,<tag>]]}

<p>
For examples:
<ul>
<li>{@code jdbc:clickhouse://localhost:8123/system}</li>
<li>{@code jdbc:clickhouse://admin:password@localhost/system?socket_time=30}</li>
<li>{@code jdbc:clickhouse://localhost/system?protocol=grpc}</li>
</ul>
clickhouse-jdbc/src/main/java/com/clickhouse/jdbc/DriverV1.java