Class: Google::Cloud::Spanner::V1::ExecuteSqlRequest

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/spanner/v1/spanner.rb

Overview

The request for ExecuteSql and ExecuteStreamingSql.

Defined Under Namespace

Modules: QueryMode Classes: ParamTypesEntry, QueryOptions

Instance Attribute Summary collapse

Instance Attribute Details

#data_boost_enabled::Boolean

Returns 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.

Returns:

  • (::Boolean)

    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.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#directed_read_options::Google::Cloud::Spanner::V1::DirectedReadOptions

Returns Directed read options for this request.

Returns:



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#param_types::Google::Protobuf::Map{::String => ::Google::Cloud::Spanner::V1::Type}

Returns 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 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 for more information about SQL types.

Returns:

  • (::Google::Protobuf::Map{::String => ::Google::Cloud::Spanner::V1::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 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 for more information about SQL types.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#params::Google::Protobuf::Struct

Returns 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 + 100"

It is an error to execute a SQL statement with unbound parameters.

Returns:

  • (::Google::Protobuf::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 + 100"

    It is an error to execute a SQL statement with unbound parameters.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#partition_token::String

Returns 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.

Returns:

  • (::String)

    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.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#query_mode::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryMode

Returns Used to control the amount of debugging information returned in ResultSetStats. If partition_token is set, query_mode can only be set to QueryMode.NORMAL.

Returns:



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#query_options::Google::Cloud::Spanner::V1::ExecuteSqlRequest::QueryOptions

Returns Query optimizer configuration to use for the given query.

Returns:



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#request_options::Google::Cloud::Spanner::V1::RequestOptions

Returns Common options for this request.

Returns:



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#resume_token::String

Returns If this request is resuming a previously interrupted SQL statement execution, resume_token should be copied from the last 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.

Returns:

  • (::String)

    If this request is resuming a previously interrupted SQL statement execution, resume_token should be copied from the last 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.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#seqno::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#session::String

Returns Required. The session in which the SQL query should be performed.

Returns:

  • (::String)

    Required. The session in which the SQL query should be performed.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#sql::String

Returns Required. The SQL string.

Returns:

  • (::String)

    Required. The SQL string.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end

#transaction::Google::Cloud::Spanner::V1::TransactionSelector

Returns 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.

Returns:

  • (::Google::Cloud::Spanner::V1::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.



426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
# File 'proto_docs/google/spanner/v1/spanner.rb', line 426

class ExecuteSqlRequest
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # Query optimizer configuration.
  # @!attribute [rw] optimizer_version
  #   @return [::String]
  #     An option to control the selection of optimizer version.
  #
  #     This parameter allows individual queries to pick different query
  #     optimizer versions.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the
  #     latest supported query optimizer version. If not specified, Cloud Spanner
  #     uses the optimizer version set at the database level options. Any other
  #     positive integer (from the list of supported optimizer versions)
  #     overrides the default optimizer version for query execution.
  #
  #     The list of supported optimizer versions can be queried from
  #     SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS.
  #
  #     Executing a SQL statement with an invalid optimizer version fails with
  #     an `INVALID_ARGUMENT` error.
  #
  #     See
  #     https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer
  #     for more information on managing the query optimizer.
  #
  #     The `optimizer_version` statement hint has precedence over this setting.
  # @!attribute [rw] optimizer_statistics_package
  #   @return [::String]
  #     An option to control the selection of optimizer statistics package.
  #
  #     This parameter allows individual queries to use a different query
  #     optimizer statistics package.
  #
  #     Specifying `latest` as a value instructs Cloud Spanner to use the latest
  #     generated statistics package. If not specified, Cloud Spanner uses
  #     the statistics package set at the database level options, or the latest
  #     package if the database option is not set.
  #
  #     The statistics package requested by the query has to be exempt from
  #     garbage collection. This can be achieved with the following DDL
  #     statement:
  #
  #     ```
  #     ALTER STATISTICS <package_name> SET OPTIONS (allow_gc=false)
  #     ```
  #
  #     The list of available statistics packages can be queried from
  #     `INFORMATION_SCHEMA.SPANNER_STATISTICS`.
  #
  #     Executing a SQL statement with an invalid optimizer statistics package
  #     or with a statistics package that allows garbage collection fails with
  #     an `INVALID_ARGUMENT` error.
  class QueryOptions
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::Google::Cloud::Spanner::V1::Type]
  class ParamTypesEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Mode in which the statement must be processed.
  module QueryMode
    # The default mode. Only the statement results are returned.
    NORMAL = 0

    # This mode returns only the query plan, without any results or
    # execution statistics information.
    PLAN = 1

    # This mode returns the query plan, overall execution statistics,
    # operator level execution statistics along with the results. This has a
    # performance overhead compared to the other modes. It is not recommended
    # to use this mode for production traffic.
    PROFILE = 2

    # This mode returns the overall (but not operator-level) execution
    # statistics along with the results.
    WITH_STATS = 3

    # This mode returns the query plan, overall (but not operator-level)
    # execution statistics along with the results.
    WITH_PLAN_AND_STATS = 4
  end
end