Skip to content

Commit eafa097

Browse files
authored
Narrow ClickHouse settings types (#405)
* narrow ClickHouse settings types * address settings type review * cleanup
1 parent df3ee53 commit eafa097

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

lib/ch.ex

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,25 @@ defmodule Ch do
9494
"""
9595
@type query_params :: %{String.t() => term}
9696

97+
@typedoc "A ClickHouse setting name."
98+
@type setting_key :: String.t() | atom
99+
100+
@typedoc "A ClickHouse setting value."
101+
@type setting_value :: String.t() | number | boolean | atom
102+
103+
@typedoc "ClickHouse settings accepted by a query."
104+
@type settings :: %{optional(setting_key) => setting_value} | [{setting_key, setting_value}]
105+
97106
@typedoc """
98107
Query execution options.
99108
100109
* `:timeout` - Request timeout, defaults to 30 seconds.
101-
* `:settings` - An enumerable (usually a map or a keyword list) added to the URL query string.
110+
* `:settings` - A map or list of pairs added to the URL query string.
102111
* `:headers` - Headers passed directly to Mint.
103112
"""
104113
@type query_option ::
105114
{:timeout, timeout}
106-
| {:settings, Enumerable.t()}
115+
| {:settings, settings}
107116
| {:headers, Mint.Types.headers()}
108117

109118
@typedoc """

0 commit comments

Comments
 (0)