@SuppressWarnings("unchecked")
    public SelfT options(Properties options) {
        checkSealed();

        Map<ClickHouseOption, Serializable> m = new HashMap<>();
        m.putAll(this.options);

        if (options != null) {
            for (Entry<Object, Object> e : options.entrySet()) {
                Object key = e.getKey();
                Object value = e.getValue();
                if (key == null || value == null) {
                    continue;
                }

                ClickHouseClientOption o = ClickHouseClientOption.fromKey(key.toString());
                if (o != null) {
                    option(o, ClickHouseOption.fromString(value.toString(), o.getValueType()));
                    m.remove(o);
                }
            }
        }

        for (ClickHouseOption o : m.keySet()) {
            removeOption(o);
        }

        return (SelfT) this;
    }
Sets all options. {@code option} is for configuring client's behaviour, while
{@code setting} is for server.

@param options options
@return the request itself
clickhouse-client/src/main/java/com/clickhouse/client/ClickHouseRequest.java