ExScylla.Statement.Prepared (ex_scylla v0.5.1)

Wrapper around rust module See rust documentation for more usage details: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html

Summary

Functions

Types

@type msg() :: String.t()
@type opaque() :: any()

Functions

Link to this function

compute_partition_key(ps, bound_values)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.compute_partition_key

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> p_key = Prepared.compute_partition_key(ps, [{:text, "hi"}, {:int, 123}])
iex> true = is_binary(p_key)
Link to this function

disable_paging(ps)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.disable_paging

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.disable_paging(ps)
iex> true = is_reference(ps)
Link to this function

get_consistency(ps)

@spec get_consistency(ExScylla.Types.prepared_statement()) ::
  ExScylla.Types.consitency() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_consistency

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> nil = Prepared.get_consistency(ps)
iex> ps = Prepared.set_consistency(ps, :quorum)
iex> :quorum = Prepared.get_consistency(ps)
Link to this function

get_execution_profile_handle(ps)

@spec get_execution_profile_handle(ExScylla.Types.prepared_statement()) ::
  ExScylla.Types.execution_profile_handle() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_execution_profile_handle

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> eph = ExecutionProfile.builder()
...>          |> ExecutionProfileBuilder.build()
...>          |> ExecutionProfile.into_handle()
iex> ps |> Prepared.set_execution_profile_handle(eph)
...>    |> Prepared.get_execution_profile_handle()
...>    |> is_reference()
true

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_id

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> id = Prepared.get_id(ps)
iex> true = is_binary(id)
Link to this function

get_is_idempotent(ps)

@spec get_is_idempotent(ExScylla.Types.prepared_statement()) :: boolean()

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_is_idempotent

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> false = Prepared.get_is_idempotent(ps)
Link to this function

get_keyspace_name(ps)

@spec get_keyspace_name(ExScylla.Types.prepared_statement()) :: String.t() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_keyspace_name

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> "test" = Prepared.get_keyspace_name(ps)
Link to this function

get_page_size(ps)

@spec get_page_size(ExScylla.Types.prepared_statement()) :: pos_integer() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_page_size

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> nil = Prepared.get_page_size(ps)
iex> ps = Prepared.set_page_size(ps, 10)
iex> 10 = Prepared.get_page_size(ps)
Link to this function

get_prepare_tracing_ids(ps)

@spec get_prepare_tracing_ids(ExScylla.Types.prepared_statement()) :: [binary()]

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_prepare_tracing_ids

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> [] = Prepared.get_prepare_tracing_ids(ps)
Link to this function

get_prepared_metadata(ps)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_prepared_metadata

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> %PreparedMetadata{} = Prepared.get_prepared_metadata(ps)
Link to this function

get_request_timeout(ps)

@spec get_request_timeout(ExScylla.Types.prepared_statement()) ::
  ExScylla.Types.duration_ms() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_request_timeout

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps |> Prepared.set_request_timeout(15000)
...>    |> Prepared.get_request_timeout()
15000
Link to this function

get_serial_consistency(ps)

@spec get_serial_consistency(ExScylla.Types.prepared_statement()) ::
  ExScylla.Types.serial_consistency() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_serial_consistency

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> local_serial = Prepared.get_serial_consistency(ps)
iex> true = is_atom(local_serial)
Link to this function

get_statement(ps)

@spec get_statement(ExScylla.Types.prepared_statement()) :: String.t()

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_statement

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> Prepared.get_statement(ps)
"SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;"
Link to this function

get_table_name(ps)

@spec get_table_name(ExScylla.Types.prepared_statement()) :: String.t() | nil

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_table_name

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> Prepared.get_table_name(ps)
"ps_doc"
Link to this function

get_timestamp(ps)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_timestamp

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> nil = Prepared.get_timestamp(ps)
iex> ts_micro = :os.system_time(:microsecond)
iex> ps = Prepared.set_timestamp(ps, ts_micro)
iex> ^ts_micro = Prepared.get_timestamp(ps)
Link to this function

get_tracing(ps)

@spec get_tracing(ExScylla.Types.prepared_statement()) :: boolean()

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.get_tracing

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> false = Prepared.get_tracing(ps)
Link to this function

is_confirmed_lwt(ps)

@spec is_confirmed_lwt(ExScylla.Types.prepared_statement()) :: boolean()

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.is_confirmed_lwt

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps |> Prepared.is_confirmed_lwt()
false
Link to this function

is_token_aware(ps)

@spec is_token_aware(ExScylla.Types.prepared_statement()) :: boolean()

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.is_token_aware

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> true = Prepared.is_token_aware(ps)
Link to this function

set_consistency(ps, consistency)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_consistency

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_consistency(ps, :one)
iex> true = is_reference(ps)
Link to this function

set_execution_profile_handle(ps, profile_handle)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_execution_profile_handle

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> eph = ExecutionProfile.builder()
...>          |> ExecutionProfileBuilder.build()
...>          |> ExecutionProfile.into_handle()
iex> ps |> Prepared.set_execution_profile_handle(eph)
...>    |> is_reference()
true
Link to this function

set_is_idempotent(ps, is_idempotent)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_is_idempotent

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_is_idempotent(ps, true)
iex> true = is_reference(ps)
Link to this function

set_page_size(ps, page_size)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_page_size

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_page_size(ps, 10)
iex> true = is_reference(ps)
Link to this function

set_request_timeout(ps, timeout_ms)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_request_timeout

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps |> Prepared.set_request_timeout(15000)
...>    |> Prepared.get_request_timeout()
15000
Link to this function

set_serial_consistency(ps, sc)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_serial_consistency

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_serial_consistency(ps, :local_serial)
iex> true = is_reference(ps)
Link to this function

set_timestamp(ps, timestamp_micros)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_timestamp

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_timestamp(ps, :os.system_time(:microsecond))
iex> true = is_reference(ps)
Link to this function

set_tracing(ps, should_trace)

See: https://docs.rs/scylla/0.9.0/scylla/statement/prepared_statement/struct.PreparedStatement.html#method.set_tracing

Example

iex> node = Application.get_env(:ex_scylla, :test_node, "127.0.0.1:9042")
iex> {:ok, session} = SessionBuilder.new()
...>                  |> SessionBuilder.known_node(node)
...>                  |> SessionBuilder.build()
iex> {:ok, ps} = Session.prepare(session, "SELECT * FROM test.ps_doc WHERE a = ? AND b = ?;")
iex> ps = Prepared.set_tracing(ps, true)
iex> true = is_reference(ps)