<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/spanner/v1/spanner.proto

namespace Google\Cloud\Spanner\V1\ExecuteSqlRequest;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Query optimizer configuration.
 *
 * Generated from protobuf message <code>google.spanner.v1.ExecuteSqlRequest.QueryOptions</code>
 */
class QueryOptions extends \Google\Protobuf\Internal\Message
{
    /**
     * 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 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 will fail with a syntax error
     * (`INVALID_ARGUMENT`) status.
     * 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.
     *
     * Generated from protobuf field <code>string optimizer_version = 1;</code>
     */
    private $optimizer_version = '';

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $optimizer_version
     *           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 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 will fail with a syntax error
     *           (`INVALID_ARGUMENT`) status.
     *           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.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Spanner\V1\Spanner::initOnce();
        parent::__construct($data);
    }

    /**
     * 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 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 will fail with a syntax error
     * (`INVALID_ARGUMENT`) status.
     * 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.
     *
     * Generated from protobuf field <code>string optimizer_version = 1;</code>
     * @return string
     */
    public function getOptimizerVersion()
    {
        return $this->optimizer_version;
    }

    /**
     * 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 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 will fail with a syntax error
     * (`INVALID_ARGUMENT`) status.
     * 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.
     *
     * Generated from protobuf field <code>string optimizer_version = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setOptimizerVersion($var)
    {
        GPBUtil::checkString($var, True);
        $this->optimizer_version = $var;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(QueryOptions::class, \Google\Cloud\Spanner\V1\ExecuteSqlRequest_QueryOptions::class);

