InfluxQL v0.2.0 InfluxQL.Quote View Source

InfluxQL element quoting module.

Link to this section Summary

Functions

Quotes an identifier for use in a query

Quotes a value for use in a query

Link to this section Functions

Link to this function

identifier(identifier) View Source
identifier(term()) :: String.t()

Quotes an identifier for use in a query.

Examples

iex> identifier(:from_atom)
"from_atom"

iex> identifier("unquoted")
"unquoted"

iex> identifier("unquoted_100")
"unquoted_100"

iex> identifier("_unquoted")
"_unquoted"

iex> identifier("100quotes")
"\"100quotes\""

iex> identifier("quotes for whitespace")
"\"quotes for whitespace\""

iex> identifier("dáshes-and.stüff")
"\"dáshes-and.stüff\""

## Invalid identifier types

iex> identifier(%{key: :value})
** (ArgumentError) invalid InfluxQL identifier: %{key: :value}

iex> identifier({:key, :value})
** (ArgumentError) invalid InfluxQL identifier: {:key, :value}

iex> identifier(<<1::4>>)
** (ArgumentError) invalid InfluxQL identifier: <<1::size(4)>>

InfluxQL injection prevention

iex> identifier(~S(wasnot"nice))
~S("wasnot\"nice")

Quotes a value for use in a query.

Examples

iex> value(100)
"100"

iex> value(:foo)
"'foo'"

iex> value(false)
"false"

iex> value(nil)
"''"

iex> value("stringy")
"'stringy'"

iex> value('charlisty')
"'charlisty'"

## Invalid value types

iex> value(%{key: :value})
** (ArgumentError) invalid InfluxQL value: %{key: :value}

iex> value({:key, :value})
** (ArgumentError) invalid InfluxQL value: {:key, :value}

iex> value(<<1::4>>)
** (ArgumentError) invalid InfluxQL value: <<1::size(4)>>

InfluxQL injection prevention

iex> value("wasn't nice")
~S('wasn\'t nice')