The request for ExecuteSql][google.spanner.v1.Spanner.ExecuteSql]
and
ExecuteStreamingSql][google.spanner.v1.Spanner.ExecuteStreamingSql].
Attributes
Name
Description
session
str
Required. The session in which the SQL query
should be performed.
transaction
google.cloud.spanner_v1.types.TransactionSelector
The transaction to use.
For queries, if none is provided, the default is
a temporary read-only transaction with strong
concurrency.
Standard DML statements require a read-write
transaction. To protect against replays,
single-use transactions are not supported. The
caller must either supply an existing
transaction ID or begin a new transaction.
Partitioned DML requires an existing Partitioned
DML transaction ID.
sql
str
Required. The SQL string.
params
google.protobuf.struct_pb2.Struct
Parameter names and values that bind to placeholders in the
SQL string.
A parameter placeholder consists of the @ character
followed by the parameter name (for example,
@firstName). Parameter names must conform to the naming
requirements of identifiers as specified at
https://cloud.google.com/spanner/docs/lexical#identifiers.
Parameters can appear anywhere that a literal value is
expected. The same parameter name can be used more than
once, for example:
"WHERE id > @msg_id AND id < @msg_id="" +="">
It is an error to execute a SQL statement with unbound
parameters.
param_types
MutableMapping[str, google.cloud.spanner_v1.types.Type]
It is not always possible for Cloud Spanner to infer the
right SQL type from a JSON value. For example, values of
type BYTES and values of type STRING both appear in
params][google.spanner.v1.ExecuteSqlRequest.params] as JSON
strings.
In these cases, param_types can be used to specify the
exact SQL type for some or all of the SQL statement
parameters. See the definition of
Type][google.spanner.v1.Type] for more information about
SQL types.
resume_token
bytes
If this request is resuming a previously interrupted SQL
statement execution, resume_token should be copied from
the last
PartialResultSet][google.spanner.v1.PartialResultSet]
yielded before the interruption. Doing this enables the new
SQL statement execution to resume where the last one left
off. The rest of the request parameters must exactly match
the request that yielded this token.
query_mode
google.cloud.spanner_v1.types.ExecuteSqlRequest.QueryMode
Used to control the amount of debugging information returned
in ResultSetStats][google.spanner.v1.ResultSetStats]. If
partition_token][google.spanner.v1.ExecuteSqlRequest.partition_token]
is set,
query_mode][google.spanner.v1.ExecuteSqlRequest.query_mode]
can only be set to
QueryMode.NORMAL][google.spanner.v1.ExecuteSqlRequest.QueryMode.NORMAL].
partition_token
bytes
If present, results will be restricted to the specified
partition previously created using PartitionQuery(). There
must be an exact match for the values of fields common to
this message and the PartitionQueryRequest message used to
create this partition_token.
seqno
int
A per-transaction sequence number used to
identify this request. This field makes each
request idempotent such that if the request is
received multiple times, at most one will
succeed.
The sequence number must be monotonically
increasing within the transaction. If a request
arrives for the first time with an out-of-order
sequence number, the transaction may be aborted.
Replays of previously handled requests will
yield the same response as the first execution.
Required for DML statements. Ignored for
queries.
bool
If this is for a partitioned query and this field is set to
true, the request is executed with Spanner Data Boost
independent compute resources.
If the field is set to true but the request does not set
partition_token, the API returns an INVALID_ARGUMENT
error.
last_statement
bool
Optional. If set to true, this statement
marks the end of the transaction. The
transaction should be committed or aborted after
this statement executes, and attempts to execute
any other requests against this transaction
(including reads and queries) will be rejected.
For DML statements, setting this option may
cause some error reporting to be deferred until
commit time (e.g. validation of unique
constraints). Given this, successful execution
of a DML statement should not be assumed until a
subsequent Commit call completes successfully.