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
Types
Link to this type
msg()
@type msg() :: String.t()
Link to this type
opaque()
@type opaque() :: any()
Functions
Link to this function
compute_partition_key(ps, bound_values)
@spec compute_partition_key( ExScylla.Types.prepared_statement(), ExScylla.Types.values() ) :: {:ok, binary()} | ExScylla.Types.parse_error() | ExScylla.Types.Errors.SerializeValuesError.t() | ExScylla.Types.Errors.PartitionKeyError.t()
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)
@spec disable_paging(ExScylla.Types.prepared_statement()) :: ExScylla.Types.prepared_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> 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
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
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
Link to this function
get_id(ps)
@spec get_id(ExScylla.Types.prepared_statement()) :: binary()
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()
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
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
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()]
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)
@spec get_prepared_metadata(ExScylla.Types.prepared_statement()) :: ExScylla.Types.PreparedMetadata.t()
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
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
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()
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
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)
@spec get_timestamp(ExScylla.Types.prepared_statement()) :: ExScylla.Types.ts_micros() | nil
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()
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()
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()
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)
@spec set_consistency( ExScylla.Types.prepared_statement(), ExScylla.Types.consistency() ) :: ExScylla.Types.prepared_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> ps = Prepared.set_consistency(ps, :one)
iex> true = is_reference(ps)
Link to this function
set_execution_profile_handle(ps, profile_handle)
@spec set_execution_profile_handle( ExScylla.Types.prepared_statement(), ExScylla.Types.execution_profile_handle() | nil ) :: ExScylla.Types.prepared_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> 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)
@spec set_is_idempotent(ExScylla.Types.prepared_statement(), boolean()) :: ExScylla.Types.prepared_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> ps = Prepared.set_is_idempotent(ps, true)
iex> true = is_reference(ps)
Link to this function
set_page_size(ps, page_size)
@spec set_page_size(ExScylla.Types.prepared_statement(), pos_integer()) :: ExScylla.Types.prepared_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> ps = Prepared.set_page_size(ps, 10)
iex> true = is_reference(ps)
Link to this function
set_request_timeout(ps, timeout_ms)
@spec set_request_timeout( ExScylla.Types.prepared_statement(), ExScylla.Types.duration_ms() | nil ) :: ExScylla.Types.prepared_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> ps |> Prepared.set_request_timeout(15000)
...> |> Prepared.get_request_timeout()
15000
Link to this function
set_serial_consistency(ps, sc)
@spec set_serial_consistency( ExScylla.Types.prepared_statement(), ExScylla.Types.serial_consistency() | nil ) :: ExScylla.Types.prepared_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> ps = Prepared.set_serial_consistency(ps, :local_serial)
iex> true = is_reference(ps)
Link to this function
set_timestamp(ps, timestamp_micros)
@spec set_timestamp( ExScylla.Types.prepared_statement(), ExScylla.Types.ts_micros() | nil ) :: ExScylla.Types.prepared_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> ps = Prepared.set_timestamp(ps, :os.system_time(:microsecond))
iex> true = is_reference(ps)
Link to this function
set_tracing(ps, should_trace)
@spec set_tracing(ExScylla.Types.prepared_statement(), boolean()) :: ExScylla.Types.prepared_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> ps = Prepared.set_tracing(ps, true)
iex> true = is_reference(ps)