From 052688a2fc3fd25b8a7da09f9d3a4deea41b0bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 24 Jul 2023 14:08:55 +0200 Subject: [PATCH 01/18] feat: support partitioned queries + data boost in Connection API Adds support for Partitioned Queries and Data Boost in the Connection API. This enables the use of these features in the JDBC driver and PGAdapter. --- .../cloud/spanner/ForwardingStructReader.java | 6 +- .../com/google/cloud/spanner/Statement.java | 6 + .../connection/AbstractBaseUnitOfWork.java | 43 ++ .../connection/ClientSideStatement.java | 3 +- .../ClientSideStatementExecutor.java | 6 +- .../ClientSideStatementExplainExecutor.java | 12 +- .../connection/ClientSideStatementImpl.java | 8 +- .../ClientSideStatementNoParamExecutor.java | 3 +- .../ClientSideStatementPartitionExecutor.java | 67 +++ .../ClientSideStatementPgBeginExecutor.java | 6 +- ...ientSideStatementRunPartitionExecutor.java | 64 +++ .../ClientSideStatementSetExecutor.java | 6 +- .../ClientSideStatementValueConverters.java | 73 ++++ .../cloud/spanner/connection/Connection.java | 43 ++ .../spanner/connection/ConnectionImpl.java | 112 ++++- .../ConnectionStatementExecutor.java | 13 + .../ConnectionStatementExecutorImpl.java | 51 +++ .../spanner/connection/MergedResultSet.java | 266 ++++++++++++ .../cloud/spanner/connection/PartitionId.java | 89 ++++ .../connection/ReadOnlyTransaction.java | 60 ++- .../connection/SingleUseTransaction.java | 41 ++ .../spanner/connection/StatementResult.java | 8 +- .../cloud/spanner/connection/UnitOfWork.java | 7 + .../connection/ClientSideStatements.json | 66 +++ .../connection/PG_ClientSideStatements.json | 66 +++ .../cloud/spanner/MockSpannerServiceImpl.java | 30 +- .../connection/AutocommitDmlModeTest.java | 3 +- .../connection/BatchReadMockServerTest.java | 392 ++++++++++++++++++ .../connection/BeginPgTransactionTest.java | 10 +- .../connection/ConnectionImplTest.java | 18 +- ...nnectionStatementWithNoParametersTest.java | 44 +- ...nnectionStatementWithOneParameterTest.java | 47 ++- .../ExplainCommandConverterTest.java | 2 +- .../connection/ReadOnlyStalenessTest.java | 3 +- .../SetPgSessionCharacteristicsTest.java | 20 +- .../spanner/connection/SpannerPoolTest.java | 5 +- 36 files changed, 1579 insertions(+), 120 deletions(-) create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java index 2a85006fa95..d95e361b63f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java @@ -25,7 +25,7 @@ import java.math.BigDecimal; import java.util.List; -/** Forwarding implements of StructReader */ +/** Forwarding implementation of StructReader */ public class ForwardingStructReader implements StructReader { private Supplier delegate; @@ -49,6 +49,10 @@ void replaceDelegate(StructReader newDelegate) { this.delegate = Suppliers.ofInstance(Preconditions.checkNotNull(newDelegate)); } + protected void replaceDelegate(Supplier delegate) { + this.delegate = Preconditions.checkNotNull(delegate); + } + /** * Called before each forwarding call to allow sub classes to do additional state checking. Sub * classes should throw an {@link Exception} if the current state is not valid for reading data diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java index 3693e2cb587..c6452545460 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java @@ -86,6 +86,12 @@ private Builder(Statement statement) { statement.queryOptions == null ? null : statement.queryOptions.toBuilder().build(); } + /** Replaces the current SQL of this builder with the given string. */ + public Builder withSql(String sql) { + sqlBuffer.replace(0, sqlBuffer.length(), sql); + return this; + } + /** Appends {@code sqlFragment} to the statement. */ public Builder append(String sqlFragment) { sqlBuffer.append(checkNotNull(sqlFragment)); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java index 2044b4e6fcc..8c123c02c32 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java @@ -21,13 +21,22 @@ import com.google.api.gax.grpc.GrpcCallContext; import com.google.api.gax.longrunning.OperationFuture; import com.google.api.gax.rpc.ApiCallContext; +import com.google.cloud.spanner.BatchReadOnlyTransaction; +import com.google.cloud.spanner.BatchTransactionId; import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.RpcPriority; +import com.google.cloud.spanner.Partition; +import com.google.cloud.spanner.PartitionOptions; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.ResultSets; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.SpannerOptions; import com.google.cloud.spanner.Statement; +import com.google.cloud.spanner.Struct; +import com.google.cloud.spanner.Type.StructField; import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementExecutor.StatementTimeout; import com.google.common.base.Preconditions; @@ -39,6 +48,7 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; @@ -46,6 +56,7 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; @@ -157,6 +168,38 @@ public void rollbackToSavepoint( "Rollback to savepoint is not supported for " + getUnitOfWorkName()); } + @Override + public ApiFuture partitionQueryAsync( + CallType callType, + ParsedStatement query, + PartitionOptions partitionOptions, + QueryOption... options) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.FAILED_PRECONDITION, + "Partition query is not supported for " + getUnitOfWorkName()); + } + + ResultSet partitionQuery( + BatchReadOnlyTransaction transaction, + PartitionOptions partitionOptions, + ParsedStatement query, + QueryOption... options) { + BatchTransactionId transactionId = transaction.getBatchTransactionId(); + List partitions = + transaction.partitionQuery(partitionOptions, query.getStatement(), options); + return ResultSets.forRows( + com.google.cloud.spanner.Type.struct( + StructField.of("PARTITION", com.google.cloud.spanner.Type.string())), + partitions.stream() + .map( + partition -> + Struct.newBuilder() + .set("PARTITION") + .to(PartitionId.encodeToString(transactionId, partition)) + .build()) + .collect(Collectors.toList())); + } + StatementExecutor getStatementExecutor() { return statementExecutor; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java index 08f14b146a2..521ba546073 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import java.util.List; @@ -63,5 +64,5 @@ interface ClientSideStatement { * needed for the execution of the {@link ClientSideStatement}. * @return the result of the execution of the statement. */ - StatementResult execute(ConnectionStatementExecutor executor, String statement); + StatementResult execute(ConnectionStatementExecutor executor, ParsedStatement statement); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java index 7ec09766697..dae773f606a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; + /** * A {@link ClientSideStatementExecutor} is used to compile {@link ClientSideStatement}s from the * json source file, and to execute these against a {@link Connection} (through a {@link @@ -29,13 +31,13 @@ interface ClientSideStatementExecutor { * * @param connectionExecutor The {@link ConnectionStatementExecutor} to use to execute the * statement on a {@link Connection}. - * @param sql The sql statement that is executed. This can be used to parse any additional + * @param statement The statement that is executed. This can be used to parse any additional * arguments that might be needed for the execution of the {@link ClientSideStatementImpl}. * @return the result of the execution. * @throws Exception If an error occurs while executing the statement, for example if an invalid * argument has been specified in the sql statement, or if the statement is invalid for the * current state of the {@link Connection}. */ - StatementResult execute(ConnectionStatementExecutor connectionExecutor, String sql) + StatementResult execute(ConnectionStatementExecutor connectionExecutor, ParsedStatement statement) throws Exception; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java index 7ce201cb0bd..7987c67d3d6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.ExplainCommandConverter; import com.google.common.collect.ImmutableSet; @@ -29,7 +30,6 @@ class ClientSideStatementExplainExecutor implements ClientSideStatementExecutor { private final ClientSideStatementImpl statement; private final Method method; - private final ExplainCommandConverter converter; public static final Set EXPLAIN_OPTIONS = ImmutableSet.of( "verbose", "costs", "settings", "buffers", "wal", "timing", "summary", "format"); @@ -37,19 +37,19 @@ class ClientSideStatementExplainExecutor implements ClientSideStatementExecutor ClientSideStatementExplainExecutor(ClientSideStatementImpl statement) throws CompileException { try { this.statement = statement; - this.converter = new ExplainCommandConverter(); this.method = ConnectionStatementExecutor.class.getDeclaredMethod( - statement.getMethodName(), converter.getParameterClass()); + statement.getMethodName(), ExplainCommandConverter.INSTANCE.getParameterClass()); } catch (Exception e) { throw new CompileException(e, statement); } } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } String getParameterValue(String sql) { @@ -57,7 +57,7 @@ String getParameterValue(String sql) { if (matcher.find() && matcher.groupCount() >= 1) { String value = matcher.group(0); if (value != null) { - String res = converter.convert(value.trim()); + String res = ExplainCommandConverter.INSTANCE.convert(value.trim()); if (res != null) { return res; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java index 2ff39131baa..f9ecba6652a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import com.google.cloud.spanner.connection.StatementResult.ResultType; import com.google.common.base.Preconditions; @@ -160,7 +161,8 @@ ClientSideStatementImpl compile() throws CompileException { } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String statement) { + public StatementResult execute( + ConnectionStatementExecutor connection, ParsedStatement statement) { Preconditions.checkState(executor != null, "This statement has not been compiled"); try { return executor.execute(connection, statement); @@ -170,9 +172,9 @@ public StatementResult execute(ConnectionStatementExecutor connection, String st if (e.getCause() instanceof SpannerException) { throw (SpannerException) e.getCause(); } - throw new ExecuteException(e.getCause(), this, statement); + throw new ExecuteException(e.getCause(), this, statement.getStatement().getSql()); } catch (Exception e) { - throw new ExecuteException(e, this, statement); + throw new ExecuteException(e, this, statement.getStatement().getSql()); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java index 6f5e683ce64..01da308c166 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import java.lang.reflect.Method; @@ -42,7 +43,7 @@ class ClientSideStatementNoParamExecutor implements ClientSideStatementExecutor } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String statement) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { return (StatementResult) method.invoke(connection); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java new file mode 100644 index 00000000000..243ede2ac73 --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java @@ -0,0 +1,67 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.Statement; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; +import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; +import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.PartitionCommandConverter; +import java.lang.reflect.Method; +import java.util.regex.Matcher; + +/** Executor for PARTITION <sql> statements. */ +class ClientSideStatementPartitionExecutor implements ClientSideStatementExecutor { + private final ClientSideStatementImpl statement; + private final Method method; + + ClientSideStatementPartitionExecutor(ClientSideStatementImpl statement) throws CompileException { + try { + this.statement = statement; + this.method = + ConnectionStatementExecutor.class.getDeclaredMethod( + statement.getMethodName(), Statement.class); + } catch (Exception e) { + throw new CompileException(e, statement); + } + } + + @Override + public StatementResult execute( + ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { + String sql = getParameterValue(parsedStatement); + return (StatementResult) + method.invoke(connection, parsedStatement.getStatement().toBuilder().withSql(sql).build()); + } + + String getParameterValue(ParsedStatement parsedStatement) { + Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); + if (matcher.find() && matcher.groupCount() >= 1) { + String value = matcher.group(0); + if (value != null) { + String res = PartitionCommandConverter.INSTANCE.convert(value.trim()); + if (res != null) { + return res; + } + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, String.format("Invalid argument for PARTITION: %s", value)); + } + } + return null; + } +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java index 4b548803c11..c1d00d81b55 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.PgTransactionModeConverter; import java.lang.reflect.Method; @@ -42,9 +43,10 @@ class ClientSideStatementPgBeginExecutor implements ClientSideStatementExecutor } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } PgTransactionMode getParameterValue(String sql) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java new file mode 100644 index 00000000000..427f77eeec8 --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java @@ -0,0 +1,64 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import com.google.cloud.spanner.Value; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; +import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; +import com.google.common.base.Strings; +import java.lang.reflect.Method; +import java.util.regex.Matcher; + +/** Executor for RUN PARTITION <partition_id> statements. */ +class ClientSideStatementRunPartitionExecutor implements ClientSideStatementExecutor { + private final ClientSideStatementImpl statement; + private final Method method; + + ClientSideStatementRunPartitionExecutor(ClientSideStatementImpl statement) + throws CompileException { + try { + this.statement = statement; + this.method = + ConnectionStatementExecutor.class.getDeclaredMethod( + statement.getMethodName(), String.class); + } catch (Exception e) { + throw new CompileException(e, statement); + } + } + + @Override + public StatementResult execute( + ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { + String partitionId = getParameterValue(parsedStatement); + return (StatementResult) method.invoke(connection, partitionId); + } + + String getParameterValue(ParsedStatement parsedStatement) { + Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); + if (matcher.find() && matcher.groupCount() >= 2) { + String value = matcher.group(2); + if (!Strings.isNullOrEmpty(value)) { + return value; + } + } + if (parsedStatement.getStatement().getParameters().size() == 1) { + Value value = parsedStatement.getStatement().getParameters().values().iterator().next(); + return value.getAsString(); + } + return null; + } +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java index 4f4fe140428..413905116ff 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.common.base.Preconditions; import java.lang.reflect.Constructor; @@ -72,9 +73,10 @@ class ClientSideStatementSetExecutor implements ClientSideStatementExecutor { } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } T getParameterValue(String sql) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java index a7752ab6671..1ba01d76ac4 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java @@ -135,6 +135,30 @@ public Boolean convert(String value) { } } + /** Converter from string to {@link Boolean} */ + static class IntegerConverter implements ClientSideStatementValueConverter { + + public IntegerConverter(String allowedValues) {} + + @Override + public Class getParameterClass() { + return Integer.class; + } + + @Override + public Integer convert(String value) { + try { + int res = Integer.parseInt(value); + if (res < 0) { + return null; + } + return res; + } catch (Exception ignore) { + return null; + } + } + } + /** Converter from string to {@link Duration}. */ static class DurationConverter implements ClientSideStatementValueConverter { private final Pattern allowedValues; @@ -477,6 +501,10 @@ public SavepointSupport convert(String value) { } static class ExplainCommandConverter implements ClientSideStatementValueConverter { + static final ExplainCommandConverter INSTANCE = new ExplainCommandConverter(); + + private ExplainCommandConverter() {} + @Override public Class getParameterClass() { return String.class; @@ -494,4 +522,49 @@ public String convert(String value) { return value.substring(7).trim(); } } + + static class PartitionCommandConverter implements ClientSideStatementValueConverter { + private static final int KEYWORD_LENGTH = "PARTITION".length(); + + static final PartitionCommandConverter INSTANCE = new PartitionCommandConverter(); + + private PartitionCommandConverter() {} + + @Override + public Class getParameterClass() { + return String.class; + } + + @Override + public String convert(String value) { + // The first keyword should be PARTITION. + if (value.length() <= KEYWORD_LENGTH) { + return null; + } + return value.substring(KEYWORD_LENGTH).trim(); + } + } + + static class ExecutePartitionCommandConverter + implements ClientSideStatementValueConverter { + private static final int KEYWORD_LENGTH = "EXECUTE_PARTITION".length(); + + static final ExecutePartitionCommandConverter INSTANCE = new ExecutePartitionCommandConverter(); + + private ExecutePartitionCommandConverter() {} + + @Override + public Class getParameterClass() { + return String.class; + } + + @Override + public String convert(String value) { + // The first keyword should be EXECUTE_PARTITION. + if (value.length() <= KEYWORD_LENGTH) { + return null; + } + return value.substring(KEYWORD_LENGTH).trim(); + } + } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java index d4624bfabbb..ba3c91667e3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java @@ -30,6 +30,7 @@ import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.RpcPriority; import com.google.cloud.spanner.Options.UpdateOption; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerBatchUpdateException; @@ -1031,6 +1032,48 @@ default boolean isDelayTransactionStartUntilFirstWrite() { */ ResultSet analyzeQuery(Statement query, QueryAnalyzeMode queryMode); + /** + * Enable data boost for partitioned queries. See also {@link #partitionQuery(Statement, + * PartitionOptions, QueryOption...)} + */ + void setDataBoostEnabled(boolean dataBoostEnabled); + + /** + * Returns whether data boost is enabled for partitioned queries. See also {@link + * #partitionQuery(Statement, PartitionOptions, QueryOption...)} + */ + boolean isDataBoostEnabled(); + + void setMaxPartitions(int maxPartitions); + + int getMaxPartitions(); + + /** + * Partitions the given query, so it can be executed in parallel. This method returns a {@link + * ResultSet} with a string-representation of the partitions that were created. These strings can + * be used to execute a partition either on this connection or an any other connection (on this + * host or an any other host) by calling the method {@link #runPartition(String)}. This method + * will automatically enable data boost for the query if {@link #isDataBoostEnabled()} returns + * true. + */ + ResultSet partitionQuery( + Statement query, PartitionOptions partitionOptions, QueryOption... options); + + /** + * Executes the given partition of a query. The encodedPartitionId should be a string that was + * returned by {@link #partitionQuery(Statement, PartitionOptions, QueryOption...)}. + */ + ResultSet runPartition(String encodedPartitionId); + + /** + * Executes the given query as a partitioned query. The query will first be partitioned using the + * {@link #partitionQuery(Statement, PartitionOptions, QueryOption...)} method. Each of the + * partitions will then be executed in the background, and the results will be merged into a + * single result set. + */ + ResultSet executePartitionedQuery( + Statement query, PartitionOptions partitionOptions, QueryOption... options); + /** * Executes the given statement as a simple DML statement. If the statement does not contain a * valid DML statement, the method will throw a {@link SpannerException}. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index b6e29dbdc0e..87bf0cbb11a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -23,6 +23,8 @@ import com.google.api.core.ApiFutures; import com.google.cloud.Timestamp; import com.google.cloud.spanner.AsyncResultSet; +import com.google.cloud.spanner.BatchClient; +import com.google.cloud.spanner.BatchReadOnlyTransaction; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.Dialect; @@ -32,6 +34,7 @@ import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.RpcPriority; import com.google.cloud.spanner.Options.UpdateOption; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.ResultSets; @@ -188,8 +191,9 @@ static UnitOfWorkType of(TransactionMode transactionMode) { private boolean closed = false; private final Spanner spanner; - private DdlClient ddlClient; - private DatabaseClient dbClient; + private final DdlClient ddlClient; + private final DatabaseClient dbClient; + private final BatchClient batchClient; private boolean autocommit; private boolean readOnly; private boolean returnCommitStats; @@ -214,6 +218,8 @@ static UnitOfWorkType of(TransactionMode transactionMode) { private final List transactionRetryListeners = new ArrayList<>(); private AutocommitDmlMode autocommitDmlMode = AutocommitDmlMode.TRANSACTIONAL; private TimestampBound readOnlyStaleness = TimestampBound.strong(); + private boolean dataBoostEnabled; + private int maxPartitions; private QueryOptions queryOptions = QueryOptions.getDefaultInstance(); private RpcPriority rpcPriority = null; private SavepointSupport savepointSupport = SavepointSupport.FAIL_AFTER_ROLLBACK; @@ -234,6 +240,7 @@ static UnitOfWorkType of(TransactionMode transactionMode) { EmulatorUtil.maybeCreateInstanceAndDatabase(spanner, options.getDatabaseId()); } this.dbClient = spanner.getDatabaseClient(options.getDatabaseId()); + this.batchClient = spanner.getBatchClient(options.getDatabaseId()); this.retryAbortsInternally = options.isRetryAbortsInternally(); this.readOnly = options.isReadOnly(); this.autocommit = options.isAutocommit(); @@ -251,19 +258,17 @@ static UnitOfWorkType of(TransactionMode transactionMode) { ConnectionOptions options, SpannerPool spannerPool, DdlClient ddlClient, - DatabaseClient dbClient) { - Preconditions.checkNotNull(options); - Preconditions.checkNotNull(spannerPool); - Preconditions.checkNotNull(ddlClient); - Preconditions.checkNotNull(dbClient); + DatabaseClient dbClient, + BatchClient batchClient) { this.leakedException = options.isTrackConnectionLeaks() ? new LeakedConnectionException() : null; this.statementExecutor = new StatementExecutor(Collections.emptyList()); - this.spannerPool = spannerPool; - this.options = options; + this.spannerPool = Preconditions.checkNotNull(spannerPool); + this.options = Preconditions.checkNotNull(options); this.spanner = spannerPool.getSpanner(options, this); - this.ddlClient = ddlClient; - this.dbClient = dbClient; + this.ddlClient = Preconditions.checkNotNull(ddlClient); + this.dbClient = Preconditions.checkNotNull(dbClient); + this.batchClient = Preconditions.checkNotNull(batchClient); setReadOnly(options.isReadOnly()); setAutocommit(options.isAutocommit()); setReturnCommitStats(options.isReturnCommitStats()); @@ -925,7 +930,7 @@ public StatementResult execute(Statement statement) { case CLIENT_SIDE: return parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()); + .execute(connectionStatementExecutor, parsedStatement); case QUERY: return StatementResultImpl.of( internalExecuteQuery(CallType.SYNC, parsedStatement, AnalyzeMode.NONE)); @@ -957,7 +962,7 @@ public AsyncStatementResult executeAsync(Statement statement) { return AsyncStatementResultImpl.of( parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()), + .execute(connectionStatementExecutor, parsedStatement), spanner.getAsyncExecutorProvider()); case QUERY: return AsyncStatementResultImpl.of( @@ -995,6 +1000,68 @@ public ResultSet analyzeQuery(Statement query, QueryAnalyzeMode queryMode) { return parseAndExecuteQuery(CallType.SYNC, query, AnalyzeMode.of(queryMode)); } + @Override + public void setDataBoostEnabled(boolean dataBoostEnabled) { + this.dataBoostEnabled = dataBoostEnabled; + } + + @Override + public boolean isDataBoostEnabled() { + return this.dataBoostEnabled; + } + + @Override + public void setMaxPartitions(int maxPartitions) { + this.maxPartitions = maxPartitions; + } + + @Override + public int getMaxPartitions() { + return this.maxPartitions; + } + + @Override + public ResultSet partitionQuery( + Statement query, PartitionOptions partitionOptions, QueryOption... options) { + ParsedStatement parsedStatement = getStatementParser().parse(query, this.queryOptions); + if (parsedStatement.getType() != StatementType.QUERY) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, + "Only queries can be partitioned. Invalid statement: " + query.getSql()); + } + + UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); + return get( + transaction.partitionQueryAsync( + CallType.SYNC, + parsedStatement, + partitionOptions, + mergeDataBoost(mergeQueryRequestOptions(mergeQueryStatementTag(options))))); + } + + @Override + public ResultSet runPartition(String encodedPartitionId) { + PartitionId id = PartitionId.decodeFromString(encodedPartitionId); + try (BatchReadOnlyTransaction transaction = + batchClient.batchReadOnlyTransaction(id.getTransactionId())) { + return transaction.execute(id.getPartition()); + } + } + + @Override + public ResultSet executePartitionedQuery( + Statement query, PartitionOptions partitionOptions, QueryOption... options) { + List partitionIds = new ArrayList<>(); + try (ResultSet partitions = partitionQuery(query, partitionOptions, options)) { + while (partitions.next()) { + partitionIds.add(partitions.getString(0)); + } + } + // parallelism=0 means 'dynamically choose based on the number of available processors and the + // number of partitions'. + return new MergedResultSet(this, partitionIds, 0); + } + /** * Parses the given statement as a query and executes it. Throws a {@link SpannerException} if the * statement is not a query. @@ -1010,7 +1077,7 @@ private ResultSet parseAndExecuteQuery( case CLIENT_SIDE: return parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()) + .execute(connectionStatementExecutor, parsedStatement) .getResultSet(); case QUERY: return internalExecuteQuery(callType, parsedStatement, analyzeMode, options); @@ -1050,7 +1117,7 @@ private AsyncResultSet parseAndExecuteQueryAsync( return ResultSets.toAsyncResultSet( parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()) + .execute(connectionStatementExecutor, parsedStatement) .getResultSet(), spanner.getAsyncExecutorProvider(), options); @@ -1234,6 +1301,19 @@ public ApiFuture executeBatchUpdateAsync(Iterable updates) { return internalExecuteBatchUpdateAsync(CallType.ASYNC, parsedStatements); } + private QueryOption[] mergeDataBoost(QueryOption... options) { + if (this.dataBoostEnabled) { + // Shortcut for the most common scenario. + if (options == null || options.length == 0) { + options = new QueryOption[] {Options.dataBoostEnabled(true)}; + } else { + options = Arrays.copyOf(options, options.length + 1); + options[options.length - 1] = Options.dataBoostEnabled(true); + } + } + return options; + } + private QueryOption[] mergeQueryStatementTag(QueryOption... options) { if (this.statementTag != null) { // Shortcut for the most common scenario. @@ -1373,6 +1453,7 @@ UnitOfWork createNewUnitOfWork() { return SingleUseTransaction.newBuilder() .setDdlClient(ddlClient) .setDatabaseClient(dbClient) + .setBatchClient(batchClient) .setReadOnly(isReadOnly()) .setReadOnlyStaleness(readOnlyStaleness) .setAutocommitDmlMode(autocommitDmlMode) @@ -1385,6 +1466,7 @@ UnitOfWork createNewUnitOfWork() { case READ_ONLY_TRANSACTION: return ReadOnlyTransaction.newBuilder() .setDatabaseClient(dbClient) + .setBatchClient(batchClient) .setReadOnlyStaleness(readOnlyStaleness) .setStatementTimeout(statementTimeout) .withStatementExecutor(statementExecutor) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java index 718025e1652..62d250ae5fb 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.Statement; import com.google.cloud.spanner.TimestampBound; import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.protobuf.Duration; @@ -125,4 +126,16 @@ StatementResult statementSetPgSessionCharacteristicsTransactionMode( StatementResult statementShowTransactionIsolationLevel(); StatementResult statementExplain(String sql); + + StatementResult statementShowDataBoostEnabled(); + + StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled); + + StatementResult statementShowMaxPartitions(); + + StatementResult statementSetMaxPartitions(Integer maxPartitions); + + StatementResult statementPartition(Statement statement); + + StatementResult statementRunPartition(String partitionId); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java index 4bda03367af..c2df1deda9b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java @@ -24,8 +24,10 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.RUN_BATCH; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT_DML_MODE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DATA_BOOST_ENABLED; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DEFAULT_TRANSACTION_ISOLATION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_MAX_PARTITIONS; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_STATISTICS_PACKAGE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_VERSION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_READONLY; @@ -42,7 +44,9 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTOCOMMIT_DML_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_RESPONSE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_TIMESTAMP; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_DATA_BOOST_ENABLED; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_MAX_PARTITIONS; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_OPTIMIZER_STATISTICS_PACKAGE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_OPTIMIZER_VERSION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_READONLY; @@ -66,6 +70,7 @@ import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Options.RpcPriority; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.ResultSets; @@ -77,6 +82,7 @@ import com.google.cloud.spanner.Type.StructField; import com.google.cloud.spanner.connection.PgTransactionMode.IsolationLevel; import com.google.cloud.spanner.connection.ReadOnlyStalenessUtil.DurationValueGetter; +import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -493,6 +499,51 @@ public StatementResult statementShowTransactionIsolationLevel() { return resultSet("transaction_isolation", "serializable", SHOW_TRANSACTION_ISOLATION_LEVEL); } + @Override + public StatementResult statementShowDataBoostEnabled() { + return resultSet( + String.format("%sDATA_BOOST_ENABLED", getNamespace(connection.getDialect())), + getConnection().isDataBoostEnabled(), + SHOW_DATA_BOOST_ENABLED); + } + + @Override + public StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled) { + getConnection().setDataBoostEnabled(Preconditions.checkNotNull(dataBoostEnabled)); + return noResult(SET_DATA_BOOST_ENABLED); + } + + @Override + public StatementResult statementShowMaxPartitions() { + return resultSet( + String.format("%sMAX_PARTITIONS", getNamespace(connection.getDialect())), + Long.valueOf(getConnection().getMaxPartitions()), + SHOW_MAX_PARTITIONS); + } + + @Override + public StatementResult statementSetMaxPartitions(Integer maxPartitions) { + getConnection().setMaxPartitions(Preconditions.checkNotNull(maxPartitions)); + return noResult(SET_MAX_PARTITIONS); + } + + @Override + public StatementResult statementPartition(Statement statement) { + PartitionOptions.Builder partitionOptionsBuilder = PartitionOptions.newBuilder(); + if (getConnection().getMaxPartitions() > 0) { + partitionOptionsBuilder.setMaxPartitions(getConnection().getMaxPartitions()); + } + return StatementResultImpl.of( + getConnection().partitionQuery(statement, partitionOptionsBuilder.build()), + ClientSideStatementType.PARTITION); + } + + @Override + public StatementResult statementRunPartition(String partitionId) { + return StatementResultImpl.of( + getConnection().runPartition(partitionId), ClientSideStatementType.RUN_PARTITION); + } + private String processQueryPlan(PlanNode planNode) { StringBuilder planNodeDescription = new StringBuilder(" : { "); com.google.protobuf.Struct metadata = planNode.getMetadata(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java new file mode 100644 index 00000000000..28b502ee4d7 --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -0,0 +1,266 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import static com.google.common.base.Preconditions.checkState; + +import com.google.cloud.spanner.ForwardingStructReader; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.Struct; +import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; +import com.google.spanner.v1.ResultSetMetadata; +import com.google.spanner.v1.ResultSetStats; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +class MergedResultSet extends ForwardingStructReader implements ResultSet { + static class PartitionExecutor implements Runnable { + private final Connection connection; + private final String partitionId; + private final LinkedBlockingDeque queue; + private final AtomicBoolean shouldStop = new AtomicBoolean(); + + PartitionExecutor( + Connection connection, + String partitionId, + LinkedBlockingDeque queue) { + this.connection = Preconditions.checkNotNull(connection); + this.partitionId = Preconditions.checkNotNull(partitionId); + this.queue = queue; + } + + @Override + public void run() { + try (ResultSet resultSet = connection.runPartition(partitionId)) { + boolean first = true; + while (resultSet.next()) { + if (first) { + queue.put( + PartitionExecutorResult.dataAndMetadata( + resultSet.getCurrentRowAsStruct(), resultSet.getMetadata())); + first = false; + } else { + queue.put(PartitionExecutorResult.data(resultSet.getCurrentRowAsStruct())); + } + if (shouldStop.get()) { + break; + } + } + } catch (Throwable exception) { + putWithoutInterruptPropagation(PartitionExecutorResult.exception(exception)); + } finally { + // Emit a special 'finished' result to ensure that the row producer is not blocked on a + // queue that never receives any more results. This ensures that we can safely block on + // queue.take(), as we know that we will always receive at least one result from each + // worker. + putWithoutInterruptPropagation(PartitionExecutorResult.finished()); + } + } + + private void putWithoutInterruptPropagation(PartitionExecutorResult result) { + try { + queue.put(result); + } catch (InterruptedException interruptedException) { + Thread.currentThread().interrupt(); + } + } + } + + static class PartitionExecutorResult { + private final Struct data; + private final Throwable exception; + private final ResultSetMetadata metadata; + + static PartitionExecutorResult data(Struct data) { + return new PartitionExecutorResult(data, null, null); + } + + static PartitionExecutorResult dataAndMetadata(Struct data, ResultSetMetadata metadata) { + return new PartitionExecutorResult(data, metadata, null); + } + + static PartitionExecutorResult exception(Throwable exception) { + return new PartitionExecutorResult(null, null, exception); + } + + static PartitionExecutorResult finished() { + return new PartitionExecutorResult(null, null, null); + } + + private PartitionExecutorResult(Struct data, ResultSetMetadata metadata, Throwable exception) { + this.data = data; + this.metadata = metadata; + this.exception = exception; + } + + boolean isFinished() { + return this.data == null && this.metadata == null && this.exception == null; + } + } + + static class RowProducer implements Supplier { + private static final int QUEUE_SIZE_PER_WORKER = 32; + private final ExecutorService executor; + private final List partitionExecutors; + private final AtomicInteger finishedCounter; + private final LinkedBlockingDeque queue; + private ResultSetMetadata metadata; + private Struct currentRow; + + RowProducer(Connection connection, List partitions, int maxParallelism) { + Preconditions.checkArgument(maxParallelism >= 0, "maxParallelism must be >= 0"); + if (maxParallelism == 0) { + // Dynamically determine parallelism. + maxParallelism = Math.min(partitions.size(), Runtime.getRuntime().availableProcessors()); + } + this.executor = + Executors.newFixedThreadPool( + maxParallelism, + runnable -> { + Thread thread = new Thread(runnable); + thread.setName("partitioned-query-row-producer"); + thread.setDaemon(true); + return thread; + }); + this.queue = new LinkedBlockingDeque<>(QUEUE_SIZE_PER_WORKER * maxParallelism); + this.partitionExecutors = new ArrayList<>(partitions.size()); + this.finishedCounter = new AtomicInteger(partitions.size()); + for (String partition : partitions) { + PartitionExecutor partitionExecutor = + new PartitionExecutor(connection, partition, this.queue); + this.partitionExecutors.add(partitionExecutor); + this.executor.submit(partitionExecutor); + } + // Pre-emptively shutdown the executor. This does not terminate any running tasks, but it + // stops the executor from accepting any new tasks and guarantees that the executor will + // always be shutdown, regardless whether the user calls ResultSet#close(). + this.executor.shutdown(); + } + + void close() { + this.partitionExecutors.forEach(partitionExecutor -> partitionExecutor.shouldStop.set(true)); + // shutdownNow will interrupt any running tasks and then shut down directly. + // This will also cancel any queries that might be running. + this.executor.shutdownNow(); + } + + boolean nextRow() throws Throwable { + while (true) { + PartitionExecutorResult next; + if ((next = queue.peek()) != null && !next.isFinished()) { + // There's a valid result available. Return this quickly. + setNextRow(queue.remove()); + return true; + } + // Block until the next row is available. + next = queue.take(); + if (next.isFinished()) { + finishedCounter.decrementAndGet(); + if (finishedCounter.get() == 0) { + return false; + } + } else { + setNextRow(next); + return true; + } + } + } + + void setNextRow(PartitionExecutorResult next) throws Throwable { + if (next.exception != null) { + throw next.exception; + } + currentRow = next.data; + if (this.metadata == null && next.metadata != null) { + this.metadata = next.metadata; + } + } + + @Override + public Struct get() { + checkState(currentRow != null, "next() call required"); + return currentRow; + } + + public ResultSetMetadata getMetadata() { + checkState(metadata != null, "next() call required"); + return metadata; + } + } + + private final RowProducer rowProducer; + + private boolean closed; + + MergedResultSet(Connection connection, List partitions, int maxParallelism) { + this(new RowProducer(connection, partitions, maxParallelism)); + } + + MergedResultSet(RowProducer rowProducer) { + super(rowProducer); + this.rowProducer = rowProducer; + } + + @Override + protected void checkValidState() { + Preconditions.checkState(!closed, "This result set has been closed"); + } + + @Override + public boolean next() throws SpannerException { + checkValidState(); + try { + return rowProducer.nextRow(); + } catch (InterruptedException interruptedException) { + throw SpannerExceptionFactory.propagateInterrupt(interruptedException); + } catch (Throwable throwable) { + throw SpannerExceptionFactory.asSpannerException(throwable); + } + } + + @Override + public Struct getCurrentRowAsStruct() { + checkValidState(); + return rowProducer.get(); + } + + @Override + public void close() { + this.closed = true; + rowProducer.close(); + } + + @Override + public ResultSetStats getStats() { + throw new UnsupportedOperationException( + "ResultSetStats are available only for results returned from analyzeQuery() calls"); + } + + @Override + public ResultSetMetadata getMetadata() { + checkValidState(); + return rowProducer.getMetadata(); + } +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java new file mode 100644 index 00000000000..a6da8de5e65 --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java @@ -0,0 +1,89 @@ +package com.google.cloud.spanner.connection; + +import com.google.cloud.spanner.BatchTransactionId; +import com.google.cloud.spanner.Partition; +import com.google.cloud.spanner.SpannerExceptionFactory; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.Base64; +import java.util.Objects; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; + +/** + * Contains a reference to a {@link BatchTransactionId} and a {@link Partition}. The combination of + * these two are needed to execute a partition of a partitioned query on a {@link Connection}. A + * {@link PartitionId} can safely be given to a different connection and/or host to be executed + * there. + */ +public class PartitionId implements Serializable { + private static final long serialVersionUID = 239487275L; + + private final BatchTransactionId transactionId; + private final Partition partition; + + /** + * Deserializes a string representation of a {@link PartitionId}. The string must have been + * created with the {@link #encodeToString(BatchTransactionId, Partition)} method. + */ + public static PartitionId decodeFromString(String id) { + try (ObjectInputStream objectInputStream = + new ObjectInputStream( + new GZIPInputStream(new ByteArrayInputStream(Base64.getUrlDecoder().decode(id))))) { + return (PartitionId) objectInputStream.readObject(); + } catch (Exception exception) { + throw SpannerExceptionFactory.newSpannerException(exception); + } + } + + /** + * @return A string-encoded version of this {@link PartitionId}. This encoded version can be sent + * to any other {@link Connection} to be executed there, including connections on different + * hosts than the current host. + */ + public static String encodeToString(BatchTransactionId transactionId, Partition partition) { + PartitionId id = new PartitionId(transactionId, partition); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + try (ObjectOutputStream objectOutputStream = + new ObjectOutputStream(new GZIPOutputStream(byteArrayOutputStream))) { + objectOutputStream.writeObject(id); + } catch (Exception exception) { + throw SpannerExceptionFactory.newSpannerException(exception); + } + return Base64.getUrlEncoder().encodeToString(byteArrayOutputStream.toByteArray()); + } + + private PartitionId(BatchTransactionId transactionId, Partition partition) { + this.transactionId = transactionId; + this.partition = partition; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof PartitionId)) { + return false; + } + PartitionId other = (PartitionId) o; + return Objects.equals(this.transactionId, other.transactionId) + && Objects.equals(this.partition, other.partition); + } + + @Override + public int hashCode() { + return Objects.hash(this.transactionId, this.partition); + } + + public BatchTransactionId getTransactionId() { + return transactionId; + } + + public Partition getPartition() { + return partition; + } +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadOnlyTransaction.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadOnlyTransaction.java index 38db610758a..5a005ff8052 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadOnlyTransaction.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadOnlyTransaction.java @@ -19,11 +19,15 @@ import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.cloud.Timestamp; +import com.google.cloud.spanner.BatchClient; +import com.google.cloud.spanner.BatchReadOnlyTransaction; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Mutation; +import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.UpdateOption; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadContext; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerException; @@ -32,6 +36,9 @@ import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.spanner.v1.SpannerGrpc; +import java.util.concurrent.Callable; /** * Transaction that is used when a {@link Connection} is in read-only mode or when the transaction @@ -39,12 +46,15 @@ */ class ReadOnlyTransaction extends AbstractMultiUseTransaction { private final DatabaseClient dbClient; + private final BatchClient batchClient; private final TimestampBound readOnlyStaleness; private com.google.cloud.spanner.ReadOnlyTransaction transaction; + private BatchReadOnlyTransaction batchReadOnlyTransaction; private UnitOfWorkState state = UnitOfWorkState.STARTED; static class Builder extends AbstractBaseUnitOfWork.Builder { private DatabaseClient dbClient; + private BatchClient batchClient; private TimestampBound readOnlyStaleness; private Builder() {} @@ -55,6 +65,11 @@ Builder setDatabaseClient(DatabaseClient client) { return this; } + Builder setBatchClient(BatchClient batchClient) { + this.batchClient = Preconditions.checkNotNull(batchClient); + return this; + } + Builder setReadOnlyStaleness(TimestampBound staleness) { Preconditions.checkNotNull(staleness); this.readOnlyStaleness = staleness; @@ -64,6 +79,7 @@ Builder setReadOnlyStaleness(TimestampBound staleness) { @Override ReadOnlyTransaction build() { Preconditions.checkState(dbClient != null, "No DatabaseClient client specified"); + Preconditions.checkState(batchClient != null, "No BatchClient client specified"); Preconditions.checkState(readOnlyStaleness != null, "No ReadOnlyStaleness specified"); return new ReadOnlyTransaction(this); } @@ -77,6 +93,7 @@ static Builder newBuilder() { ReadOnlyTransaction(Builder builder) { super(builder); this.dbClient = builder.dbClient; + this.batchClient = builder.batchClient; this.readOnlyStaleness = builder.readOnlyStaleness; } @@ -153,6 +170,34 @@ public CommitResponse getCommitResponseOrNull() { return null; } + @Override + public ApiFuture partitionQueryAsync( + CallType callType, + ParsedStatement query, + PartitionOptions partitionOptions, + QueryOption... options) { + // Batch-read-only transactions are safe to use for both normal queries and partitioned queries. + // We therefore just use the batch transaction as the 'normal' transaction if the first + // statement in the transaction is to partition a query. + // Using a batch-read-only transaction for every read-only transaction is not efficient, as + // these transactions use a session that is created synchronously only for this transaction. + if (transaction == null) { + batchReadOnlyTransaction = batchClient.batchReadOnlyTransaction(readOnlyStaleness); + transaction = batchReadOnlyTransaction; + } else if (batchReadOnlyTransaction == null) { + batchReadOnlyTransaction = + batchClient.batchReadOnlyTransaction( + TimestampBound.ofReadTimestamp(transaction.getReadTimestamp())); + } + Callable callable = + () -> partitionQuery(batchReadOnlyTransaction, partitionOptions, query, options); + return executeStatementAsync( + callType, + query, + callable, + ImmutableList.of(SpannerGrpc.getExecuteSqlMethod(), SpannerGrpc.getCommitMethod())); + } + @Override public ApiFuture executeDdlAsync(CallType callType, ParsedStatement ddl) { throw SpannerExceptionFactory.newSpannerException( @@ -190,20 +235,25 @@ public ApiFuture writeAsync(CallType callType, Iterable mutation @Override public ApiFuture commitAsync(CallType callType) { - if (this.transaction != null) { - this.transaction.close(); - } + closeTransactions(); this.state = UnitOfWorkState.COMMITTED; return ApiFutures.immediateFuture(null); } @Override public ApiFuture rollbackAsync(CallType callType) { + closeTransactions(); + this.state = UnitOfWorkState.ROLLED_BACK; + return ApiFutures.immediateFuture(null); + } + + private void closeTransactions() { if (this.transaction != null) { this.transaction.close(); } - this.state = UnitOfWorkState.ROLLED_BACK; - return ApiFutures.immediateFuture(null); + if (this.batchReadOnlyTransaction != null) { + this.batchReadOnlyTransaction.close(); + } } @Override diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java index 0e3dfe02efb..ea2159b00a7 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SingleUseTransaction.java @@ -25,6 +25,8 @@ import com.google.api.gax.longrunning.OperationFuture; import com.google.cloud.Timestamp; import com.google.cloud.Tuple; +import com.google.cloud.spanner.BatchClient; +import com.google.cloud.spanner.BatchReadOnlyTransaction; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.ErrorCode; @@ -32,6 +34,7 @@ import com.google.cloud.spanner.Options; import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.UpdateOption; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadOnlyTransaction; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerApiFutures; @@ -40,6 +43,7 @@ import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.TimestampBound; import com.google.cloud.spanner.TransactionRunner; +import com.google.cloud.spanner.Type; import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.AbstractStatementParser.StatementType; import com.google.common.base.Preconditions; @@ -70,6 +74,7 @@ class SingleUseTransaction extends AbstractBaseUnitOfWork { private final boolean readOnly; private final DdlClient ddlClient; private final DatabaseClient dbClient; + private final BatchClient batchClient; private final TimestampBound readOnlyStaleness; private final AutocommitDmlMode autocommitDmlMode; private final boolean returnCommitStats; @@ -81,6 +86,7 @@ class SingleUseTransaction extends AbstractBaseUnitOfWork { static class Builder extends AbstractBaseUnitOfWork.Builder { private DdlClient ddlClient; private DatabaseClient dbClient; + private BatchClient batchClient; private boolean readOnly; private TimestampBound readOnlyStaleness; private AutocommitDmlMode autocommitDmlMode; @@ -100,6 +106,11 @@ Builder setDatabaseClient(DatabaseClient client) { return this; } + Builder setBatchClient(BatchClient batchClient) { + this.batchClient = Preconditions.checkNotNull(batchClient); + return this; + } + Builder setReadOnly(boolean readOnly) { this.readOnly = readOnly; return this; @@ -126,6 +137,7 @@ Builder setReturnCommitStats(boolean returnCommitStats) { SingleUseTransaction build() { Preconditions.checkState(ddlClient != null, "No DDL client specified"); Preconditions.checkState(dbClient != null, "No DatabaseClient client specified"); + Preconditions.checkState(batchClient != null, "No BatchClient client specified"); Preconditions.checkState(readOnlyStaleness != null, "No read-only staleness specified"); Preconditions.checkState(autocommitDmlMode != null, "No autocommit dml mode specified"); return new SingleUseTransaction(this); @@ -140,6 +152,7 @@ private SingleUseTransaction(Builder builder) { super(builder); this.ddlClient = builder.ddlClient; this.dbClient = builder.dbClient; + this.batchClient = builder.batchClient; this.readOnly = builder.readOnly; this.readOnlyStaleness = builder.readOnlyStaleness; this.autocommitDmlMode = builder.autocommitDmlMode; @@ -250,6 +263,34 @@ private ApiFuture executeDmlReturningAsync( ImmutableList.of(SpannerGrpc.getExecuteSqlMethod(), SpannerGrpc.getCommitMethod())); } + @Override + public ApiFuture partitionQueryAsync( + CallType callType, + ParsedStatement query, + PartitionOptions partitionOptions, + QueryOption... options) { + Callable callable = + () -> { + try (BatchReadOnlyTransaction transaction = + batchClient.batchReadOnlyTransaction(readOnlyStaleness)) { + ResultSet resultSet = partitionQuery(transaction, partitionOptions, query, options); + readTimestamp.set(transaction.getReadTimestamp()); + state = UnitOfWorkState.COMMITTED; + return resultSet; + } catch (Throwable throwable) { + state = UnitOfWorkState.COMMIT_FAILED; + readTimestamp.set(null); + throw throwable; + } + }; + readTimestamp = SettableApiFuture.create(); + return executeStatementAsync( + callType, + query, + callable, + ImmutableList.of(SpannerGrpc.getExecuteSqlMethod(), SpannerGrpc.getCommitMethod())); + } + @Override public Timestamp getReadTimestamp() { ConnectionPreconditions.checkState( diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java index f4e9237e090..3488ec866b3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java @@ -89,7 +89,13 @@ enum ClientSideStatementType { SHOW_TRANSACTION_ISOLATION_LEVEL, SHOW_SAVEPOINT_SUPPORT, SET_SAVEPOINT_SUPPORT, - EXPLAIN + SHOW_DATA_BOOST_ENABLED, + SET_DATA_BOOST_ENABLED, + SHOW_MAX_PARTITIONS, + SET_MAX_PARTITIONS, + EXPLAIN, + PARTITION, + RUN_PARTITION, } /** diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/UnitOfWork.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/UnitOfWork.java index b44bd5c5f33..ea315e94c0e 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/UnitOfWork.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/UnitOfWork.java @@ -24,6 +24,7 @@ import com.google.cloud.spanner.Mutation; import com.google.cloud.spanner.Options.QueryOption; import com.google.cloud.spanner.Options.UpdateOption; +import com.google.cloud.spanner.PartitionOptions; import com.google.cloud.spanner.ReadContext; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerException; @@ -149,6 +150,12 @@ ApiFuture executeQueryAsync( AnalyzeMode analyzeMode, QueryOption... options); + ApiFuture partitionQueryAsync( + CallType callType, + ParsedStatement query, + PartitionOptions partitionOptions, + QueryOption... options); + /** * @return the read timestamp of this transaction. Will throw a {@link SpannerException} if there * is no read timestamp. diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json index 0f58ee951af..d3f8df3537c 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json @@ -158,6 +158,24 @@ "method": "statementShowDelayTransactionStartUntilFirstWrite", "exampleStatements": ["show variable delay_transaction_start_until_first_write"] }, + { + "name": "PARTITION ", + "executorName": "ClientSideStatementPartitionExecutor", + "resultType": "RESULT_SET", + "statementType": "PARTITION", + "regex": "(?is)\\A\\s*partition(\\s+|\\()(.*)\\z", + "method": "statementPartition", + "exampleStatements": [] + }, + { + "name": "RUN PARTITION ['']", + "executorName": "ClientSideStatementRunPartitionExecutor", + "resultType": "RESULT_SET", + "statementType": "RUN_PARTITION", + "regex": "(?is)\\A\\s*run\\s+partition(?:\\s*'(.*)')?\\s*\\z", + "method": "statementRunPartition", + "exampleStatements": [] + }, { "name": "BEGIN TRANSACTION", "executorName": "ClientSideStatementNoParamExecutor", @@ -474,6 +492,54 @@ "allowedValues": "(TRUE|FALSE)", "converterName": "ClientSideStatementValueConverters$BooleanConverter" } + }, + { + "name": "SHOW VARIABLE DATA_BOOST_ENABLED", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_DATA_BOOST_ENABLED", + "regex": "(?is)\\A\\s*show\\s+variable\\s+data_boost_enabled\\s*\\z", + "method": "statementShowDataBoostEnabled", + "exampleStatements": ["show variable data_boost_enabled"] + }, + { + "name": "SET DATA_BOOST_ENABLED = TRUE|FALSE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_DATA_BOOST_ENABLED", + "regex": "(?is)\\A\\s*set\\s+data_boost_enabled\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetDataBoostEnabled", + "exampleStatements": ["set data_boost_enabled = true", "set data_boost_enabled = false"], + "setStatement": { + "propertyName": "DATA_BOOST_ENABLED", + "separator": "=", + "allowedValues": "(TRUE|FALSE)", + "converterName": "ClientSideStatementValueConverters$BooleanConverter" + } + }, + { + "name": "SHOW VARIABLE MAX_PARTITIONS", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_MAX_PARTITIONS", + "regex": "(?is)\\A\\s*show\\s+variable\\s+max_partitions\\s*\\z", + "method": "statementShowMaxPartitions", + "exampleStatements": ["show max_partitions"] + }, + { + "name": "SET MAX_PARTITIONS = ", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_MAX_PARTITIONS", + "regex": "(?is)\\A\\s*set\\s+max_partitions\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetMaxPartitions", + "exampleStatements": ["set max_partitions = 0", "set max_partitions = 10"], + "setStatement": { + "propertyName": "MAX_PARTITIONS", + "separator": "=", + "allowedValues": "(\\d{1,9})", + "converterName": "ClientSideStatementValueConverters$IntegerConverter" + } } ] } diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json index 01f55f846e8..10c0b916ec0 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json @@ -176,6 +176,24 @@ "method": "statementExplain", "exampleStatements": [] }, + { + "name": "PARTITION ", + "executorName": "ClientSideStatementPartitionExecutor", + "resultType": "RESULT_SET", + "statementType": "PARTITION", + "regex": "(?is)\\A\\s*partition(\\s+|\\()(.*)\\z", + "method": "statementPartition", + "exampleStatements": [] + }, + { + "name": "RUN PARTITION ['']", + "executorName": "ClientSideStatementRunPartitionExecutor", + "resultType": "RESULT_SET", + "statementType": "RUN_PARTITION", + "regex": "(?is)\\A\\s*run\\s+partition(?:\\s*'(.*)')?\\s*\\z", + "method": "statementRunPartition", + "exampleStatements": [] + }, { "name": "{START | BEGIN} [TRANSACTION | WORK] [{ (READ ONLY|READ WRITE) [[,] (ISOLATION LEVEL (DEFAULT|SERIALIZABLE))] [[,] NOT DEFERRABLE]}]", "executorName": "ClientSideStatementPgBeginExecutor", @@ -662,6 +680,54 @@ "allowedValues": "(TRUE|FALSE)", "converterName": "ClientSideStatementValueConverters$BooleanConverter" } + }, + { + "name": "SHOW [VARIABLE] SPANNER.DATA_BOOST_ENABLED", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_DATA_BOOST_ENABLED", + "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.data_boost_enabled\\s*\\z", + "method": "statementShowDataBoostEnabled", + "exampleStatements": ["show spanner.data_boost_enabled","show variable spanner.data_boost_enabled"] + }, + { + "name": "SET SPANNER.DATA_BOOST_ENABLED = TRUE|FALSE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_DATA_BOOST_ENABLED", + "regex": "(?is)\\A\\s*set\\s+spanner\\.data_boost_enabled(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetDataBoostEnabled", + "exampleStatements": ["set spanner.data_boost_enabled = true", "set spanner.data_boost_enabled = false", "set spanner.data_boost_enabled to true", "set spanner.data_boost_enabled to false"], + "setStatement": { + "propertyName": "SPANNER.DATA_BOOST_ENABLED", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(TRUE|FALSE)", + "converterName": "ClientSideStatementValueConverters$BooleanConverter" + } + }, + { + "name": "SHOW [VARIABLE] SPANNER.MAX_PARTITIONS", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_MAX_PARTITIONS", + "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.max_partitions\\s*\\z", + "method": "statementShowMaxPartitions", + "exampleStatements": ["show spanner.max_partitions","show variable spanner.max_partitions"] + }, + { + "name": "SET SPANNER.MAX_PARTITIONS = ", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_MAX_PARTITIONS", + "regex": "(?is)\\A\\s*set\\s+spanner\\.max_partitions(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetMaxPartitions", + "exampleStatements": ["set spanner.max_partitions = 1", "set spanner.max_partitions = 10", "set spanner.max_partitions to 5", "set spanner.max_partitions to 20"], + "setStatement": { + "propertyName": "SPANNER.MAX_PARTITIONS", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(\\d{1,9})", + "converterName": "ClientSideStatementValueConverters$IntegerConverter" + } } ] } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java index 66695676112..229b79f6a04 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MockSpannerServiceImpl.java @@ -55,6 +55,7 @@ import com.google.spanner.v1.ListSessionsResponse; import com.google.spanner.v1.PartialResultSet; import com.google.spanner.v1.Partition; +import com.google.spanner.v1.PartitionOptions; import com.google.spanner.v1.PartitionQueryRequest; import com.google.spanner.v1.PartitionReadRequest; import com.google.spanner.v1.PartitionResponse; @@ -107,6 +108,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; +import java.util.stream.LongStream; import org.threeten.bp.Instant; /** @@ -2007,7 +2010,11 @@ public void partitionQuery( try { partitionQueryExecutionTime.simulateExecutionTime( exceptions, stickyGlobalExceptions, freezeLock); - partition(request.getSession(), request.getTransaction(), responseObserver); + partition( + request.getSession(), + request.getTransaction(), + request.getPartitionOptions(), + responseObserver); } catch (StatusRuntimeException t) { responseObserver.onError(t); } catch (Throwable t) { @@ -2022,7 +2029,11 @@ public void partitionRead( try { partitionReadExecutionTime.simulateExecutionTime( exceptions, stickyGlobalExceptions, freezeLock); - partition(request.getSession(), request.getTransaction(), responseObserver); + partition( + request.getSession(), + request.getTransaction(), + request.getPartitionOptions(), + responseObserver); } catch (StatusRuntimeException t) { responseObserver.onError(t); } catch (Throwable t) { @@ -2033,6 +2044,7 @@ public void partitionRead( private void partition( String sessionName, TransactionSelector transactionSelector, + PartitionOptions options, StreamObserver responseObserver) { Session session = sessions.get(sessionName); if (session == null) { @@ -2044,10 +2056,16 @@ private void partition( ByteString transactionId = getTransactionId(session, transactionSelector); responseObserver.onNext( PartitionResponse.newBuilder() - .addPartitions( - Partition.newBuilder() - .setPartitionToken(generatePartitionToken(session.getName(), transactionId)) - .build()) + .addAllPartitions( + LongStream.range( + 0L, options.getMaxPartitions() == 0L ? 1L : options.getMaxPartitions()) + .mapToObj( + ignored -> + Partition.newBuilder() + .setPartitionToken( + generatePartitionToken(session.getName(), transactionId)) + .build()) + .collect(Collectors.toList())) .build()); responseObserver.onCompleted(); } catch (StatusRuntimeException e) { diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AutocommitDmlModeTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AutocommitDmlModeTest.java index 2acdf6f3d15..a66d14a8b76 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AutocommitDmlModeTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AutocommitDmlModeTest.java @@ -25,6 +25,7 @@ import static org.mockito.Mockito.when; import com.google.cloud.NoCredentials; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.Spanner; @@ -70,7 +71,7 @@ private ConnectionImpl createConnection(ConnectionOptions options) { when(txManager.begin()).thenReturn(txContext); when(dbClient.transactionManager()).thenReturn(txManager); - return new ConnectionImpl(options, spannerPool, ddlClient, dbClient); + return new ConnectionImpl(options, spannerPool, ddlClient, dbClient, mock(BatchClient.class)); } @Test diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java new file mode 100644 index 00000000000..721f8c07502 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java @@ -0,0 +1,392 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.cloud.Timestamp; +import com.google.cloud.spanner.Dialect; +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.MockSpannerServiceImpl.SimulatedExecutionTime; +import com.google.cloud.spanner.MockSpannerServiceImpl.StatementResult; +import com.google.cloud.spanner.PartitionOptions; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.Statement; +import com.google.spanner.v1.BeginTransactionRequest; +import com.google.spanner.v1.CreateSessionRequest; +import com.google.spanner.v1.ExecuteSqlRequest; +import com.google.spanner.v1.PartitionQueryRequest; +import io.grpc.Status; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameter; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class BatchReadMockServerTest extends AbstractMockServerTest { + + @Parameters(name = "dialect = {0}") + public static Object[] data() { + return Dialect.values(); + } + + @Parameter public Dialect dialect; + + @Before + public void setupDialect() { + mockSpanner.putStatementResult(StatementResult.detectDialectResult(dialect)); + } + + @After + public void clearRequests() { + mockSpanner.clearRequests(); + SpannerPool.closeSpannerPool(); + } + + @Test + public void testPartitionQuery() { + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + for (int i = 0; i < 2; i++) { + try (ResultSet resultSet = + connection.partitionQuery( + Statement.newBuilder("select * from my_table where id=@id") + .bind("p1") + .to(1L) + .build(), + PartitionOptions.newBuilder().build())) { + assertTrue(resultSet.next()); + assertEquals(1, resultSet.getColumnCount()); + PartitionId partitionId = PartitionId.decodeFromString(resultSet.getString("PARTITION")); + assertNotNull(partitionId); + assertFalse(resultSet.next()); + } + } + } + assertEquals(2, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + + @Test + public void testPartitionQueryInReadOnlyTransaction() { + try (Connection connection = createConnection()) { + connection.setAutocommit(false); + connection.setReadOnly(true); + for (int i = 0; i < 2; i++) { + try (ResultSet resultSet = + connection.partitionQuery( + Statement.newBuilder("select * from my_table where id=@id") + .bind("p1") + .to(1L) + .build(), + PartitionOptions.newBuilder().build())) { + assertTrue(resultSet.next()); + assertFalse(resultSet.next()); + } + } + } + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + + @Test + public void testMixNormalAndPartitionQueryInReadOnlyTransaction() { + List readTimestamps = new ArrayList<>(); + try (Connection connection = createConnection()) { + connection.setAutocommit(false); + connection.setReadOnly(true); + for (int i = 0; i < 2; i++) { + try (ResultSet resultSet = connection.executeQuery(SELECT_COUNT_STATEMENT)) { + assertTrue(resultSet.next()); + assertEquals(0L, resultSet.getLong(0)); + assertFalse(resultSet.next()); + } + try (ResultSet resultSet = + connection.partitionQuery( + Statement.newBuilder("select * from my_table where id=@id") + .bind("p1") + .to(1L) + .build(), + PartitionOptions.newBuilder().build())) { + assertTrue(resultSet.next()); + assertFalse(resultSet.next()); + } + readTimestamps.add(connection.getReadTimestamp()); + connection.commit(); + } + } + // The above will start two transactions: + // 1. The initial 'normal' read-only transaction. + // 2. The batch read-only transaction. The latter will use the same read timestamp as the normal + // read-only transaction. + assertEquals(2, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(4, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + + List beginRequests = + mockSpanner.getRequestsOfType(BeginTransactionRequest.class); + assertTrue(beginRequests.get(0).getOptions().getReadOnly().hasStrong()); + assertTrue(beginRequests.get(1).getOptions().getReadOnly().hasReadTimestamp()); + assertTrue(beginRequests.get(2).getOptions().getReadOnly().hasStrong()); + assertTrue(beginRequests.get(3).getOptions().getReadOnly().hasReadTimestamp()); + + assertEquals( + readTimestamps.get(0), + Timestamp.fromProto(beginRequests.get(1).getOptions().getReadOnly().getReadTimestamp())); + assertEquals( + readTimestamps.get(1), + Timestamp.fromProto(beginRequests.get(3).getOptions().getReadOnly().getReadTimestamp())); + } + + @Test + public void testExecutePartition() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = Statement.of("select * from random_table"); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + + int maxPartitions = 5; + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + for (boolean dataBoostEnabled : new boolean[] {false, true}) { + connection.setDataBoostEnabled(dataBoostEnabled); + assertEquals(dataBoostEnabled, connection.isDataBoostEnabled()); + int rowCount = 0; + try (ResultSet partitions = + connection.partitionQuery( + statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { + + int partitionCount = 0; + while (partitions.next()) { + try (ResultSet resultSet = connection.runPartition(partitions.getString("PARTITION"))) { + while (resultSet.next()) { + rowCount++; + } + } + partitionCount++; + } + assertEquals(maxPartitions, partitionCount); + // The mock server is not smart enough to actually only return a partition of a query, so + // each partition just returns all rows of the query. + assertEquals(generatedRowCount * maxPartitions, rowCount); + } + + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + assertEquals(maxPartitions, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertFalse( + mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream() + .anyMatch(request -> request.getPartitionToken().isEmpty())); + assertFalse( + mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream() + .anyMatch(request -> request.getDataBoostEnabled() != dataBoostEnabled)); + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testExecutePartitionUsingSql() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + String paramName = dialect == Dialect.POSTGRESQL ? "$1" : "@p1"; + Statement statement = + Statement.newBuilder(String.format("select * from random_table where active=%s", paramName)) + .bind("p1") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + String prefix = dialect == Dialect.POSTGRESQL ? "spanner." : ""; + + int maxPartitions = 5; + try (Connection connection = createConnection()) { + connection.execute(Statement.of("set autocommit=true")); + assertTrue(connection.isAutocommit()); + for (boolean dataBoostEnabled : new boolean[] {false, true}) { + connection.execute( + Statement.of(String.format("set %sdata_boost_enabled=%s", prefix, dataBoostEnabled))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of(String.format("show variable %sdata_boost_enabled", prefix)))) { + assertTrue(resultSet.next()); + assertEquals(dataBoostEnabled, resultSet.getBoolean(0)); + assertFalse(resultSet.next()); + } + connection.execute( + Statement.of(String.format("set %smax_partitions=%d", prefix, maxPartitions))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of(String.format("show variable %smax_partitions", prefix)))) { + assertTrue(resultSet.next()); + assertEquals(maxPartitions, resultSet.getLong(0)); + assertFalse(resultSet.next()); + } + + for (boolean useLiteral : new boolean[] {true, false}) { + try (ResultSet partitions = + connection.executeQuery( + Statement.newBuilder("partition " + statement.getSql()) + .bind("p1") + .to(true) + .build())) { + int rowCount = 0; + int partitionCount = 0; + while (partitions.next()) { + try (ResultSet resultSet = + connection.executeQuery( + useLiteral + ? Statement.newBuilder( + "RUN PARTITION '" + partitions.getString("PARTITION") + "'") + .bind("partition") + .to(partitions.getString("PARTITION")) + .build() + : Statement.newBuilder("RUN PARTITION") + .bind("PARTITION") + .to(partitions.getString("PARTITION")) + .build())) { + while (resultSet.next()) { + rowCount++; + } + } + partitionCount++; + } + assertEquals(maxPartitions, partitionCount); + // The mock server is not smart enough to actually only return a partition of a query, + // so + // each partition just returns all rows of the query. + assertEquals(generatedRowCount * maxPartitions, rowCount); + } + + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + assertEquals(maxPartitions, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertFalse( + mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream() + .anyMatch(request -> request.getPartitionToken().isEmpty())); + assertFalse( + mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream() + .anyMatch(request -> request.getDataBoostEnabled() != dataBoostEnabled)); + mockSpanner.clearRequests(); + } + } + } + } + + @Test + public void testExecutePartitionedQuery() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + + int maxPartitions = 5; + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + try (ResultSet resultSet = + connection.executePartitionedQuery( + statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + // The mock server is not smart enough to actually return only a partition of the query. + // Instead, the server returns the same query result for each partition, so the actual row + // count will be maxPartitions * generatedRowCount. + assertEquals(maxPartitions * generatedRowCount, rowCount); + } + } + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + + @Test + public void testExecutePartitionedQueryWithError() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + + int maxPartitions = 5; + try (Connection connection = createConnection()) { + // Make sure the query that determines the dialect has been executed before setting any query + // errors. This ensures that the error is returned for the partitioned query, and not for the + // query that determines the dialect. + assertEquals(dialect, connection.getDialect()); + int errorIndex = new Random().nextInt(generatedRowCount); + mockSpanner.setExecuteStreamingSqlExecutionTime( + SimulatedExecutionTime.ofStreamException( + Status.RESOURCE_EXHAUSTED.withDescription("test error").asRuntimeException(), + errorIndex)); + connection.setAutocommit(true); + + int rowCount = 0; + try (ResultSet resultSet = + connection.executePartitionedQuery( + statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { + while (resultSet.next()) { + rowCount++; + } + fail( + "missing expected exception for error index " + + errorIndex + + ". Got row count " + + rowCount); + } catch (SpannerException exception) { + assertEquals(ErrorCode.RESOURCE_EXHAUSTED, exception.getErrorCode()); + assertTrue(exception.getMessage().contains("test error")); + // The mock server is not smart enough to actually return only a partition of the query. + // Instead, the server returns the same query result for each partition, so the actual row + // count will be (at most): + // maxPartitions * generatedRowCount - (generatedRowCount - errorIndex). + // The error that is added to the stream is removed the first time it is encountered, so + // only one of the partition executors will see it. + assertTrue( + String.format( + "rowCount (%d) should be <= maxPartitions (%d) * generatedRowCount (%d) - (generatedRowCount (%d) - errorIndex (%d))", + rowCount, maxPartitions, generatedRowCount, generatedRowCount, errorIndex), + rowCount <= (maxPartitions * generatedRowCount - (generatedRowCount - errorIndex))); + } + } + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } +} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java index 9b2aa0930cf..2d2ef0781f0 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java @@ -65,7 +65,7 @@ public void testBeginWithNoOption() { "start work isolation level serializable")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, never()).setTransactionMode(any()); @@ -89,7 +89,7 @@ public void testBeginReadOnly() { "start work read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); @@ -114,7 +114,7 @@ public void testBeginReadWrite() { "start work read write")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); @@ -140,7 +140,7 @@ public void testBeginReadOnlyWithIsolationLevel() { "begin read write , \nisolation level default\n\t,read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); @@ -173,7 +173,7 @@ public void testBeginWithNotDeferrable() { "begin not deferrable read write , \nisolation level default\n\t,read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java index cd72da4cd3f..396a312ce45 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java @@ -42,6 +42,7 @@ import com.google.api.gax.longrunning.OperationFuture; import com.google.cloud.NoCredentials; import com.google.cloud.Timestamp; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.CommitStats; import com.google.cloud.spanner.DatabaseClient; @@ -365,7 +366,7 @@ public TransactionRunner allowNestedTransaction() { }; } }); - return new ConnectionImpl(options, spannerPool, ddlClient, dbClient); + return new ConnectionImpl(options, spannerPool, ddlClient, dbClient, mock(BatchClient.class)); } @Test @@ -1377,7 +1378,8 @@ public void testMergeQueryOptions() { any(), any(ParsedStatement.class), any(AnalyzeMode.class), Mockito.any())) .thenReturn(ApiFutures.immediateFuture(mock(ResultSet.class))); try (ConnectionImpl impl = - new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient) { + new ConnectionImpl( + connectionOptions, spannerPool, ddlClient, dbClient, mock(BatchClient.class)) { @Override UnitOfWork getCurrentUnitOfWorkOrStartNewUnitOfWork() { return unitOfWork; @@ -1485,7 +1487,8 @@ public void testStatementTagAlwaysAllowed() { any(), any(ParsedStatement.class), any(AnalyzeMode.class), Mockito.any())) .thenReturn(ApiFutures.immediateFuture(mock(ResultSet.class))); try (ConnectionImpl connection = - new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient) { + new ConnectionImpl( + connectionOptions, spannerPool, ddlClient, dbClient, mock(BatchClient.class)) { @Override UnitOfWork getCurrentUnitOfWorkOrStartNewUnitOfWork() { return unitOfWork; @@ -1524,7 +1527,8 @@ public void testTransactionTagAllowedInTransaction() { DatabaseClient dbClient = mock(DatabaseClient.class); when(dbClient.getDialect()).thenReturn(Dialect.GOOGLE_STANDARD_SQL); try (ConnectionImpl connection = - new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient)) { + new ConnectionImpl( + connectionOptions, spannerPool, ddlClient, dbClient, mock(BatchClient.class))) { assertFalse(connection.isAutocommit()); assertNull(connection.getTransactionTag()); @@ -1565,7 +1569,8 @@ public void testTransactionTagNotAllowedWithoutTransaction() { DatabaseClient dbClient = mock(DatabaseClient.class); when(dbClient.getDialect()).thenReturn(Dialect.GOOGLE_STANDARD_SQL); try (ConnectionImpl connection = - new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient)) { + new ConnectionImpl( + connectionOptions, spannerPool, ddlClient, dbClient, mock(BatchClient.class))) { assertTrue(connection.isAutocommit()); try { @@ -1593,7 +1598,8 @@ public void testTransactionTagNotAllowedAfterTransactionStarted() { .thenReturn(ApiFutures.immediateFuture(mock(ResultSet.class))); when(unitOfWork.rollbackAsync(any())).thenReturn(ApiFutures.immediateFuture(null)); try (ConnectionImpl connection = - new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient) { + new ConnectionImpl( + connectionOptions, spannerPool, ddlClient, dbClient, mock(BatchClient.class)) { @Override UnitOfWork createNewUnitOfWork() { return unitOfWork; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java index 6140825f57b..39d6b385be0 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java @@ -58,7 +58,7 @@ public void testExecuteGetAutocommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementShowAutocommit()).thenCallRealMethod(); - statement.getClientSideStatement().execute(executor, "show variable autocommit"); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).isAutocommit(); } @@ -70,9 +70,7 @@ public void testExecuteGetReadOnly() { ConnectionImpl connection = mock(ConnectionImpl.class); when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); - statement - .getClientSideStatement() - .execute(executor, String.format("show variable %sreadonly", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).isReadOnly(); } @@ -86,10 +84,7 @@ public void testExecuteGetAutocommitDmlMode() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getAutocommitDmlMode()).thenReturn(AutocommitDmlMode.TRANSACTIONAL); - statement - .getClientSideStatement() - .execute( - executor, String.format("show variable %sautocommit_dml_mode", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getAutocommitDmlMode(); } @@ -102,7 +97,7 @@ public void testExecuteGetStatementTimeout() { when(executor.statementShowStatementTimeout()).thenCallRealMethod(); when(connection.hasStatementTimeout()).thenReturn(true); when(connection.getStatementTimeout(TimeUnit.NANOSECONDS)).thenReturn(1L); - statement.getClientSideStatement().execute(executor, "show variable statement_timeout"); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(2)).getStatementTimeout(TimeUnit.NANOSECONDS); } @@ -115,9 +110,7 @@ public void testExecuteGetReadTimestamp() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getReadTimestampOrNull()).thenReturn(Timestamp.now()); - statement - .getClientSideStatement() - .execute(executor, String.format("show variable %sread_timestamp", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getReadTimestampOrNull(); } @@ -130,10 +123,7 @@ public void testExecuteGetCommitTimestamp() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getCommitTimestampOrNull()).thenReturn(Timestamp.now()); - statement - .getClientSideStatement() - .execute( - executor, String.format("show variable %scommit_timestamp", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getCommitTimestampOrNull(); } @@ -147,10 +137,7 @@ public void testExecuteGetReadOnlyStaleness() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getReadOnlyStaleness()).thenReturn(TimestampBound.strong()); - statement - .getClientSideStatement() - .execute( - executor, String.format("show variable %sread_only_staleness", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getReadOnlyStaleness(); } @@ -164,10 +151,7 @@ public void testExecuteGetOptimizerVersion() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getOptimizerVersion()).thenReturn("1"); - statement - .getClientSideStatement() - .execute( - executor, String.format("show variable %soptimizer_version", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getOptimizerVersion(); } @@ -182,11 +166,7 @@ public void testExecuteGetOptimizerStatisticsPackage() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getOptimizerStatisticsPackage()).thenReturn("custom-package"); - statement - .getClientSideStatement() - .execute( - executor, - String.format("show variable %soptimizer_statistics_package", getNamespace(dialect))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getOptimizerStatisticsPackage(); } @@ -196,7 +176,7 @@ public void testExecuteBegin() { for (String statement : subject.getClientSideStatement().getExampleStatements()) { ConnectionImpl connection = mock(ConnectionImpl.class); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); verify(connection, times(1)).beginTransaction(); } } @@ -209,7 +189,7 @@ public void testExecuteCommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementCommit()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); verify(connection, times(1)).commit(); } } @@ -222,7 +202,7 @@ public void testExecuteRollback() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementRollback()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); verify(connection, times(1)).rollback(); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java index b68f78908b0..78722b7072d 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java @@ -55,6 +55,10 @@ public void setup() { parser = AbstractStatementParser.getInstance(dialect); } + ParsedStatement parse(String sql) { + return parser.parse(Statement.of(sql)); + } + @Test public void testExecuteSetAutocommit() { ParsedStatement subject = parser.parse(Statement.of("set autocommit = true")); @@ -65,7 +69,7 @@ public void testExecuteSetAutocommit() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set autocommit = %s", mode)); + .execute(executor, parse(String.format("set autocommit = %s", mode))); verify(connection, times(1)).setAutocommit(mode); } } @@ -81,7 +85,8 @@ public void testExecuteSetReadOnly() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set %sreadonly = %s", getNamespace(dialect), mode)); + .execute( + executor, parse(String.format("set %sreadonly = %s", getNamespace(dialect), mode))); verify(connection, times(1)).setReadOnly(mode); } } @@ -98,7 +103,8 @@ public void testExecuteSetReadOnlyTo() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set %sreadonly to %s", getNamespace(dialect), mode)); + .execute( + executor, parse(String.format("set %sreadonly to %s", getNamespace(dialect), mode))); verify(connection, times(1)).setReadOnly(mode); } } @@ -117,7 +123,9 @@ public void testExecuteSetAutocommitDmlMode() { .getClientSideStatement() .execute( executor, - String.format("set %sautocommit_dml_mode='%s'", getNamespace(dialect), mode.name())); + parse( + String.format( + "set %sautocommit_dml_mode='%s'", getNamespace(dialect), mode.name()))); verify(connection, times(1)).setAutocommitDmlMode(mode); } } @@ -140,9 +148,10 @@ public void testExecuteSetStatementTimeout() { .getClientSideStatement() .execute( executor, - String.format( - "set statement_timeout='%d%s'", - val, ReadOnlyStalenessUtil.getTimeUnitAbbreviation(unit))); + parse( + String.format( + "set statement_timeout='%d%s'", + val, ReadOnlyStalenessUtil.getTimeUnitAbbreviation(unit)))); verify(connection, times(1)).setStatementTimeout(val, unit); } } @@ -153,15 +162,15 @@ public void testExecuteSetStatementTimeout() { parser.parse(Statement.of(String.format("set statement_timeout=%d", val))); subject .getClientSideStatement() - .execute(executor, String.format("set statement_timeout=%d", val)); + .execute(executor, parse(String.format("set statement_timeout=%d", val))); verify(connection, times(1)).setStatementTimeout(val, TimeUnit.MILLISECONDS); } ParsedStatement subject = parser.parse(Statement.of("set statement_timeout=default")); - subject.getClientSideStatement().execute(executor, "set statement_timeout=default"); + subject.getClientSideStatement().execute(executor, parse("set statement_timeout=default")); } else { ParsedStatement subject = parser.parse(Statement.of("set statement_timeout=null")); - subject.getClientSideStatement().execute(executor, "set statement_timeout=null"); + subject.getClientSideStatement().execute(executor, parse("set statement_timeout=null")); } verify(connection, times(1)).clearStatementTimeout(); } @@ -187,9 +196,10 @@ public void testExecuteSetReadOnlyStaleness() { .getClientSideStatement() .execute( executor, - String.format( - "set %sread_only_staleness='%s'", - getNamespace(dialect), timestampBoundToString(val))); + parse( + String.format( + "set %sread_only_staleness='%s'", + getNamespace(dialect), timestampBoundToString(val)))); verify(connection, times(1)).setReadOnlyStaleness(val); } } @@ -225,7 +235,7 @@ public void testExecuteSetOptimizerVersion() { .getClientSideStatement() .execute( executor, - String.format("set %soptimizer_version='%s'", getNamespace(dialect), version)); + parse(String.format("set %soptimizer_version='%s'", getNamespace(dialect), version))); verify(connection, times(1)).setOptimizerVersion(version); } } @@ -245,9 +255,10 @@ public void testExecuteSetOptimizerStatisticsPackage() { .getClientSideStatement() .execute( executor, - String.format( - "set %soptimizer_statistics_package='%s'", - getNamespace(dialect), statisticsPackage)); + parse( + String.format( + "set %soptimizer_statistics_package='%s'", + getNamespace(dialect), statisticsPackage))); verify(connection, times(1)).setOptimizerStatisticsPackage(statisticsPackage); } } @@ -260,7 +271,7 @@ public void testExecuteSetTransaction() { for (TransactionMode mode : TransactionMode.values()) { subject .getClientSideStatement() - .execute(executor, String.format("set transaction %s", mode.getStatementString())); + .execute(executor, parse(String.format("set transaction %s", mode.getStatementString()))); verify(connection, times(1)).setTransactionMode(mode); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java index b927668d472..c865834350a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java @@ -24,7 +24,7 @@ public class ExplainCommandConverterTest { @Test public void testConvert() { - ExplainCommandConverter explainCommandConverter = new ExplainCommandConverter(); + ExplainCommandConverter explainCommandConverter = ExplainCommandConverter.INSTANCE; assertEquals( "select * from table1", explainCommandConverter.convert("explain select * from table1")); assertEquals( diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyStalenessTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyStalenessTest.java index fa155ea33bc..18116475f95 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyStalenessTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyStalenessTest.java @@ -26,6 +26,7 @@ import com.google.cloud.NoCredentials; import com.google.cloud.Timestamp; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.ReadOnlyTransaction; @@ -61,7 +62,7 @@ private ConnectionImpl createConnection(ConnectionOptions options) { when(readOnlyTx.executeQuery(Statement.of(SELECT))).thenReturn(mock(ResultSet.class)); when(dbClient.readOnlyTransaction(any(TimestampBound.class))).thenReturn(readOnlyTx); - return new ConnectionImpl(options, spannerPool, ddlClient, dbClient); + return new ConnectionImpl(options, spannerPool, ddlClient, dbClient, mock(BatchClient.class)); } @Test diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java index 77240b74595..97394f67d0a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java @@ -44,7 +44,7 @@ public void testSetIsolationLevelDefault() { String sql = "set session characteristics as transaction isolation level default"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, never()).setReadOnly(anyBoolean()); } @@ -57,7 +57,7 @@ public void testSetIsolationLevelSerializable() { String sql = "set session characteristics as transaction isolation level serializable"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, never()).setReadOnly(anyBoolean()); } @@ -70,7 +70,7 @@ public void testSetIsolationLevelReadOnly() { String sql = "set\tsession\ncharacteristics as transaction read only"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(true); verify(connection, never()).setReadOnly(false); @@ -84,7 +84,7 @@ public void testSetIsolationLevelReadWrite() { String sql = "set session characteristics as transaction read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -99,7 +99,7 @@ public void testSetIsolationLevelSerializableReadWrite() { "set session characteristics as transaction isolation level serializable read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -114,7 +114,7 @@ public void testSetIsolationLevelSerializableReadOnly() { "set session characteristics as transaction isolation level serializable read only"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(true); } @@ -128,7 +128,7 @@ public void testSetMultipleTransactionModes() { "set session characteristics as transaction isolation level default, read only, isolation level serializable, read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -154,7 +154,7 @@ public void testDefaultTransactionIsolation() { }) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } // Setting the isolation level is a no-op. @@ -189,7 +189,7 @@ public void testDefaultTransactionReadOnlyTrue() { for (String sql : statements) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } verify(connection, times(statements.length)).setReadOnly(true); @@ -223,7 +223,7 @@ public void testDefaultTransactionReadOnlyFalse() { for (String sql : statements) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } verify(connection, times(statements.length)).setReadOnly(false); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SpannerPoolTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SpannerPoolTest.java index 59c9065e41e..8274d0da13e 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SpannerPoolTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SpannerPoolTest.java @@ -27,6 +27,7 @@ import com.google.auth.Credentials; import com.google.cloud.NoCredentials; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.ErrorCode; @@ -288,7 +289,9 @@ public void testLeakedConnection() { DatabaseClient dbClient = mock(DatabaseClient.class); when(dbClient.getDialect()).thenReturn(Dialect.GOOGLE_STANDARD_SQL); // create an actual connection object but not in a try-with-resources block - Connection connection = new ConnectionImpl(options, SpannerPool.INSTANCE, ddlClient, dbClient); + Connection connection = + new ConnectionImpl( + options, SpannerPool.INSTANCE, ddlClient, dbClient, mock(BatchClient.class)); // try to close the application which should fail try { ConnectionOptions.closeSpanner(); From 98175869a9fac01b1553a8554c1a5f031576ca07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 24 Jul 2023 15:51:56 +0200 Subject: [PATCH 02/18] fix: match the correct group in regex --- .../ClientSideStatementRunPartitionExecutor.java | 11 +++++++++-- .../cloud/spanner/connection/PartitionId.java | 16 ++++++++++++++++ .../connection/BatchReadMockServerTest.java | 10 +++------- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java index 427f77eeec8..4be38892724 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.Value; import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; @@ -44,13 +46,18 @@ class ClientSideStatementRunPartitionExecutor implements ClientSideStatementExec public StatementResult execute( ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { String partitionId = getParameterValue(parsedStatement); + if (partitionId == null) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, + "No valid partition id found in statement: " + parsedStatement.getStatement().getSql()); + } return (StatementResult) method.invoke(connection, partitionId); } String getParameterValue(ParsedStatement parsedStatement) { Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); - if (matcher.find() && matcher.groupCount() >= 2) { - String value = matcher.group(2); + if (matcher.find() && matcher.groupCount() >= 1) { + String value = matcher.group(1); if (!Strings.isNullOrEmpty(value)) { return value; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java index a6da8de5e65..005c620ddaa 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionId.java @@ -1,3 +1,19 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.cloud.spanner.connection; import com.google.cloud.spanner.BatchTransactionId; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java index 721f8c07502..fd3c5c752fa 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java @@ -263,11 +263,8 @@ public void testExecutePartitionUsingSql() { try (ResultSet resultSet = connection.executeQuery( useLiteral - ? Statement.newBuilder( - "RUN PARTITION '" + partitions.getString("PARTITION") + "'") - .bind("partition") - .to(partitions.getString("PARTITION")) - .build() + ? Statement.of( + "RUN PARTITION '" + partitions.getString("PARTITION") + "'") : Statement.newBuilder("RUN PARTITION") .bind("PARTITION") .to(partitions.getString("PARTITION")) @@ -280,8 +277,7 @@ public void testExecutePartitionUsingSql() { } assertEquals(maxPartitions, partitionCount); // The mock server is not smart enough to actually only return a partition of a query, - // so - // each partition just returns all rows of the query. + // so each partition just returns all rows of the query. assertEquals(generatedRowCount * maxPartitions, rowCount); } From bca9b128cb261304cab41478a13218de4ee36cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 15:11:32 +0200 Subject: [PATCH 03/18] feat: add more SQL statements for partitioned queries --- .../clirr-ignored-differences.xml | 57 +++++ .../ClientSideStatementPartitionExecutor.java | 20 +- ...eStatementRunPartitionedQueryExecutor.java | 67 ++++++ .../ClientSideStatementValueConverters.java | 45 ---- .../cloud/spanner/connection/Connection.java | 43 +++- .../spanner/connection/ConnectionImpl.java | 84 ++++++- .../spanner/connection/ConnectionOptions.java | 118 +++++++++- .../ConnectionStatementExecutor.java | 10 + .../ConnectionStatementExecutorImpl.java | 48 +++- .../spanner/connection/MergedResultSet.java | 28 ++- .../connection/PartitionedQueryResultSet.java | 29 +++ .../spanner/connection/StatementResult.java | 5 + .../connection/ClientSideStatements.json | 59 ++++- .../connection/PG_ClientSideStatements.json | 57 +++++ .../connection/ConnectionOptionsTest.java | 136 ++++++++++++ .../connection/ITAbstractSpannerTest.java | 4 +- ...va => PartitionedQueryMockServerTest.java} | 209 +++++++++++++++++- .../connection/ReadOnlyTransactionTest.java | 3 + .../connection/SingleUseTransactionTest.java | 3 + .../cloud/spanner/it/ITBatchReadTest.java | 53 ++++- 20 files changed, 994 insertions(+), 84 deletions(-) create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java create mode 100644 google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionedQueryResultSet.java rename google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/{BatchReadMockServerTest.java => PartitionedQueryMockServerTest.java} (64%) diff --git a/google-cloud-spanner/clirr-ignored-differences.xml b/google-cloud-spanner/clirr-ignored-differences.xml index 74d6d823ae6..79f83d7e422 100644 --- a/google-cloud-spanner/clirr-ignored-differences.xml +++ b/google-cloud-spanner/clirr-ignored-differences.xml @@ -359,4 +359,61 @@ com/google/cloud/spanner/connection/Connection boolean isDelayTransactionStartUntilFirstWrite() + + + + 7012 + com/google/cloud/spanner/connection/Connection + int getMaxPartitionedParallelism() + + + 7012 + com/google/cloud/spanner/connection/Connection + int getMaxPartitions() + + + 7012 + com/google/cloud/spanner/connection/Connection + boolean isAlwaysUsePartitionedQueries() + + + 7012 + com/google/cloud/spanner/connection/Connection + boolean isDataBoostEnabled() + + + 7012 + com/google/cloud/spanner/connection/Connection + com.google.cloud.spanner.ResultSet partitionQuery(com.google.cloud.spanner.Statement, com.google.cloud.spanner.PartitionOptions, com.google.cloud.spanner.Options$QueryOption[]) + + + 7012 + com/google/cloud/spanner/connection/Connection + com.google.cloud.spanner.ResultSet runPartition(java.lang.String) + + + 7012 + com/google/cloud/spanner/connection/Connection + com.google.cloud.spanner.connection.PartitionedQueryResultSet runPartitionedQuery(com.google.cloud.spanner.Statement, com.google.cloud.spanner.PartitionOptions, com.google.cloud.spanner.Options$QueryOption[]) + + + 7012 + com/google/cloud/spanner/connection/Connection + void setAlwaysUsePartitionedQueries(boolean) + + + 7012 + com/google/cloud/spanner/connection/Connection + void setDataBoostEnabled(boolean) + + + 7012 + com/google/cloud/spanner/connection/Connection + void setMaxPartitionedParallelism(int) + + + 7012 + com/google/cloud/spanner/connection/Connection + void setMaxPartitions(int) + diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java index 243ede2ac73..6181dd29bc8 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java @@ -21,7 +21,6 @@ import com.google.cloud.spanner.Statement; import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; -import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.PartitionCommandConverter; import java.lang.reflect.Method; import java.util.regex.Matcher; @@ -51,17 +50,14 @@ public StatementResult execute( String getParameterValue(ParsedStatement parsedStatement) { Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); - if (matcher.find() && matcher.groupCount() >= 1) { - String value = matcher.group(0); - if (value != null) { - String res = PartitionCommandConverter.INSTANCE.convert(value.trim()); - if (res != null) { - return res; - } - throw SpannerExceptionFactory.newSpannerException( - ErrorCode.INVALID_ARGUMENT, String.format("Invalid argument for PARTITION: %s", value)); - } + if (matcher.find() && matcher.groupCount() >= 2) { + String space = matcher.group(1); + String value = matcher.group(2); + return (space + value).trim(); } - return null; + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, + String.format( + "Invalid argument for PARTITION: %s", parsedStatement.getStatement().getSql())); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java new file mode 100644 index 00000000000..5f6f9c66582 --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java @@ -0,0 +1,67 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.Statement; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; +import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; +import java.lang.reflect.Method; +import java.util.regex.Matcher; + +/** Executor for RUN PARTITIONED QUERY <sql> statements. */ +class ClientSideStatementRunPartitionedQueryExecutor implements ClientSideStatementExecutor { + private final ClientSideStatementImpl statement; + private final Method method; + + ClientSideStatementRunPartitionedQueryExecutor(ClientSideStatementImpl statement) + throws CompileException { + try { + this.statement = statement; + this.method = + ConnectionStatementExecutor.class.getDeclaredMethod( + statement.getMethodName(), Statement.class); + } catch (Exception e) { + throw new CompileException(e, statement); + } + } + + @Override + public StatementResult execute( + ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { + String sql = getParameterValue(parsedStatement); + return (StatementResult) + method.invoke(connection, parsedStatement.getStatement().toBuilder().withSql(sql).build()); + } + + String getParameterValue(ParsedStatement parsedStatement) { + Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); + if (matcher.find() && matcher.groupCount() >= 2) { + // Include the spacing group in case the query is enclosed in parentheses like this: + // `run partitioned query(select * from foo)` + String space = matcher.group(1); + String value = matcher.group(2); + return (space + value).trim(); + } + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, + String.format( + "Invalid argument for RUN PARTITIONED QUERY: %s", + parsedStatement.getStatement().getSql())); + } +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java index 1ba01d76ac4..dfb27244363 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java @@ -522,49 +522,4 @@ public String convert(String value) { return value.substring(7).trim(); } } - - static class PartitionCommandConverter implements ClientSideStatementValueConverter { - private static final int KEYWORD_LENGTH = "PARTITION".length(); - - static final PartitionCommandConverter INSTANCE = new PartitionCommandConverter(); - - private PartitionCommandConverter() {} - - @Override - public Class getParameterClass() { - return String.class; - } - - @Override - public String convert(String value) { - // The first keyword should be PARTITION. - if (value.length() <= KEYWORD_LENGTH) { - return null; - } - return value.substring(KEYWORD_LENGTH).trim(); - } - } - - static class ExecutePartitionCommandConverter - implements ClientSideStatementValueConverter { - private static final int KEYWORD_LENGTH = "EXECUTE_PARTITION".length(); - - static final ExecutePartitionCommandConverter INSTANCE = new ExecutePartitionCommandConverter(); - - private ExecutePartitionCommandConverter() {} - - @Override - public Class getParameterClass() { - return String.class; - } - - @Override - public String convert(String value) { - // The first keyword should be EXECUTE_PARTITION. - if (value.length() <= KEYWORD_LENGTH) { - return null; - } - return value.substring(KEYWORD_LENGTH).trim(); - } - } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java index ba3c91667e3..2c6f07ae514 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java @@ -1044,8 +1044,30 @@ default boolean isDelayTransactionStartUntilFirstWrite() { */ boolean isDataBoostEnabled(); + /** + * Sets whether this connection should always use partitioned queries when a query is executed on + * this connection. Setting this flag to true and then executing a query that cannot + * be partitioned, or executing a query in a read/write transaction, will cause an error. Use this + * flag in combination with {@link #setDataBoostEnabled(boolean)} to force all queries on this + * connection to use data boost. + */ + void setAlwaysUsePartitionedQueries(boolean alwaysUsePartitionedQueries); + + /** Returns whether this connection will execute all queries as partitioned queries. */ + boolean isAlwaysUsePartitionedQueries(); + + /** + * Sets the maximum number of partitions that should be included as a hint to Cloud Spanner when + * partitioning a query on this connection. Note that this is only a hint and Cloud Spanner might + * choose to ignore the hint. + */ void setMaxPartitions(int maxPartitions); + /** + * Gets the maximum number of partitions that should be included as a hint to Cloud Spanner when + * partitioning a query on this connection. Note that this is only a hint and Cloud Spanner might + * choose to ignore the hint. + */ int getMaxPartitions(); /** @@ -1065,13 +1087,32 @@ ResultSet partitionQuery( */ ResultSet runPartition(String encodedPartitionId); + /** + * Sets the maximum degree of parallelism that is used when executing a partitioned query using + * {@link #runPartitionedQuery(Statement, PartitionOptions, QueryOption...)}. The method will use + * up to maxThreads to execute and retrieve the results from Cloud Spanner. Set this + * value to 0> to use the number of available processors as returned by {@link + * Runtime#availableProcessors()}. + */ + void setMaxPartitionedParallelism(int maxThreads); + + /** + * Returns the maximum degree of parallelism that is used for {@link + * #runPartitionedQuery(Statement, PartitionOptions, QueryOption...)} + */ + int getMaxPartitionedParallelism(); + /** * Executes the given query as a partitioned query. The query will first be partitioned using the * {@link #partitionQuery(Statement, PartitionOptions, QueryOption...)} method. Each of the * partitions will then be executed in the background, and the results will be merged into a * single result set. + * + *

This method will use maxPartitionedParallelism threads to execute the + * partitioned query. Set this variable to a higher/lower value to increase/decrease the degree of + * parallelism used for execution. */ - ResultSet executePartitionedQuery( + PartitionedQueryResultSet runPartitionedQuery( Statement query, PartitionOptions partitionOptions, QueryOption... options); /** diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index 87bf0cbb11a..e30b2e8d830 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -218,8 +218,31 @@ static UnitOfWorkType of(TransactionMode transactionMode) { private final List transactionRetryListeners = new ArrayList<>(); private AutocommitDmlMode autocommitDmlMode = AutocommitDmlMode.TRANSACTIONAL; private TimestampBound readOnlyStaleness = TimestampBound.strong(); + /** + * alwaysUsePartitionedQueries will force this connection to execute all queries as partitioned + * queries. If a query cannot be executed as a partitioned query, for example if it is not + * partitionable, then the query will fail. This mode is intended for integrations with frameworks + * that should always use partitioned queries, and that do not support executing custom SQL + * statements. This setting can be used in combination with the dataBoostEnabled flag to force all + * queries to use data boost. + */ + private boolean alwaysUsePartitionedQueries; + /** + * dataBoostEnabled=true will cause all partitionedQueries to use data boost. All other queries + * and other statements ignore this flag. + */ private boolean dataBoostEnabled; + /** + * maxPartitions determines the maximum number of partitions that will be used for partitioned + * queries. All other statements ignore this variable. + */ private int maxPartitions; + /** + * maxPartitionedParallelism determines the maximum number of threads that will be used to execute + * partitions in parallel when executing a partitioned query on this connection. + */ + private int maxPartitionedParallelism; + private QueryOptions queryOptions = QueryOptions.getDefaultInstance(); private RpcPriority rpcPriority = null; private SavepointSupport savepointSupport = SavepointSupport.FAIL_AFTER_ROLLBACK; @@ -248,6 +271,10 @@ static UnitOfWorkType of(TransactionMode transactionMode) { this.rpcPriority = options.getRPCPriority(); this.returnCommitStats = options.isReturnCommitStats(); this.delayTransactionStartUntilFirstWrite = options.isDelayTransactionStartUntilFirstWrite(); + this.dataBoostEnabled = options.isDataBoostEnabled(); + this.alwaysUsePartitionedQueries = options.isAlwaysUsePartitionedQueries(); + this.maxPartitions = options.getMaxPartitions(); + this.maxPartitionedParallelism = options.getMaxPartitionedParallelism(); this.ddlClient = createDdlClient(); setDefaultTransactionOptions(); } @@ -1010,6 +1037,16 @@ public boolean isDataBoostEnabled() { return this.dataBoostEnabled; } + @Override + public void setAlwaysUsePartitionedQueries(boolean alwaysUsePartitionedQueries) { + this.alwaysUsePartitionedQueries = alwaysUsePartitionedQueries; + } + + @Override + public boolean isAlwaysUsePartitionedQueries() { + return this.alwaysUsePartitionedQueries; + } + @Override public void setMaxPartitions(int maxPartitions) { this.maxPartitions = maxPartitions; @@ -1035,10 +1072,33 @@ public ResultSet partitionQuery( transaction.partitionQueryAsync( CallType.SYNC, parsedStatement, - partitionOptions, + getEffectivePartitionOptions(partitionOptions), mergeDataBoost(mergeQueryRequestOptions(mergeQueryStatementTag(options))))); } + private PartitionOptions getEffectivePartitionOptions( + PartitionOptions callSpecificPartitionOptions) { + if (maxPartitions == 0) { + if (callSpecificPartitionOptions == null) { + return PartitionOptions.newBuilder().build(); + } else { + return callSpecificPartitionOptions; + } + } + if (callSpecificPartitionOptions != null + && callSpecificPartitionOptions.getMaxPartitions() > 0L) { + return callSpecificPartitionOptions; + } + if (callSpecificPartitionOptions != null + && callSpecificPartitionOptions.getPartitionSizeBytes() > 0L) { + return PartitionOptions.newBuilder() + .setMaxPartitions(maxPartitions) + .setPartitionSizeBytes(callSpecificPartitionOptions.getPartitionSizeBytes()) + .build(); + } + return PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build(); + } + @Override public ResultSet runPartition(String encodedPartitionId) { PartitionId id = PartitionId.decodeFromString(encodedPartitionId); @@ -1049,7 +1109,18 @@ public ResultSet runPartition(String encodedPartitionId) { } @Override - public ResultSet executePartitionedQuery( + public void setMaxPartitionedParallelism(int maxThreads) { + Preconditions.checkArgument(maxThreads >= 0, "maxThreads must be >=0"); + this.maxPartitionedParallelism = maxThreads; + } + + @Override + public int getMaxPartitionedParallelism() { + return this.maxPartitionedParallelism; + } + + @Override + public PartitionedQueryResultSet runPartitionedQuery( Statement query, PartitionOptions partitionOptions, QueryOption... options) { List partitionIds = new ArrayList<>(); try (ResultSet partitions = partitionQuery(query, partitionOptions, options)) { @@ -1059,7 +1130,7 @@ public ResultSet executePartitionedQuery( } // parallelism=0 means 'dynamically choose based on the number of available processors and the // number of partitions'. - return new MergedResultSet(this, partitionIds, 0); + return new MergedResultSet(this, partitionIds, maxPartitionedParallelism); } /** @@ -1379,6 +1450,10 @@ private ResultSet internalExecuteQuery( && (analyzeMode != AnalyzeMode.NONE || statement.hasReturningClause())), "Statement must either be a query or a DML mode with analyzeMode!=NONE or returning clause"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); + if (alwaysUsePartitionedQueries && statement.getType() == StatementType.QUERY) { + return runPartitionedQuery( + statement.getStatement(), PartitionOptions.getDefaultInstance(), options); + } return get( transaction.executeQueryAsync( callType, @@ -1396,6 +1471,9 @@ private AsyncResultSet internalExecuteQueryAsync( (statement.getType() == StatementType.QUERY) || (statement.getType() == StatementType.UPDATE && statement.hasReturningClause()), "Statement must be a query or DML with returning clause."); + ConnectionPreconditions.checkState( + !(alwaysUsePartitionedQueries && statement.getType() == StatementType.QUERY), + "Partitioned queries cannot be executed asynchronously"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); return ResultSets.toAsyncResultSet( transaction.executeQueryAsync( diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java index 2f843aeb0c4..2c3c8d25981 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java @@ -100,6 +100,11 @@ private static ConnectionProperty createBooleanProperty( name, description, String.valueOf(defaultValue), BOOLEAN_VALUES); } + private static ConnectionProperty createIntProperty( + String name, String description, int defaultValue) { + return new ConnectionProperty(name, description, String.valueOf(defaultValue), null); + } + private static ConnectionProperty createEmptyProperty(String name) { return new ConnectionProperty(name, "", "", null); } @@ -175,6 +180,10 @@ public String[] getValidValues() { private static final boolean DEFAULT_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE = false; private static final boolean DEFAULT_TRACK_SESSION_LEAKS = true; private static final boolean DEFAULT_TRACK_CONNECTION_LEAKS = true; + private static final boolean DEFAULT_DATA_BOOST_ENABLED = false; + private static final boolean DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES = false; + private static final int DEFAULT_MAX_PARTITIONS = 0; + private static final int DEFAULT_MAX_PARTITIONED_PARALLELISM = 1; private static final String PLAIN_TEXT_PROTOCOL = "http:"; private static final String HOST_PROTOCOL = "https:"; @@ -228,6 +237,14 @@ public String[] getValidValues() { public static final String TRACK_SESSION_LEAKS_PROPERTY_NAME = "trackSessionLeaks"; /** Name of the 'trackStackTraceOfConnectionCreation' connection property. */ public static final String TRACK_CONNECTION_LEAKS_PROPERTY_NAME = "trackConnectionLeaks"; + + public static final String DATA_BOOST_ENABLED_PROPERTY_NAME = "dataBoostEnabled"; + public static final String ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME = + "alwaysUsePartitionedQueries"; + public static final String MAX_PARTITIONS_PROPERTY_NAME = "maxPartitions"; + public static final String MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME = + "maxPartitionedParallelism"; + /** All valid connection properties. */ public static final Set VALID_PROPERTIES = Collections.unmodifiableSet( @@ -323,7 +340,29 @@ public String[] getValidValues() { + "If disabled, the LeakedConnectionException will only be created when an " + "actual connection leak is detected. The stack trace of the exception will " + "in that case not contain the call stack of when the connection was created.", - DEFAULT_TRACK_CONNECTION_LEAKS)))); + DEFAULT_TRACK_CONNECTION_LEAKS), + ConnectionProperty.createBooleanProperty( + DATA_BOOST_ENABLED_PROPERTY_NAME, + "Enable data boost for all partitioned queries that are executed by this connection. " + + "This setting is only used for partitioned queries and is ignored by all other statements.", + DEFAULT_DATA_BOOST_ENABLED), + ConnectionProperty.createBooleanProperty( + ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME, + "Execute all queries on this connection as partitioned queries. " + + "Executing a query that cannot be partitioned will fail. " + + "Executing a query in a read/write transaction will also fail.", + DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES), + ConnectionProperty.createIntProperty( + MAX_PARTITIONS_PROPERTY_NAME, + "The max partitions hint value to use for partitioned queries. " + + "Use 0 if you do not want to specify a hint.", + DEFAULT_MAX_PARTITIONS), + ConnectionProperty.createIntProperty( + MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME, + "The maximum number of partitions that will be executed in parallel " + + "for partitioned queries on this connection. Set this value to 0 to " + + "dynamically use the number of processors available in the runtime.", + DEFAULT_MAX_PARTITIONED_PARALLELISM)))); private static final Set INTERNAL_PROPERTIES = Collections.unmodifiableSet( @@ -584,6 +623,11 @@ public static Builder newBuilder() { private final boolean trackSessionLeaks; private final boolean trackConnectionLeaks; + private final boolean dataBoostEnabled; + private final boolean alwaysUsePartitionedQueries; + private final int maxPartitions; + private final int maxPartitionedParallelism; + private final boolean autocommit; private final boolean readOnly; private final boolean retryAbortsInternally; @@ -631,6 +675,11 @@ private ConnectionOptions(Builder builder) { this.trackSessionLeaks = parseTrackSessionLeaks(this.uri); this.trackConnectionLeaks = parseTrackConnectionLeaks(this.uri); + this.dataBoostEnabled = parseDataBoostEnabled(this.uri); + this.alwaysUsePartitionedQueries = parseAlwaysUsePartitionedQueries(this.uri); + this.maxPartitions = parseMaxPartitions(this.uri); + this.maxPartitionedParallelism = parseMaxPartitionedParallelism(this.uri); + this.instanceId = matcher.group(Builder.INSTANCE_GROUP); this.databaseName = matcher.group(Builder.DATABASE_GROUP); // Using credentials on a plain text connection is not allowed, so if the user has not specified @@ -901,6 +950,57 @@ static boolean parseTrackConnectionLeaks(String uri) { return value != null ? Boolean.parseBoolean(value) : DEFAULT_TRACK_CONNECTION_LEAKS; } + @VisibleForTesting + static boolean parseDataBoostEnabled(String uri) { + String value = parseUriProperty(uri, DATA_BOOST_ENABLED_PROPERTY_NAME); + return value != null ? Boolean.parseBoolean(value) : DEFAULT_DATA_BOOST_ENABLED; + } + + @VisibleForTesting + static boolean parseAlwaysUsePartitionedQueries(String uri) { + String value = parseUriProperty(uri, ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME); + return value != null ? Boolean.parseBoolean(value) : DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES; + } + + @VisibleForTesting + static int parseMaxPartitions(String uri) { + String stringValue = parseUriProperty(uri, MAX_PARTITIONS_PROPERTY_NAME); + if (stringValue == null) { + return DEFAULT_MAX_PARTITIONS; + } + try { + int value = Integer.parseInt(stringValue); + if (value < 0) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, "maxPartitions must be >=0"); + } + return value; + } catch (NumberFormatException numberFormatException) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, "Invalid value for maxPartitions: " + stringValue); + } + } + + @VisibleForTesting + static int parseMaxPartitionedParallelism(String uri) { + String stringValue = parseUriProperty(uri, MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME); + if (stringValue == null) { + return DEFAULT_MAX_PARTITIONED_PARALLELISM; + } + try { + int value = Integer.parseInt(stringValue); + if (value < 0) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, "maxPartitionedParallelism must be >=0"); + } + return value; + } catch (NumberFormatException numberFormatException) { + throw SpannerExceptionFactory.newSpannerException( + ErrorCode.INVALID_ARGUMENT, + "Invalid value for maxPartitionedParallelism: " + stringValue); + } + } + @VisibleForTesting static RpcPriority parseRPCPriority(String uri) { String value = parseUriProperty(uri, RPC_PRIORITY_NAME); @@ -1153,6 +1253,22 @@ boolean isTrackConnectionLeaks() { return this.trackConnectionLeaks; } + boolean isDataBoostEnabled() { + return this.dataBoostEnabled; + } + + boolean isAlwaysUsePartitionedQueries() { + return this.alwaysUsePartitionedQueries; + } + + int getMaxPartitions() { + return this.maxPartitions; + } + + int getMaxPartitionedParallelism() { + return this.maxPartitionedParallelism; + } + /** Interceptors that should be executed after each statement */ List getStatementExecutionInterceptors() { return statementExecutionInterceptors; diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java index 62d250ae5fb..b4cb1bc1c37 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java @@ -131,11 +131,21 @@ StatementResult statementSetPgSessionCharacteristicsTransactionMode( StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled); + StatementResult statementShowAlwaysUsePartitionedQueries(); + + StatementResult statementSetAlwaysUsePartitionedQueries(Boolean alwaysUsePartitionedQueries); + StatementResult statementShowMaxPartitions(); StatementResult statementSetMaxPartitions(Integer maxPartitions); + StatementResult statementShowMaxPartitionedParallelism(); + + StatementResult statementSetMaxPartitionedParallelism(Integer maxPartitionedParallelism); + StatementResult statementPartition(Statement statement); StatementResult statementRunPartition(String partitionId); + + StatementResult statementRunPartitionedQuery(Statement statement); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java index c2df1deda9b..771d16bb259 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java @@ -22,11 +22,13 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.COMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.ROLLBACK; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.RUN_BATCH; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_ALWAYS_USE_PARTITIONED_QUERIES; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT_DML_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DATA_BOOST_ENABLED; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DEFAULT_TRANSACTION_ISOLATION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_MAX_PARTITIONED_PARALLELISM; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_MAX_PARTITIONS; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_STATISTICS_PACKAGE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_OPTIMIZER_VERSION; @@ -40,12 +42,14 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_STATEMENT_TIMEOUT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_TRANSACTION_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_TRANSACTION_TAG; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_ALWAYS_USE_PARTITIONED_QUERIES; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTOCOMMIT_DML_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_RESPONSE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_TIMESTAMP; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_DATA_BOOST_ENABLED; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_MAX_PARTITIONED_PARALLELISM; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_MAX_PARTITIONS; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_OPTIMIZER_STATISTICS_PACKAGE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_OPTIMIZER_VERSION; @@ -513,6 +517,22 @@ public StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled) { return noResult(SET_DATA_BOOST_ENABLED); } + @Override + public StatementResult statementShowAlwaysUsePartitionedQueries() { + return resultSet( + String.format("%sALWAYS_USE_PARTITIONED_QUERIES", getNamespace(connection.getDialect())), + getConnection().isAlwaysUsePartitionedQueries(), + SHOW_ALWAYS_USE_PARTITIONED_QUERIES); + } + + @Override + public StatementResult statementSetAlwaysUsePartitionedQueries( + Boolean alwaysUsePartitionedQueries) { + getConnection() + .setAlwaysUsePartitionedQueries(Preconditions.checkNotNull(alwaysUsePartitionedQueries)); + return noResult(SET_ALWAYS_USE_PARTITIONED_QUERIES); + } + @Override public StatementResult statementShowMaxPartitions() { return resultSet( @@ -527,14 +547,25 @@ public StatementResult statementSetMaxPartitions(Integer maxPartitions) { return noResult(SET_MAX_PARTITIONS); } + @Override + public StatementResult statementShowMaxPartitionedParallelism() { + return resultSet( + String.format("%sMAX_PARTITIONED_PARALLELISM", getNamespace(connection.getDialect())), + Long.valueOf(getConnection().getMaxPartitionedParallelism()), + SHOW_MAX_PARTITIONED_PARALLELISM); + } + + @Override + public StatementResult statementSetMaxPartitionedParallelism(Integer maxPartitionedParallelism) { + getConnection() + .setMaxPartitionedParallelism(Preconditions.checkNotNull(maxPartitionedParallelism)); + return noResult(SET_MAX_PARTITIONED_PARALLELISM); + } + @Override public StatementResult statementPartition(Statement statement) { - PartitionOptions.Builder partitionOptionsBuilder = PartitionOptions.newBuilder(); - if (getConnection().getMaxPartitions() > 0) { - partitionOptionsBuilder.setMaxPartitions(getConnection().getMaxPartitions()); - } return StatementResultImpl.of( - getConnection().partitionQuery(statement, partitionOptionsBuilder.build()), + getConnection().partitionQuery(statement, PartitionOptions.getDefaultInstance()), ClientSideStatementType.PARTITION); } @@ -544,6 +575,13 @@ public StatementResult statementRunPartition(String partitionId) { getConnection().runPartition(partitionId), ClientSideStatementType.RUN_PARTITION); } + @Override + public StatementResult statementRunPartitionedQuery(Statement statement) { + return StatementResultImpl.of( + getConnection().runPartitionedQuery(statement, PartitionOptions.getDefaultInstance()), + ClientSideStatementType.RUN_PARTITIONED_QUERY); + } + private String processQueryPlan(PlanNode planNode) { StringBuilder planNodeDescription = new StringBuilder(" : { "); com.google.protobuf.Struct metadata = planNode.getMetadata(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index 28b502ee4d7..1525fbf33fa 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -35,7 +35,12 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -class MergedResultSet extends ForwardingStructReader implements ResultSet { +/** + * {@link MergedResultSet} is a {@link ResultSet} implementation that combines the results from + * multiple queries. Each query uses its own {@link RowProducer} that feeds rows into the {@link + * MergedResultSet}. The order of the records in the {@link MergedResultSet} is not guaranteed. + */ +class MergedResultSet extends ForwardingStructReader implements PartitionedQueryResultSet { static class PartitionExecutor implements Runnable { private final Connection connection; private final String partitionId; @@ -121,8 +126,11 @@ boolean isFinished() { } static class RowProducer implements Supplier { + /** The maximum number of rows that we will cache per thread that is fetching rows. */ private static final int QUEUE_SIZE_PER_WORKER = 32; + private final ExecutorService executor; + private final int parallelism; private final List partitionExecutors; private final AtomicInteger finishedCounter; private final LinkedBlockingDeque queue; @@ -133,18 +141,20 @@ static class RowProducer implements Supplier { Preconditions.checkArgument(maxParallelism >= 0, "maxParallelism must be >= 0"); if (maxParallelism == 0) { // Dynamically determine parallelism. - maxParallelism = Math.min(partitions.size(), Runtime.getRuntime().availableProcessors()); + this.parallelism = Math.min(partitions.size(), Runtime.getRuntime().availableProcessors()); + } else { + this.parallelism = Math.min(partitions.size(), maxParallelism); } this.executor = Executors.newFixedThreadPool( - maxParallelism, + this.parallelism, runnable -> { Thread thread = new Thread(runnable); thread.setName("partitioned-query-row-producer"); thread.setDaemon(true); return thread; }); - this.queue = new LinkedBlockingDeque<>(QUEUE_SIZE_PER_WORKER * maxParallelism); + this.queue = new LinkedBlockingDeque<>(QUEUE_SIZE_PER_WORKER * this.parallelism); this.partitionExecutors = new ArrayList<>(partitions.size()); this.finishedCounter = new AtomicInteger(partitions.size()); for (String partition : partitions) { @@ -263,4 +273,14 @@ public ResultSetMetadata getMetadata() { checkValidState(); return rowProducer.getMetadata(); } + + @Override + public int getNumPartitions() { + return rowProducer.partitionExecutors.size(); + } + + @Override + public int getParallelism() { + return rowProducer.parallelism; + } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionedQueryResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionedQueryResultSet.java new file mode 100644 index 00000000000..efcecee271c --- /dev/null +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/PartitionedQueryResultSet.java @@ -0,0 +1,29 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import com.google.cloud.spanner.ResultSet; + +/** Result set that is returned for partitioned queries. */ +public interface PartitionedQueryResultSet extends ResultSet { + + /** Returns the number of partitions that this result set contains. */ + int getNumPartitions(); + + /** Returns the degree of parallelism that this result set uses. */ + int getParallelism(); +} diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java index 3488ec866b3..a1fde6a11d8 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java @@ -91,11 +91,16 @@ enum ClientSideStatementType { SET_SAVEPOINT_SUPPORT, SHOW_DATA_BOOST_ENABLED, SET_DATA_BOOST_ENABLED, + SHOW_ALWAYS_USE_PARTITIONED_QUERIES, + SET_ALWAYS_USE_PARTITIONED_QUERIES, SHOW_MAX_PARTITIONS, SET_MAX_PARTITIONS, + SHOW_MAX_PARTITIONED_PARALLELISM, + SET_MAX_PARTITIONED_PARALLELISM, EXPLAIN, PARTITION, RUN_PARTITION, + RUN_PARTITIONED_QUERY, } /** diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json index d3f8df3537c..5c1c8718561 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json @@ -176,6 +176,15 @@ "method": "statementRunPartition", "exampleStatements": [] }, + { + "name": "RUN PARTITIONED QUERY ", + "executorName": "ClientSideStatementRunPartitionedQueryExecutor", + "resultType": "RESULT_SET", + "statementType": "RUN_PARTITIONED_QUERY", + "regex": "(?is)\\A\\s*run\\s+partitioned\\s+query(\\s+|\\()(.*)\\z", + "method": "statementRunPartitionedQuery", + "exampleStatements": [] + }, { "name": "BEGIN TRANSACTION", "executorName": "ClientSideStatementNoParamExecutor", @@ -517,6 +526,30 @@ "converterName": "ClientSideStatementValueConverters$BooleanConverter" } }, + { + "name": "SHOW VARIABLE ALWAYS_USE_PARTITIONED_QUERIES", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_ALWAYS_USE_PARTITIONED_QUERIES", + "regex": "(?is)\\A\\s*show\\s+variable\\s+always_use_partitioned_queries\\s*\\z", + "method": "statementShowAlwaysUsePartitionedQueries", + "exampleStatements": ["show variable always_use_partitioned_queries"] + }, + { + "name": "SET ALWAYS_USE_PARTITIONED_QUERIES = TRUE|FALSE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_ALWAYS_USE_PARTITIONED_QUERIES", + "regex": "(?is)\\A\\s*set\\s+always_use_partitioned_queries\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetAlwaysUsePartitionedQueries", + "exampleStatements": ["set always_use_partitioned_queries = true", "set always_use_partitioned_queries = false"], + "setStatement": { + "propertyName": "ALWAYS_USE_PARTITIONED_QUERIES", + "separator": "=", + "allowedValues": "(TRUE|FALSE)", + "converterName": "ClientSideStatementValueConverters$BooleanConverter" + } + }, { "name": "SHOW VARIABLE MAX_PARTITIONS", "executorName": "ClientSideStatementNoParamExecutor", @@ -524,7 +557,7 @@ "statementType": "SHOW_MAX_PARTITIONS", "regex": "(?is)\\A\\s*show\\s+variable\\s+max_partitions\\s*\\z", "method": "statementShowMaxPartitions", - "exampleStatements": ["show max_partitions"] + "exampleStatements": ["show variable max_partitions"] }, { "name": "SET MAX_PARTITIONS = ", @@ -540,6 +573,30 @@ "allowedValues": "(\\d{1,9})", "converterName": "ClientSideStatementValueConverters$IntegerConverter" } + }, + { + "name": "SHOW VARIABLE MAX_PARTITIONED_PARALLELISM", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_MAX_PARTITIONED_PARALLELISM", + "regex": "(?is)\\A\\s*show\\s+variable\\s+max_partitioned_parallelism\\s*\\z", + "method": "statementShowMaxPartitionedParallelism", + "exampleStatements": ["show variable max_partitioned_parallelism"] + }, + { + "name": "SET MAX_PARTITIONED_PARALLELISM = ", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_MAX_PARTITIONED_PARALLELISM", + "regex": "(?is)\\A\\s*set\\s+max_partitioned_parallelism\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetMaxPartitionedParallelism", + "exampleStatements": ["set max_partitioned_parallelism = 0", "set max_partitioned_parallelism = 10"], + "setStatement": { + "propertyName": "MAX_PARTITIONED_PARALLELISM", + "separator": "=", + "allowedValues": "(\\d{1,9})", + "converterName": "ClientSideStatementValueConverters$IntegerConverter" + } } ] } diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json index 10c0b916ec0..e1db63f2de9 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json @@ -194,6 +194,15 @@ "method": "statementRunPartition", "exampleStatements": [] }, + { + "name": "RUN PARTITIONED QUERY ", + "executorName": "ClientSideStatementRunPartitionedQueryExecutor", + "resultType": "RESULT_SET", + "statementType": "RUN_PARTITIONED_QUERY", + "regex": "(?is)\\A\\s*run\\s+partitioned\\s+query(\\s+|\\()(.*)\\z", + "method": "statementRunPartitionedQuery", + "exampleStatements": [] + }, { "name": "{START | BEGIN} [TRANSACTION | WORK] [{ (READ ONLY|READ WRITE) [[,] (ISOLATION LEVEL (DEFAULT|SERIALIZABLE))] [[,] NOT DEFERRABLE]}]", "executorName": "ClientSideStatementPgBeginExecutor", @@ -705,6 +714,30 @@ "converterName": "ClientSideStatementValueConverters$BooleanConverter" } }, + { + "name": "SHOW [VARIABLE] SPANNER.ALWAYS_USE_PARTITIONED_QUERIES", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_ALWAYS_USE_PARTITIONED_QUERIES", + "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.always_use_partitioned_queries\\s*\\z", + "method": "statementShowAlwaysUsePartitionedQueries", + "exampleStatements": ["show spanner.always_use_partitioned_queries","show variable spanner.always_use_partitioned_queries"] + }, + { + "name": "SET SPANNER.ALWAYS_USE_PARTITIONED_QUERIES = TRUE|FALSE", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_ALWAYS_USE_PARTITIONED_QUERIES", + "regex": "(?is)\\A\\s*set\\s+spanner\\.always_use_partitioned_queries(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetAlwaysUsePartitionedQueries", + "exampleStatements": ["set spanner.always_use_partitioned_queries = true", "set spanner.always_use_partitioned_queries = false", "set spanner.always_use_partitioned_queries to true", "set spanner.always_use_partitioned_queries to false"], + "setStatement": { + "propertyName": "SPANNER.ALWAYS_USE_PARTITIONED_QUERIES", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(TRUE|FALSE)", + "converterName": "ClientSideStatementValueConverters$BooleanConverter" + } + }, { "name": "SHOW [VARIABLE] SPANNER.MAX_PARTITIONS", "executorName": "ClientSideStatementNoParamExecutor", @@ -728,6 +761,30 @@ "allowedValues": "(\\d{1,9})", "converterName": "ClientSideStatementValueConverters$IntegerConverter" } + }, + { + "name": "SHOW [VARIABLE] SPANNER.MAX_PARTITIONED_PARALLELISM", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "statementType": "SHOW_MAX_PARTITIONED_PARALLELISM", + "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.max_partitioned_parallelism\\s*\\z", + "method": "statementShowMaxPartitionedParallelism", + "exampleStatements": ["show spanner.max_partitioned_parallelism","show variable spanner.max_partitioned_parallelism"] + }, + { + "name": "SET SPANNER.MAX_PARTITIONED_PARALLELISM = ", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "statementType": "SET_MAX_PARTITIONED_PARALLELISM", + "regex": "(?is)\\A\\s*set\\s+spanner\\.max_partitioned_parallelism(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetMaxPartitionedParallelism", + "exampleStatements": ["set spanner.max_partitioned_parallelism = 1", "set spanner.max_partitioned_parallelism = 10", "set spanner.max_partitioned_parallelism to 5", "set spanner.max_partitioned_parallelism to 20"], + "setStatement": { + "propertyName": "SPANNER.MAX_PARTITIONED_PARALLELISM", + "separator": "(?:=|\\s+TO\\s+)", + "allowedValues": "(\\d{1,9})", + "converterName": "ClientSideStatementValueConverters$IntegerConverter" + } } ] } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java index ef1ab365577..42136fdc037 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java @@ -534,6 +534,142 @@ public void testTrackConnectionLeaksDefault() { assertTrue(options.isTrackConnectionLeaks()); } + @Test + public void testDataBoostEnabled() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?dataBoostEnabled=true") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertTrue(options.isDataBoostEnabled()); + } + + @Test + public void testDataBoostEnabledDefault() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertFalse(options.isDataBoostEnabled()); + } + + @Test + public void testAlwaysUsePartitionedQueries() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?alwaysUsePartitionedQueries=true") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertTrue(options.isAlwaysUsePartitionedQueries()); + } + + @Test + public void testAlwaysUsePartitionedQueriesDefault() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertFalse(options.isAlwaysUsePartitionedQueries()); + } + + @Test + public void testMaxPartitions() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitions=4") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertEquals(4, options.getMaxPartitions()); + } + + @Test + public void testMaxPartitionsDefault() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertEquals(0, options.getMaxPartitions()); + } + + @Test + public void testMaxPartitionsInvalidValue() { + assertThrows( + SpannerException.class, + () -> + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitions=-1") + .setCredentialsUrl(FILE_TEST_PATH) + .build()); + } + + @Test + public void testMaxPartitionsNonNumeric() { + assertThrows( + SpannerException.class, + () -> + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitions=four") + .setCredentialsUrl(FILE_TEST_PATH) + .build()); + } + + @Test + public void testMaxPartitionedParallelism() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitionedParallelism=4") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertEquals(4, options.getMaxPartitionedParallelism()); + } + + @Test + public void testMaxPartitionedParallelismDefault() { + ConnectionOptions options = + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database") + .setCredentialsUrl(FILE_TEST_PATH) + .build(); + assertEquals(1, options.getMaxPartitionedParallelism()); + } + + @Test + public void testMaxPartitionedParallelismInvalidValue() { + assertThrows( + SpannerException.class, + () -> + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitionedParallelism=-1") + .setCredentialsUrl(FILE_TEST_PATH) + .build()); + } + + @Test + public void testMaxPartitionedParallelismNonNumeric() { + assertThrows( + SpannerException.class, + () -> + ConnectionOptions.newBuilder() + .setUri( + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?maxPartitionedParallelism=four") + .setCredentialsUrl(FILE_TEST_PATH) + .build()); + } + @Test public void testLocalConnectionError() { String uri = diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ITAbstractSpannerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ITAbstractSpannerTest.java index 0c2396af952..5f2d88ac930 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ITAbstractSpannerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ITAbstractSpannerTest.java @@ -184,11 +184,11 @@ private static StatusRuntimeException createAbortedExceptionWithMinimalRetry() { private static final String DEFAULT_KEY_FILE = null; public static Database database; - protected static String getKeyFile() { + public static String getKeyFile() { return System.getProperty(GceTestEnvConfig.GCE_CREDENTIALS_FILE, DEFAULT_KEY_FILE); } - protected static boolean hasValidKeyFile() { + public static boolean hasValidKeyFile() { return getKeyFile() != null && Files.exists(Paths.get(getKeyFile())); } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java similarity index 64% rename from google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java rename to google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java index fd3c5c752fa..4c0e3493e52 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BatchReadMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java @@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -48,7 +49,7 @@ import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) -public class BatchReadMockServerTest extends AbstractMockServerTest { +public class PartitionedQueryMockServerTest extends AbstractMockServerTest { @Parameters(name = "dialect = {0}") public static Object[] data() { @@ -166,7 +167,7 @@ public void testMixNormalAndPartitionQueryInReadOnlyTransaction() { } @Test - public void testExecutePartition() { + public void testRunPartition() { int generatedRowCount = 20; RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); Statement statement = Statement.of("select * from random_table"); @@ -214,7 +215,7 @@ public void testExecutePartition() { } @Test - public void testExecutePartitionUsingSql() { + public void testRunPartitionUsingSql() { int generatedRowCount = 20; RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); String paramName = dialect == Dialect.POSTGRESQL ? "$1" : "@p1"; @@ -264,7 +265,7 @@ public void testExecutePartitionUsingSql() { connection.executeQuery( useLiteral ? Statement.of( - "RUN PARTITION '" + partitions.getString("PARTITION") + "'") + "RUN\tPARTITION\n '" + partitions.getString("PARTITION") + "'") : Statement.newBuilder("RUN PARTITION") .bind("PARTITION") .to(partitions.getString("PARTITION")) @@ -298,7 +299,7 @@ public void testExecutePartitionUsingSql() { } @Test - public void testExecutePartitionedQuery() { + public void testRunPartitionedQuery() { int generatedRowCount = 20; RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); Statement statement = @@ -312,7 +313,7 @@ public void testExecutePartitionedQuery() { try (Connection connection = createConnection()) { connection.setAutocommit(true); try (ResultSet resultSet = - connection.executePartitionedQuery( + connection.runPartitionedQuery( statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { int rowCount = 0; while (resultSet.next()) { @@ -330,7 +331,79 @@ public void testExecutePartitionedQuery() { } @Test - public void testExecutePartitionedQueryWithError() { + public void testRunPartitionedQueryUsingSql() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + String prefix = dialect == Dialect.POSTGRESQL ? "spanner." : ""; + + int maxPartitions = 5; + int maxParallelism = 4; + try (Connection connection = createConnection()) { + connection.execute(Statement.of("set autocommit=true")); + assertTrue(connection.isAutocommit()); + for (boolean dataBoostEnabled : new boolean[] {false, true}) { + connection.execute( + Statement.of(String.format("set %sdata_boost_enabled=%s", prefix, dataBoostEnabled))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of(String.format("show variable %sdata_boost_enabled", prefix)))) { + assertTrue(resultSet.next()); + assertEquals(dataBoostEnabled, resultSet.getBoolean(0)); + assertFalse(resultSet.next()); + } + connection.execute( + Statement.of(String.format("set %smax_partitions=%d", prefix, maxPartitions))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of(String.format("show variable %smax_partitions", prefix)))) { + assertTrue(resultSet.next()); + assertEquals(maxPartitions, resultSet.getLong(0)); + assertFalse(resultSet.next()); + } + connection.execute( + Statement.of( + String.format("set %smax_partitioned_parallelism=%d", prefix, maxParallelism))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of( + String.format("show variable %smax_partitioned_parallelism", prefix)))) { + assertTrue(resultSet.next()); + assertEquals(maxParallelism, resultSet.getLong(0)); + assertFalse(resultSet.next()); + } + + try (ResultSet resultSet = + connection.executeQuery( + Statement.newBuilder( + "run\tpartitioned query\n select * from random_table where active=@active") + .bind("active") + .to(true) + .build())) { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + // The mock server is not smart enough to actually return only a partition of the query. + // Instead, the server returns the same query result for each partition, so the actual row + // count will be maxPartitions * generatedRowCount. + assertEquals(maxPartitions * generatedRowCount, rowCount); + } + } + } + // We have 2 requests of each, as we run the query with data boost both enabled and disabled. + assertEquals(2, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + + @Test + public void testRunPartitionedQueryWithError() { int generatedRowCount = 20; RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); Statement statement = @@ -355,7 +428,7 @@ public void testExecutePartitionedQueryWithError() { int rowCount = 0; try (ResultSet resultSet = - connection.executePartitionedQuery( + connection.runPartitionedQuery( statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { while (resultSet.next()) { rowCount++; @@ -385,4 +458,124 @@ public void testExecutePartitionedQueryWithError() { assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); } + + @Test + public void testRunPartitionedQueryWithMaxParallelism() { + int generatedRowCount = 20; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + + int maxPartitions = 15; + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + for (int maxParallelism : new int[] {0, 1, 2, 5, 20}) { + connection.setMaxPartitionedParallelism(maxParallelism); + try (PartitionedQueryResultSet resultSet = + connection.runPartitionedQuery( + statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { + int expectedParallelism; + if (maxParallelism == 0) { + expectedParallelism = + Math.min(maxPartitions, Runtime.getRuntime().availableProcessors()); + } else { + expectedParallelism = Math.min(maxParallelism, maxPartitions); + } + assertEquals(expectedParallelism, resultSet.getParallelism()); + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + // The mock server is not smart enough to actually return only a partition of the query. + // Instead, the server returns the same query result for each partition, so the actual row + // count will be maxPartitions * generatedRowCount. + assertEquals(maxPartitions * generatedRowCount, rowCount); + } + } + } + assertEquals(5, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(5, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(5, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + + @Test + public void testAlwaysUsePartitionedQueries() { + int generatedRowCount = 5; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + String prefix = dialect == Dialect.POSTGRESQL ? "spanner." : ""; + + int maxPartitions = 4; + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + connection.setMaxPartitions(maxPartitions); + + connection.execute( + Statement.of(String.format("set %salways_use_partitioned_queries=true", prefix))); + try (ResultSet resultSet = + connection.executeQuery( + Statement.of( + String.format("show variable %salways_use_partitioned_queries", prefix)))) { + assertTrue(resultSet.next()); + assertTrue(resultSet.getBoolean(0)); + assertFalse(resultSet.next()); + } + + try (ResultSet resultSet = connection.executeQuery(statement)) { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + assertEquals(maxPartitions * generatedRowCount, rowCount); + } + try (ResultSet resultSet = connection.execute(statement).getResultSet()) { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + assertEquals(maxPartitions * generatedRowCount, rowCount); + } + SpannerException exception = + assertThrows(SpannerException.class, () -> connection.executeQueryAsync(statement)); + assertEquals(ErrorCode.FAILED_PRECONDITION, exception.getErrorCode()); + assertTrue( + exception.getMessage(), + exception.getMessage().contains("Partitioned queries cannot be executed asynchronously")); + exception = assertThrows(SpannerException.class, () -> connection.executeAsync(statement)); + assertEquals(ErrorCode.FAILED_PRECONDITION, exception.getErrorCode()); + assertTrue( + exception.getMessage(), + exception.getMessage().contains("Partitioned queries cannot be executed asynchronously")); + + // Turn off autocommit mode. This will cause the next query to start a read/write transaction. + // These also do not support partitioned queries. + connection.setAutocommit(false); + exception = assertThrows(SpannerException.class, () -> connection.executeQuery(statement)); + assertEquals(ErrorCode.FAILED_PRECONDITION, exception.getErrorCode()); + assertTrue( + exception.getMessage(), + exception + .getMessage() + .contains("Partition query is not supported for read/write transaction")); + exception = assertThrows(SpannerException.class, () -> connection.execute(statement)); + assertEquals(ErrorCode.FAILED_PRECONDITION, exception.getErrorCode()); + assertTrue( + exception.getMessage(), + exception + .getMessage() + .contains("Partition query is not supported for read/write transaction")); + } + assertEquals(2, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(2, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyTransactionTest.java index 06b855cfd77..c1419565b72 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ReadOnlyTransactionTest.java @@ -31,6 +31,7 @@ import com.google.api.core.ApiFuture; import com.google.cloud.Timestamp; import com.google.cloud.spanner.AsyncResultSet; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Key; @@ -176,6 +177,7 @@ private ReadOnlyTransaction createSubject(TimestampBound staleness) { .thenReturn(new SimpleReadOnlyTransaction(staleness)); return ReadOnlyTransaction.newBuilder() .setDatabaseClient(client) + .setBatchClient(mock(BatchClient.class)) .setReadOnlyStaleness(staleness) .withStatementExecutor(new StatementExecutor()) .build(); @@ -315,6 +317,7 @@ public void testExecuteQueryWithOptionsTest() { ReadOnlyTransaction transaction = ReadOnlyTransaction.newBuilder() .setDatabaseClient(client) + .setBatchClient(mock(BatchClient.class)) .setReadOnlyStaleness(TimestampBound.strong()) .withStatementExecutor(new StatementExecutor()) .build(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SingleUseTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SingleUseTransactionTest.java index a96fc59d10f..60a5ede129a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SingleUseTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SingleUseTransactionTest.java @@ -32,6 +32,7 @@ import com.google.api.gax.longrunning.OperationFuture; import com.google.cloud.Timestamp; import com.google.cloud.spanner.AsyncResultSet; +import com.google.cloud.spanner.BatchClient; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.Dialect; @@ -443,6 +444,7 @@ public TransactionRunner allowNestedTransaction() { return SingleUseTransaction.newBuilder() .setDatabaseClient(dbClient) + .setBatchClient(mock(BatchClient.class)) .setDdlClient(ddlClient) .setAutocommitDmlMode(dmlMode) .setReadOnly(readOnly) @@ -609,6 +611,7 @@ public void testExecuteQueryWithOptionsTest() { SingleUseTransaction transaction = SingleUseTransaction.newBuilder() .setDatabaseClient(client) + .setBatchClient(mock(BatchClient.class)) .setDdlClient(mock(DdlClient.class)) .setAutocommitDmlMode(AutocommitDmlMode.TRANSACTIONAL) .withStatementExecutor(executor) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java index 9a50a5ca7be..6521a5ffda7 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java @@ -16,8 +16,13 @@ package com.google.cloud.spanner.it; +import static com.google.cloud.spanner.connection.ITAbstractSpannerTest.extractConnectionUrl; +import static com.google.cloud.spanner.connection.ITAbstractSpannerTest.getKeyFile; +import static com.google.cloud.spanner.connection.ITAbstractSpannerTest.hasValidKeyFile; import static com.google.cloud.spanner.testing.EmulatorSpannerHelper.isUsingEmulator; import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeFalse; import com.google.cloud.ByteArray; @@ -38,6 +43,9 @@ import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.Statement; import com.google.cloud.spanner.TimestampBound; +import com.google.cloud.spanner.connection.Connection; +import com.google.cloud.spanner.connection.ConnectionOptions; +import com.google.cloud.spanner.connection.PartitionedQueryResultSet; import com.google.common.collect.ImmutableList; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; @@ -77,7 +85,9 @@ public class ITBatchReadTest { private static HashFunction hasher; private static BatchClient googleStandardSQLBatchClient; + private static Database googleStandardDatabase; private static BatchClient postgreSQLBatchClient; + private static Database postgreSQLDatabase; private static final Random RANDOM = new Random(); private BatchReadOnlyTransaction batchTxn; @@ -107,7 +117,7 @@ private static List manyRows() { @BeforeClass public static void setUpDatabase() throws Exception { - Database googleStandardDatabase = + googleStandardDatabase = env.getTestHelper() .createTestDatabase( "CREATE TABLE " @@ -126,7 +136,7 @@ public static void setUpDatabase() throws Exception { databaseClients.add(env.getTestHelper().getDatabaseClient(googleStandardDatabase)); if (!isUsingEmulator()) { - Database postgreSQLDatabase = + postgreSQLDatabase = env.getTestHelper().createTestDatabase(Dialect.POSTGRESQL, Collections.emptyList()); env.getTestHelper() .getClient() @@ -191,6 +201,13 @@ private BatchClient getBatchClient() { return googleStandardSQLBatchClient; } + private Database getDatabase() { + if (dialect.dialect == Dialect.POSTGRESQL) { + return postgreSQLDatabase; + } + return googleStandardDatabase; + } + @Test public void read() { assumeFalse( @@ -313,6 +330,38 @@ public void dataBoostQuery() { fetchAndValidateRows(partitions, txnID, seenRows); } + @Test + public void testRunPartitionedQuery() { + StringBuilder url = extractConnectionUrl(env.getTestHelper().getOptions(), getDatabase()); + ConnectionOptions.Builder builder = ConnectionOptions.newBuilder().setUri(url.toString()); + if (hasValidKeyFile()) { + builder.setCredentialsUrl(getKeyFile()); + } + ConnectionOptions options = builder.build(); + try (Connection connection = options.getConnection()) { + // Use dynamic parallelism. + connection.setMaxPartitionedParallelism(0); + connection.setReadOnlyStaleness(getRandomBound()); + + BitSet seenRows = new BitSet(numRows); + try (PartitionedQueryResultSet resultSet = + connection.runPartitionedQuery( + Statement.of("SELECT Key, Data, Fingerprint, Size FROM " + TABLE_NAME), + getRandomPartitionOptions())) { + validate(resultSet, seenRows); + // verify all rows were read from the database. + assertEquals(numRows, seenRows.nextClearBit(0)); + + assertTrue( + "Partitions: " + resultSet.getNumPartitions(), resultSet.getNumPartitions() >= 1); + assertEquals( + "Actual parallelism: " + resultSet.getParallelism(), + Math.min(resultSet.getNumPartitions(), Runtime.getRuntime().availableProcessors()), + resultSet.getParallelism()); + } + } + } + private TimestampBound getRandomBound() { Date date = new Date(); switch (RANDOM.nextInt(3)) { From bc5b691ecb718f8b358dc7783b1583c44f4d89b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 16:14:29 +0200 Subject: [PATCH 04/18] chore: refactor client side statements to accept the entire parsed statement Refactor the internal interface of client-side statements so these receive the entire parsed statement, including any query parameters in the statement. This allows us to create client-side statements that actually use the query parameters that have been specified by the user. --- .../connection/ClientSideStatement.java | 3 +- .../ClientSideStatementExecutor.java | 6 ++- .../ClientSideStatementExplainExecutor.java | 6 ++- .../connection/ClientSideStatementImpl.java | 8 +-- .../ClientSideStatementNoParamExecutor.java | 3 +- .../ClientSideStatementPgBeginExecutor.java | 6 ++- .../ClientSideStatementSetExecutor.java | 6 ++- .../spanner/connection/ConnectionImpl.java | 8 +-- .../connection/BeginPgTransactionTest.java | 10 ++-- ...nnectionStatementWithNoParametersTest.java | 36 ++++++++----- ...nnectionStatementWithOneParameterTest.java | 50 ++++++++++--------- .../SetPgSessionCharacteristicsTest.java | 20 ++++---- 12 files changed, 94 insertions(+), 68 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java index 08f14b146a2..521ba546073 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatement.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import java.util.List; @@ -63,5 +64,5 @@ interface ClientSideStatement { * needed for the execution of the {@link ClientSideStatement}. * @return the result of the execution of the statement. */ - StatementResult execute(ConnectionStatementExecutor executor, String statement); + StatementResult execute(ConnectionStatementExecutor executor, ParsedStatement statement); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java index 7ec09766697..dae773f606a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExecutor.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; + /** * A {@link ClientSideStatementExecutor} is used to compile {@link ClientSideStatement}s from the * json source file, and to execute these against a {@link Connection} (through a {@link @@ -29,13 +31,13 @@ interface ClientSideStatementExecutor { * * @param connectionExecutor The {@link ConnectionStatementExecutor} to use to execute the * statement on a {@link Connection}. - * @param sql The sql statement that is executed. This can be used to parse any additional + * @param statement The statement that is executed. This can be used to parse any additional * arguments that might be needed for the execution of the {@link ClientSideStatementImpl}. * @return the result of the execution. * @throws Exception If an error occurs while executing the statement, for example if an invalid * argument has been specified in the sql statement, or if the statement is invalid for the * current state of the {@link Connection}. */ - StatementResult execute(ConnectionStatementExecutor connectionExecutor, String sql) + StatementResult execute(ConnectionStatementExecutor connectionExecutor, ParsedStatement statement) throws Exception; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java index 7ce201cb0bd..767d6917be6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.ExplainCommandConverter; import com.google.common.collect.ImmutableSet; @@ -47,9 +48,10 @@ class ClientSideStatementExplainExecutor implements ClientSideStatementExecutor } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } String getParameterValue(String sql) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java index 2ff39131baa..f9ecba6652a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementImpl.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import com.google.cloud.spanner.connection.StatementResult.ResultType; import com.google.common.base.Preconditions; @@ -160,7 +161,8 @@ ClientSideStatementImpl compile() throws CompileException { } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String statement) { + public StatementResult execute( + ConnectionStatementExecutor connection, ParsedStatement statement) { Preconditions.checkState(executor != null, "This statement has not been compiled"); try { return executor.execute(connection, statement); @@ -170,9 +172,9 @@ public StatementResult execute(ConnectionStatementExecutor connection, String st if (e.getCause() instanceof SpannerException) { throw (SpannerException) e.getCause(); } - throw new ExecuteException(e.getCause(), this, statement); + throw new ExecuteException(e.getCause(), this, statement.getStatement().getSql()); } catch (Exception e) { - throw new ExecuteException(e, this, statement); + throw new ExecuteException(e, this, statement.getStatement().getSql()); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java index 6f5e683ce64..01da308c166 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementNoParamExecutor.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.connection; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import java.lang.reflect.Method; @@ -42,7 +43,7 @@ class ClientSideStatementNoParamExecutor implements ClientSideStatementExecutor } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String statement) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { return (StatementResult) method.invoke(connection); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java index 4b548803c11..c1d00d81b55 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPgBeginExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.cloud.spanner.connection.ClientSideStatementValueConverters.PgTransactionModeConverter; import java.lang.reflect.Method; @@ -42,9 +43,10 @@ class ClientSideStatementPgBeginExecutor implements ClientSideStatementExecutor } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } PgTransactionMode getParameterValue(String sql) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java index 4f4fe140428..413905116ff 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementSetExecutor.java @@ -18,6 +18,7 @@ import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; import com.google.common.base.Preconditions; import java.lang.reflect.Constructor; @@ -72,9 +73,10 @@ class ClientSideStatementSetExecutor implements ClientSideStatementExecutor { } @Override - public StatementResult execute(ConnectionStatementExecutor connection, String sql) + public StatementResult execute(ConnectionStatementExecutor connection, ParsedStatement statement) throws Exception { - return (StatementResult) method.invoke(connection, getParameterValue(sql)); + return (StatementResult) + method.invoke(connection, getParameterValue(statement.getSqlWithoutComments())); } T getParameterValue(String sql) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index b6e29dbdc0e..989c2d30d1c 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -925,7 +925,7 @@ public StatementResult execute(Statement statement) { case CLIENT_SIDE: return parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()); + .execute(connectionStatementExecutor, parsedStatement); case QUERY: return StatementResultImpl.of( internalExecuteQuery(CallType.SYNC, parsedStatement, AnalyzeMode.NONE)); @@ -957,7 +957,7 @@ public AsyncStatementResult executeAsync(Statement statement) { return AsyncStatementResultImpl.of( parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()), + .execute(connectionStatementExecutor, parsedStatement), spanner.getAsyncExecutorProvider()); case QUERY: return AsyncStatementResultImpl.of( @@ -1010,7 +1010,7 @@ private ResultSet parseAndExecuteQuery( case CLIENT_SIDE: return parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()) + .execute(connectionStatementExecutor, parsedStatement) .getResultSet(); case QUERY: return internalExecuteQuery(callType, parsedStatement, analyzeMode, options); @@ -1050,7 +1050,7 @@ private AsyncResultSet parseAndExecuteQueryAsync( return ResultSets.toAsyncResultSet( parsedStatement .getClientSideStatement() - .execute(connectionStatementExecutor, parsedStatement.getSqlWithoutComments()) + .execute(connectionStatementExecutor, parsedStatement) .getResultSet(), spanner.getAsyncExecutorProvider(), options); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java index 9b2aa0930cf..2d2ef0781f0 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/BeginPgTransactionTest.java @@ -65,7 +65,7 @@ public void testBeginWithNoOption() { "start work isolation level serializable")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, never()).setTransactionMode(any()); @@ -89,7 +89,7 @@ public void testBeginReadOnly() { "start work read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); @@ -114,7 +114,7 @@ public void testBeginReadWrite() { "start work read write")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_WRITE_TRANSACTION); @@ -140,7 +140,7 @@ public void testBeginReadOnlyWithIsolationLevel() { "begin read write , \nisolation level default\n\t,read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); @@ -173,7 +173,7 @@ public void testBeginWithNotDeferrable() { "begin not deferrable read write , \nisolation level default\n\t,read only")) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(index)).beginTransaction(); verify(connection, times(index)).setTransactionMode(TransactionMode.READ_ONLY_TRANSACTION); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java index 6140825f57b..0503c6c38d7 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java @@ -51,6 +51,10 @@ public void setup() { parser = AbstractStatementParser.getInstance(dialect); } + ParsedStatement parse(String sql) { + return parser.parse(Statement.of(sql)); + } + @Test public void testExecuteGetAutocommit() { ParsedStatement statement = parser.parse(Statement.of("show variable autocommit")); @@ -58,7 +62,7 @@ public void testExecuteGetAutocommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementShowAutocommit()).thenCallRealMethod(); - statement.getClientSideStatement().execute(executor, "show variable autocommit"); + statement.getClientSideStatement().execute(executor, parse("show variable autocommit")); verify(connection, times(1)).isAutocommit(); } @@ -72,7 +76,7 @@ public void testExecuteGetReadOnly() { ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); statement .getClientSideStatement() - .execute(executor, String.format("show variable %sreadonly", getNamespace(dialect))); + .execute(executor, parse(String.format("show variable %sreadonly", getNamespace(dialect)))); verify(connection, times(1)).isReadOnly(); } @@ -89,7 +93,8 @@ public void testExecuteGetAutocommitDmlMode() { statement .getClientSideStatement() .execute( - executor, String.format("show variable %sautocommit_dml_mode", getNamespace(dialect))); + executor, + parse(String.format("show variable %sautocommit_dml_mode", getNamespace(dialect)))); verify(connection, times(1)).getAutocommitDmlMode(); } @@ -102,7 +107,7 @@ public void testExecuteGetStatementTimeout() { when(executor.statementShowStatementTimeout()).thenCallRealMethod(); when(connection.hasStatementTimeout()).thenReturn(true); when(connection.getStatementTimeout(TimeUnit.NANOSECONDS)).thenReturn(1L); - statement.getClientSideStatement().execute(executor, "show variable statement_timeout"); + statement.getClientSideStatement().execute(executor, parse("show variable statement_timeout")); verify(connection, times(2)).getStatementTimeout(TimeUnit.NANOSECONDS); } @@ -117,7 +122,9 @@ public void testExecuteGetReadTimestamp() { when(connection.getReadTimestampOrNull()).thenReturn(Timestamp.now()); statement .getClientSideStatement() - .execute(executor, String.format("show variable %sread_timestamp", getNamespace(dialect))); + .execute( + executor, + parse(String.format("show variable %sread_timestamp", getNamespace(dialect)))); verify(connection, times(1)).getReadTimestampOrNull(); } @@ -133,7 +140,8 @@ public void testExecuteGetCommitTimestamp() { statement .getClientSideStatement() .execute( - executor, String.format("show variable %scommit_timestamp", getNamespace(dialect))); + executor, + parse(String.format("show variable %scommit_timestamp", getNamespace(dialect)))); verify(connection, times(1)).getCommitTimestampOrNull(); } @@ -150,7 +158,8 @@ public void testExecuteGetReadOnlyStaleness() { statement .getClientSideStatement() .execute( - executor, String.format("show variable %sread_only_staleness", getNamespace(dialect))); + executor, + parse(String.format("show variable %sread_only_staleness", getNamespace(dialect)))); verify(connection, times(1)).getReadOnlyStaleness(); } @@ -167,7 +176,8 @@ public void testExecuteGetOptimizerVersion() { statement .getClientSideStatement() .execute( - executor, String.format("show variable %soptimizer_version", getNamespace(dialect))); + executor, + parse(String.format("show variable %soptimizer_version", getNamespace(dialect)))); verify(connection, times(1)).getOptimizerVersion(); } @@ -186,7 +196,9 @@ public void testExecuteGetOptimizerStatisticsPackage() { .getClientSideStatement() .execute( executor, - String.format("show variable %soptimizer_statistics_package", getNamespace(dialect))); + parse( + String.format( + "show variable %soptimizer_statistics_package", getNamespace(dialect)))); verify(connection, times(1)).getOptimizerStatisticsPackage(); } @@ -196,7 +208,7 @@ public void testExecuteBegin() { for (String statement : subject.getClientSideStatement().getExampleStatements()) { ConnectionImpl connection = mock(ConnectionImpl.class); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).beginTransaction(); } } @@ -209,7 +221,7 @@ public void testExecuteCommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementCommit()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).commit(); } } @@ -222,7 +234,7 @@ public void testExecuteRollback() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementRollback()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, statement); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).rollback(); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java index b68f78908b0..f4044316fc7 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithOneParameterTest.java @@ -55,6 +55,10 @@ public void setup() { parser = AbstractStatementParser.getInstance(dialect); } + ParsedStatement parse(String sql) { + return parser.parse(Statement.of(sql)); + } + @Test public void testExecuteSetAutocommit() { ParsedStatement subject = parser.parse(Statement.of("set autocommit = true")); @@ -65,7 +69,7 @@ public void testExecuteSetAutocommit() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set autocommit = %s", mode)); + .execute(executor, parse(String.format("set autocommit = %s", mode))); verify(connection, times(1)).setAutocommit(mode); } } @@ -81,7 +85,8 @@ public void testExecuteSetReadOnly() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set %sreadonly = %s", getNamespace(dialect), mode)); + .execute( + executor, parse(String.format("set %sreadonly = %s", getNamespace(dialect), mode))); verify(connection, times(1)).setReadOnly(mode); } } @@ -98,7 +103,8 @@ public void testExecuteSetReadOnlyTo() { for (Boolean mode : new Boolean[] {Boolean.FALSE, Boolean.TRUE}) { subject .getClientSideStatement() - .execute(executor, String.format("set %sreadonly to %s", getNamespace(dialect), mode)); + .execute( + executor, parse(String.format("set %sreadonly to %s", getNamespace(dialect), mode))); verify(connection, times(1)).setReadOnly(mode); } } @@ -117,7 +123,9 @@ public void testExecuteSetAutocommitDmlMode() { .getClientSideStatement() .execute( executor, - String.format("set %sautocommit_dml_mode='%s'", getNamespace(dialect), mode.name())); + parse( + String.format( + "set %sautocommit_dml_mode='%s'", getNamespace(dialect), mode.name()))); verify(connection, times(1)).setAutocommitDmlMode(mode); } } @@ -136,13 +144,7 @@ public void testExecuteSetStatementTimeout() { String.format( "set statement_timeout='%d%s'", val, ReadOnlyStalenessUtil.getTimeUnitAbbreviation(unit)))); - subject - .getClientSideStatement() - .execute( - executor, - String.format( - "set statement_timeout='%d%s'", - val, ReadOnlyStalenessUtil.getTimeUnitAbbreviation(unit))); + subject.getClientSideStatement().execute(executor, subject); verify(connection, times(1)).setStatementTimeout(val, unit); } } @@ -151,17 +153,15 @@ public void testExecuteSetStatementTimeout() { Mockito.clearInvocations(connection); ParsedStatement subject = parser.parse(Statement.of(String.format("set statement_timeout=%d", val))); - subject - .getClientSideStatement() - .execute(executor, String.format("set statement_timeout=%d", val)); + subject.getClientSideStatement().execute(executor, subject); verify(connection, times(1)).setStatementTimeout(val, TimeUnit.MILLISECONDS); } ParsedStatement subject = parser.parse(Statement.of("set statement_timeout=default")); - subject.getClientSideStatement().execute(executor, "set statement_timeout=default"); + subject.getClientSideStatement().execute(executor, subject); } else { ParsedStatement subject = parser.parse(Statement.of("set statement_timeout=null")); - subject.getClientSideStatement().execute(executor, "set statement_timeout=null"); + subject.getClientSideStatement().execute(executor, subject); } verify(connection, times(1)).clearStatementTimeout(); } @@ -187,9 +187,10 @@ public void testExecuteSetReadOnlyStaleness() { .getClientSideStatement() .execute( executor, - String.format( - "set %sread_only_staleness='%s'", - getNamespace(dialect), timestampBoundToString(val))); + parse( + String.format( + "set %sread_only_staleness='%s'", + getNamespace(dialect), timestampBoundToString(val)))); verify(connection, times(1)).setReadOnlyStaleness(val); } } @@ -225,7 +226,7 @@ public void testExecuteSetOptimizerVersion() { .getClientSideStatement() .execute( executor, - String.format("set %soptimizer_version='%s'", getNamespace(dialect), version)); + parse(String.format("set %soptimizer_version='%s'", getNamespace(dialect), version))); verify(connection, times(1)).setOptimizerVersion(version); } } @@ -245,9 +246,10 @@ public void testExecuteSetOptimizerStatisticsPackage() { .getClientSideStatement() .execute( executor, - String.format( - "set %soptimizer_statistics_package='%s'", - getNamespace(dialect), statisticsPackage)); + parse( + String.format( + "set %soptimizer_statistics_package='%s'", + getNamespace(dialect), statisticsPackage))); verify(connection, times(1)).setOptimizerStatisticsPackage(statisticsPackage); } } @@ -260,7 +262,7 @@ public void testExecuteSetTransaction() { for (TransactionMode mode : TransactionMode.values()) { subject .getClientSideStatement() - .execute(executor, String.format("set transaction %s", mode.getStatementString())); + .execute(executor, parse(String.format("set transaction %s", mode.getStatementString()))); verify(connection, times(1)).setTransactionMode(mode); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java index 77240b74595..97394f67d0a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/SetPgSessionCharacteristicsTest.java @@ -44,7 +44,7 @@ public void testSetIsolationLevelDefault() { String sql = "set session characteristics as transaction isolation level default"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, never()).setReadOnly(anyBoolean()); } @@ -57,7 +57,7 @@ public void testSetIsolationLevelSerializable() { String sql = "set session characteristics as transaction isolation level serializable"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection, never()).setReadOnly(anyBoolean()); } @@ -70,7 +70,7 @@ public void testSetIsolationLevelReadOnly() { String sql = "set\tsession\ncharacteristics as transaction read only"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(true); verify(connection, never()).setReadOnly(false); @@ -84,7 +84,7 @@ public void testSetIsolationLevelReadWrite() { String sql = "set session characteristics as transaction read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -99,7 +99,7 @@ public void testSetIsolationLevelSerializableReadWrite() { "set session characteristics as transaction isolation level serializable read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -114,7 +114,7 @@ public void testSetIsolationLevelSerializableReadOnly() { "set session characteristics as transaction isolation level serializable read only"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(true); } @@ -128,7 +128,7 @@ public void testSetMultipleTransactionModes() { "set session characteristics as transaction isolation level default, read only, isolation level serializable, read write"; ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); verify(connection).setReadOnly(false); verify(connection, never()).setReadOnly(true); @@ -154,7 +154,7 @@ public void testDefaultTransactionIsolation() { }) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } // Setting the isolation level is a no-op. @@ -189,7 +189,7 @@ public void testDefaultTransactionReadOnlyTrue() { for (String sql : statements) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } verify(connection, times(statements.length)).setReadOnly(true); @@ -223,7 +223,7 @@ public void testDefaultTransactionReadOnlyFalse() { for (String sql : statements) { ParsedStatement statement = parser.parse(Statement.of(sql)); assertEquals(sql, StatementType.CLIENT_SIDE, statement.getType()); - statement.getClientSideStatement().execute(executor, sql); + statement.getClientSideStatement().execute(executor, statement); } verify(connection, times(statements.length)).setReadOnly(false); From f0e9f5b892425478b8983806c4b35183ad6bea13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 16:22:06 +0200 Subject: [PATCH 05/18] chore: simplify test --- ...nnectionStatementWithNoParametersTest.java | 46 ++++--------------- 1 file changed, 9 insertions(+), 37 deletions(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java index 0503c6c38d7..4ea7bfc93de 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java @@ -62,7 +62,7 @@ public void testExecuteGetAutocommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementShowAutocommit()).thenCallRealMethod(); - statement.getClientSideStatement().execute(executor, parse("show variable autocommit")); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).isAutocommit(); } @@ -74,9 +74,7 @@ public void testExecuteGetReadOnly() { ConnectionImpl connection = mock(ConnectionImpl.class); when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); - statement - .getClientSideStatement() - .execute(executor, parse(String.format("show variable %sreadonly", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).isReadOnly(); } @@ -90,11 +88,7 @@ public void testExecuteGetAutocommitDmlMode() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getAutocommitDmlMode()).thenReturn(AutocommitDmlMode.TRANSACTIONAL); - statement - .getClientSideStatement() - .execute( - executor, - parse(String.format("show variable %sautocommit_dml_mode", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getAutocommitDmlMode(); } @@ -107,7 +101,7 @@ public void testExecuteGetStatementTimeout() { when(executor.statementShowStatementTimeout()).thenCallRealMethod(); when(connection.hasStatementTimeout()).thenReturn(true); when(connection.getStatementTimeout(TimeUnit.NANOSECONDS)).thenReturn(1L); - statement.getClientSideStatement().execute(executor, parse("show variable statement_timeout")); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(2)).getStatementTimeout(TimeUnit.NANOSECONDS); } @@ -120,11 +114,7 @@ public void testExecuteGetReadTimestamp() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getReadTimestampOrNull()).thenReturn(Timestamp.now()); - statement - .getClientSideStatement() - .execute( - executor, - parse(String.format("show variable %sread_timestamp", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getReadTimestampOrNull(); } @@ -137,11 +127,7 @@ public void testExecuteGetCommitTimestamp() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getCommitTimestampOrNull()).thenReturn(Timestamp.now()); - statement - .getClientSideStatement() - .execute( - executor, - parse(String.format("show variable %scommit_timestamp", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getCommitTimestampOrNull(); } @@ -155,11 +141,7 @@ public void testExecuteGetReadOnlyStaleness() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getReadOnlyStaleness()).thenReturn(TimestampBound.strong()); - statement - .getClientSideStatement() - .execute( - executor, - parse(String.format("show variable %sread_only_staleness", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getReadOnlyStaleness(); } @@ -173,11 +155,7 @@ public void testExecuteGetOptimizerVersion() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getOptimizerVersion()).thenReturn("1"); - statement - .getClientSideStatement() - .execute( - executor, - parse(String.format("show variable %soptimizer_version", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getOptimizerVersion(); } @@ -192,13 +170,7 @@ public void testExecuteGetOptimizerStatisticsPackage() { when(connection.getDialect()).thenReturn(dialect); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); when(connection.getOptimizerStatisticsPackage()).thenReturn("custom-package"); - statement - .getClientSideStatement() - .execute( - executor, - parse( - String.format( - "show variable %soptimizer_statistics_package", getNamespace(dialect)))); + statement.getClientSideStatement().execute(executor, statement); verify(connection, times(1)).getOptimizerStatisticsPackage(); } From 090868c0aa33e50feb4eb25bec827dd2a785bbec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 16:24:30 +0200 Subject: [PATCH 06/18] chore: cleanup differences --- .../ConnectionStatementWithNoParametersTest.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java index 39d6b385be0..4ea7bfc93de 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionStatementWithNoParametersTest.java @@ -51,6 +51,10 @@ public void setup() { parser = AbstractStatementParser.getInstance(dialect); } + ParsedStatement parse(String sql) { + return parser.parse(Statement.of(sql)); + } + @Test public void testExecuteGetAutocommit() { ParsedStatement statement = parser.parse(Statement.of("show variable autocommit")); @@ -176,7 +180,7 @@ public void testExecuteBegin() { for (String statement : subject.getClientSideStatement().getExampleStatements()) { ConnectionImpl connection = mock(ConnectionImpl.class); ConnectionStatementExecutorImpl executor = new ConnectionStatementExecutorImpl(connection); - subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).beginTransaction(); } } @@ -189,7 +193,7 @@ public void testExecuteCommit() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementCommit()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).commit(); } } @@ -202,7 +206,7 @@ public void testExecuteRollback() { ConnectionStatementExecutorImpl executor = mock(ConnectionStatementExecutorImpl.class); when(executor.getConnection()).thenReturn(connection); when(executor.statementRollback()).thenCallRealMethod(); - subject.getClientSideStatement().execute(executor, parser.parse(Statement.of(statement))); + subject.getClientSideStatement().execute(executor, parse(statement)); verify(connection, times(1)).rollback(); } } From 31ba1344e778ef76334a1da2fe6d1730ece0a7c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 16:48:03 +0200 Subject: [PATCH 07/18] chore: cleanup unrelated changes --- .../google/cloud/spanner/ForwardingStructReader.java | 6 +----- .../ClientSideStatementExplainExecutor.java | 6 ++++-- .../ClientSideStatementPartitionExecutor.java | 2 +- .../ClientSideStatementRunPartitionExecutor.java | 2 +- ...lientSideStatementRunPartitionedQueryExecutor.java | 2 +- .../ClientSideStatementValueConverters.java | 11 ++++------- .../connection/ExplainCommandConverterTest.java | 2 +- 7 files changed, 13 insertions(+), 18 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java index d95e361b63f..2a85006fa95 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java @@ -25,7 +25,7 @@ import java.math.BigDecimal; import java.util.List; -/** Forwarding implementation of StructReader */ +/** Forwarding implements of StructReader */ public class ForwardingStructReader implements StructReader { private Supplier delegate; @@ -49,10 +49,6 @@ void replaceDelegate(StructReader newDelegate) { this.delegate = Suppliers.ofInstance(Preconditions.checkNotNull(newDelegate)); } - protected void replaceDelegate(Supplier delegate) { - this.delegate = Preconditions.checkNotNull(delegate); - } - /** * Called before each forwarding call to allow sub classes to do additional state checking. Sub * classes should throw an {@link Exception} if the current state is not valid for reading data diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java index 7987c67d3d6..767d6917be6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementExplainExecutor.java @@ -30,6 +30,7 @@ class ClientSideStatementExplainExecutor implements ClientSideStatementExecutor { private final ClientSideStatementImpl statement; private final Method method; + private final ExplainCommandConverter converter; public static final Set EXPLAIN_OPTIONS = ImmutableSet.of( "verbose", "costs", "settings", "buffers", "wal", "timing", "summary", "format"); @@ -37,9 +38,10 @@ class ClientSideStatementExplainExecutor implements ClientSideStatementExecutor ClientSideStatementExplainExecutor(ClientSideStatementImpl statement) throws CompileException { try { this.statement = statement; + this.converter = new ExplainCommandConverter(); this.method = ConnectionStatementExecutor.class.getDeclaredMethod( - statement.getMethodName(), ExplainCommandConverter.INSTANCE.getParameterClass()); + statement.getMethodName(), converter.getParameterClass()); } catch (Exception e) { throw new CompileException(e, statement); } @@ -57,7 +59,7 @@ String getParameterValue(String sql) { if (matcher.find() && matcher.groupCount() >= 1) { String value = matcher.group(0); if (value != null) { - String res = ExplainCommandConverter.INSTANCE.convert(value.trim()); + String res = converter.convert(value.trim()); if (res != null) { return res; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java index 6181dd29bc8..513a77632bc 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java index 4be38892724..1a090f99fc3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java index 5f6f9c66582..59f6b17babd 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2023 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java index dfb27244363..a477a664ec6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementValueConverters.java @@ -135,10 +135,10 @@ public Boolean convert(String value) { } } - /** Converter from string to {@link Boolean} */ - static class IntegerConverter implements ClientSideStatementValueConverter { + /** Converter from string to a non-negative integer. */ + static class NonNegativeIntegerConverter implements ClientSideStatementValueConverter { - public IntegerConverter(String allowedValues) {} + public NonNegativeIntegerConverter(String allowedValues) {} @Override public Class getParameterClass() { @@ -150,6 +150,7 @@ public Integer convert(String value) { try { int res = Integer.parseInt(value); if (res < 0) { + // The conventions for these converters is to return null if the value is invalid. return null; } return res; @@ -501,10 +502,6 @@ public SavepointSupport convert(String value) { } static class ExplainCommandConverter implements ClientSideStatementValueConverter { - static final ExplainCommandConverter INSTANCE = new ExplainCommandConverter(); - - private ExplainCommandConverter() {} - @Override public Class getParameterClass() { return String.class; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java index c865834350a..b927668d472 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ExplainCommandConverterTest.java @@ -24,7 +24,7 @@ public class ExplainCommandConverterTest { @Test public void testConvert() { - ExplainCommandConverter explainCommandConverter = ExplainCommandConverter.INSTANCE; + ExplainCommandConverter explainCommandConverter = new ExplainCommandConverter(); assertEquals( "select * from table1", explainCommandConverter.convert("explain select * from table1")); assertEquals( From 6960e118dc828f7714bc224389038a28684d871e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 28 Jul 2023 17:26:02 +0200 Subject: [PATCH 08/18] fix: update converter name --- .../google/cloud/spanner/connection/ClientSideStatements.json | 4 ++-- .../cloud/spanner/connection/PG_ClientSideStatements.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json index 5c1c8718561..7952520e4bf 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json @@ -571,7 +571,7 @@ "propertyName": "MAX_PARTITIONS", "separator": "=", "allowedValues": "(\\d{1,9})", - "converterName": "ClientSideStatementValueConverters$IntegerConverter" + "converterName": "ClientSideStatementValueConverters$NonNegativeIntegerConverter" } }, { @@ -595,7 +595,7 @@ "propertyName": "MAX_PARTITIONED_PARALLELISM", "separator": "=", "allowedValues": "(\\d{1,9})", - "converterName": "ClientSideStatementValueConverters$IntegerConverter" + "converterName": "ClientSideStatementValueConverters$NonNegativeIntegerConverter" } } ] diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json index e1db63f2de9..8c9817c6907 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json @@ -759,7 +759,7 @@ "propertyName": "SPANNER.MAX_PARTITIONS", "separator": "(?:=|\\s+TO\\s+)", "allowedValues": "(\\d{1,9})", - "converterName": "ClientSideStatementValueConverters$IntegerConverter" + "converterName": "ClientSideStatementValueConverters$NonNegativeIntegerConverter" } }, { @@ -783,7 +783,7 @@ "propertyName": "SPANNER.MAX_PARTITIONED_PARALLELISM", "separator": "(?:=|\\s+TO\\s+)", "allowedValues": "(\\d{1,9})", - "converterName": "ClientSideStatementValueConverters$IntegerConverter" + "converterName": "ClientSideStatementValueConverters$NonNegativeIntegerConverter" } } ] From 549e870682d031d933961d287c7f53570ded0e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Sun, 30 Jul 2023 12:03:25 +0200 Subject: [PATCH 09/18] test: add more tests --- .../spanner/connection/MergedResultSet.java | 5 + .../cloud/spanner/ResultSetsHelper.java | 72 +++++++ .../connection/MergedResultSetTest.java | 189 ++++++++++++++++++ 3 files changed, 266 insertions(+) create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index 1525fbf33fa..c8601cbbd9f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -136,6 +136,7 @@ static class RowProducer implements Supplier { private final LinkedBlockingDeque queue; private ResultSetMetadata metadata; private Struct currentRow; + private Throwable exception; RowProducer(Connection connection, List partitions, int maxParallelism) { Preconditions.checkArgument(maxParallelism >= 0, "maxParallelism must be >= 0"); @@ -177,6 +178,9 @@ void close() { } boolean nextRow() throws Throwable { + if (this.exception != null) { + throw this.exception; + } while (true) { PartitionExecutorResult next; if ((next = queue.peek()) != null && !next.isFinished()) { @@ -200,6 +204,7 @@ boolean nextRow() throws Throwable { void setNextRow(PartitionExecutorResult next) throws Throwable { if (next.exception != null) { + this.exception = next.exception; throw next.exception; } currentRow = next.data; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java new file mode 100644 index 00000000000..6da075d4512 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java @@ -0,0 +1,72 @@ +package com.google.cloud.spanner; + +import com.google.cloud.spanner.AbstractResultSet.CloseableIterator; +import com.google.cloud.spanner.AbstractResultSet.GrpcResultSet; +import com.google.cloud.spanner.AbstractResultSet.Listener; +import com.google.protobuf.ListValue; +import com.google.spanner.v1.PartialResultSet; +import com.google.spanner.v1.Transaction; +import java.util.Iterator; +import javax.annotation.Nullable; + +public class ResultSetsHelper { + + /** + * Creates a {@link ResultSets} from a proto {@link com.google.spanner.v1.ResultSet}. + * + *

Note: The returned result holds a reference to the proto that is passed in to this method. + * Changing the proto will change the result that is returned. + */ + public static ResultSet fromProto(com.google.spanner.v1.ResultSet proto) { + Iterator iterator = proto.getRowsList().iterator(); + return new GrpcResultSet( + new CloseableIterator() { + private boolean first = true; + + @Override + public void close(@Nullable String message) {} + + @Override + public boolean isWithBeginTransaction() { + return false; + } + + @Override + public boolean hasNext() { + return first || iterator.hasNext(); + } + + @Override + public PartialResultSet next() { + if (!hasNext()) { + throw new IllegalStateException(); + } + PartialResultSet.Builder builder = PartialResultSet.newBuilder(); + if (first) { + builder.setMetadata(proto.getMetadata()); + first = false; + } + if (iterator.hasNext()) { + builder.addAllValues(iterator.next().getValuesList()); + } + if (!iterator.hasNext()) { + builder.setStats(proto.getStats()); + } + return builder.build(); + } + }, + new Listener() { + @Override + public void onTransactionMetadata(Transaction transaction, boolean shouldIncludeId) + throws SpannerException {} + + @Override + public SpannerException onError(SpannerException e, boolean withBeginTransaction) { + return e; + } + + @Override + public void onDone(boolean withBeginTransaction) {} + }); + } +} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java new file mode 100644 index 00000000000..b74062744ab --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java @@ -0,0 +1,189 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner.connection; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.ForwardingResultSet; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.ResultSetsHelper; +import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.SpannerExceptionFactory; +import com.google.cloud.spanner.Struct; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collection; +import java.util.List; +import java.util.Random; +import java.util.concurrent.atomic.AtomicInteger; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameter; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class MergedResultSetTest { + + private static final class MockedResults { + final Connection connection; + final List partitions; + final List allRows; + final int minErrorIndex; + + MockedResults( + Connection connection, List partitions, List allRows, int minErrorIndex) { + this.connection = connection; + this.partitions = partitions; + this.allRows = allRows; + this.minErrorIndex = minErrorIndex; + } + } + + private static final class ResultSetWithError extends ForwardingResultSet { + private final int errorIndex; + private int currentIndex = 0; + + ResultSetWithError(ResultSet delegate, int errorIndex) { + super(delegate); + this.errorIndex = errorIndex; + } + + @Override + public boolean next() { + if (currentIndex == errorIndex) { + throw SpannerExceptionFactory.newSpannerException(ErrorCode.INTERNAL, "test error"); + } + currentIndex++; + return super.next(); + } + } + + @Parameter(0) + public int numPartitions; + + @Parameter(1) + public int maxRowsPerPartition; + + @Parameter(2) + public int maxParallelism; + + @Parameters(name = "numPartitions = {0}, maxRowsPerPartition = {1}, maxParallelism = {2}") + public static Collection parameters() { + List params = new ArrayList<>(); + for (int numPartitions : new int[] {1, 2, 5, 8}) { + for (int maxRowsPerPartition : new int[] {1, 5, 10, 20}) { + for (int maxParallelism : new int[] {0, 1, 2, 4, 8}) { + params.add(new Object[] {numPartitions, maxRowsPerPartition, maxParallelism}); + } + } + } + return params; + } + + private MockedResults setupResults(boolean withErrors) { + Random random = new Random(); + Connection connection = mock(Connection.class); + List partitions = new ArrayList<>(); + List allRows = new ArrayList<>(); + int minErrorIndex = Integer.MAX_VALUE; + for (int index = 0; index < numPartitions; index++) { + String partition = String.valueOf(index); + partitions.add(partition); + int numRows = random.nextInt(maxRowsPerPartition) + 1; + RandomResultSetGenerator generator = new RandomResultSetGenerator(numRows); + com.google.spanner.v1.ResultSet proto = generator.generate(); + if (withErrors) { + // Add a random error somewhere in the result. + int errorIndex = random.nextInt(numRows); + minErrorIndex = Math.min(minErrorIndex, errorIndex); + when(connection.runPartition(partition)) + .thenReturn(new ResultSetWithError(ResultSetsHelper.fromProto(proto), errorIndex)); + } else { + when(connection.runPartition(partition)).thenReturn(ResultSetsHelper.fromProto(proto)); + try (ResultSet resultSet = ResultSetsHelper.fromProto(proto)) { + while (resultSet.next()) { + allRows.add(resultSet.getCurrentRowAsStruct()); + } + } + } + } + return new MockedResults(connection, partitions, allRows, minErrorIndex); + } + + @Test + public void testAllResultsAreReturned() { + MockedResults results = setupResults(false); + BitSet rowsFound = new BitSet(results.allRows.size()); + try (MergedResultSet resultSet = + new MergedResultSet(results.connection, results.partitions, maxParallelism)) { + while (resultSet.next()) { + assertRowExists(results.allRows, resultSet.getCurrentRowAsStruct(), rowsFound); + } + // Check that all rows were found. + assertEquals(results.allRows.size(), rowsFound.nextClearBit(0)); + // Check extended metadata. + assertEquals(numPartitions, resultSet.getNumPartitions()); + if (maxParallelism > 0) { + assertEquals(Math.min(numPartitions, maxParallelism), resultSet.getParallelism()); + } else { + int processors = Runtime.getRuntime().availableProcessors(); + assertEquals(Math.min(numPartitions, processors), resultSet.getParallelism()); + } + } + } + + @Test + public void testResultSetStopsAfterFirstError() { + MockedResults results = setupResults(true); + try (MergedResultSet resultSet = + new MergedResultSet(results.connection, results.partitions, maxParallelism)) { + AtomicInteger rowCount = new AtomicInteger(); + SpannerException exception = + assertThrows( + SpannerException.class, + () -> { + while (resultSet.next()) { + rowCount.getAndIncrement(); + } + }); + assertEquals(ErrorCode.INTERNAL, exception.getErrorCode()); + assertTrue(exception.getMessage(), exception.getMessage().contains("test error")); + // The result set should continue to throw the same error if we continue to call next(). + SpannerException nextException = assertThrows(SpannerException.class, resultSet::next); + assertEquals(exception, nextException); + // We should see at least minErrorIndex rows before an error. + assertTrue(rowCount.get() >= results.minErrorIndex); + } + } + + private void assertRowExists(List expectedRows, Struct row, BitSet rowsFound) { + for (int i = 0; i < expectedRows.size(); i++) { + if (row.equals(expectedRows.get(i))) { + rowsFound.set(i); + return; + } + } + fail("row not found: " + row); + } +} From 0b5269ef50a9df0248f9653afbd92fbac6550497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Sun, 30 Jul 2023 12:08:10 +0200 Subject: [PATCH 10/18] chore: add missing license header --- .../google/cloud/spanner/ResultSetsHelper.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java index 6da075d4512..51cca1bc684 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ResultSetsHelper.java @@ -1,3 +1,19 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.google.cloud.spanner; import com.google.cloud.spanner.AbstractResultSet.CloseableIterator; From d5248cc02b3395b1d9a07ed579474ea969eed7bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 31 Jul 2023 19:51:06 +0200 Subject: [PATCH 11/18] fix: handle empty partitioned queries correctly --- .../spanner/connection/MergedResultSet.java | 66 +++++++++++++++---- .../PartitionedQueryMockServerTest.java | 31 ++++++++- 2 files changed, 82 insertions(+), 15 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index c8601cbbd9f..e60a1cc1f4d 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -23,6 +23,7 @@ import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.Struct; +import com.google.cloud.spanner.Type; import com.google.common.base.Preconditions; import com.google.common.base.Supplier; import com.google.spanner.v1.ResultSetMetadata; @@ -61,18 +62,26 @@ public void run() { try (ResultSet resultSet = connection.runPartition(partitionId)) { boolean first = true; while (resultSet.next()) { + Struct row = resultSet.getCurrentRowAsStruct(); if (first) { queue.put( PartitionExecutorResult.dataAndMetadata( - resultSet.getCurrentRowAsStruct(), resultSet.getMetadata())); + row, resultSet.getType(), resultSet.getMetadata())); first = false; } else { - queue.put(PartitionExecutorResult.data(resultSet.getCurrentRowAsStruct())); + queue.put(PartitionExecutorResult.data(row)); } if (shouldStop.get()) { break; } } + if (first) { + // Special case: The result set did not return any rows. Push the metadata to the merged + // result set. + queue.put( + PartitionExecutorResult.typeAndMetadata( + resultSet.getType(), resultSet.getMetadata())); + } } catch (Throwable exception) { putWithoutInterruptPropagation(PartitionExecutorResult.exception(exception)); } finally { @@ -96,32 +105,47 @@ private void putWithoutInterruptPropagation(PartitionExecutorResult result) { static class PartitionExecutorResult { private final Struct data; private final Throwable exception; + private final Type type; private final ResultSetMetadata metadata; static PartitionExecutorResult data(Struct data) { - return new PartitionExecutorResult(data, null, null); + return new PartitionExecutorResult(data, null, null, null); + } + + static PartitionExecutorResult typeAndMetadata(Type type, ResultSetMetadata metadata) { + return new PartitionExecutorResult(null, type, metadata, null); } - static PartitionExecutorResult dataAndMetadata(Struct data, ResultSetMetadata metadata) { - return new PartitionExecutorResult(data, metadata, null); + static PartitionExecutorResult dataAndMetadata( + Struct data, Type type, ResultSetMetadata metadata) { + return new PartitionExecutorResult(data, type, metadata, null); } static PartitionExecutorResult exception(Throwable exception) { - return new PartitionExecutorResult(null, null, exception); + return new PartitionExecutorResult(null, null, null, exception); } static PartitionExecutorResult finished() { - return new PartitionExecutorResult(null, null, null); + return new PartitionExecutorResult(null, null, null, null); } - private PartitionExecutorResult(Struct data, ResultSetMetadata metadata, Throwable exception) { + private PartitionExecutorResult( + Struct data, Type type, ResultSetMetadata metadata, Throwable exception) { this.data = data; + this.type = type; this.metadata = metadata; this.exception = exception; } + boolean hasData() { + return this.data != null; + } + boolean isFinished() { - return this.data == null && this.metadata == null && this.exception == null; + return this.data == null + && this.type == null + && this.metadata == null + && this.exception == null; } } @@ -135,6 +159,7 @@ static class RowProducer implements Supplier { private final AtomicInteger finishedCounter; private final LinkedBlockingDeque queue; private ResultSetMetadata metadata; + private Type type; private Struct currentRow; private Throwable exception; @@ -185,8 +210,7 @@ boolean nextRow() throws Throwable { PartitionExecutorResult next; if ((next = queue.peek()) != null && !next.isFinished()) { // There's a valid result available. Return this quickly. - setNextRow(queue.remove()); - return true; + return setNextRow(queue.remove()); } // Block until the next row is available. next = queue.take(); @@ -196,13 +220,12 @@ boolean nextRow() throws Throwable { return false; } } else { - setNextRow(next); - return true; + return setNextRow(next); } } } - void setNextRow(PartitionExecutorResult next) throws Throwable { + boolean setNextRow(PartitionExecutorResult next) throws Throwable { if (next.exception != null) { this.exception = next.exception; throw next.exception; @@ -211,6 +234,10 @@ void setNextRow(PartitionExecutorResult next) throws Throwable { if (this.metadata == null && next.metadata != null) { this.metadata = next.metadata; } + if (this.type == null && next.type != null) { + this.type = next.type; + } + return next.hasData(); } @Override @@ -223,6 +250,11 @@ public ResultSetMetadata getMetadata() { checkState(metadata != null, "next() call required"); return metadata; } + + public Type getType() { + checkState(type != null, "next() call required"); + return type; + } } private final RowProducer rowProducer; @@ -279,6 +311,12 @@ public ResultSetMetadata getMetadata() { return rowProducer.getMetadata(); } + @Override + public Type getType() { + checkValidState(); + return rowProducer.getType(); + } + @Override public int getNumPartitions() { return rowProducer.partitionExecutors.size(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java index 4c0e3493e52..625a4fe1180 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java @@ -312,7 +312,7 @@ public void testRunPartitionedQuery() { int maxPartitions = 5; try (Connection connection = createConnection()) { connection.setAutocommit(true); - try (ResultSet resultSet = + try (PartitionedQueryResultSet resultSet = connection.runPartitionedQuery( statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { int rowCount = 0; @@ -330,6 +330,35 @@ public void testRunPartitionedQuery() { assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); } + @Test + public void testRunEmptyPartitionedQuery() { + int generatedRowCount = 0; + RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); + Statement statement = + Statement.newBuilder("select * from random_table where active=@active") + .bind("active") + .to(true) + .build(); + mockSpanner.putStatementResult(StatementResult.query(statement, generator.generate())); + + int maxPartitions = 5; + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + try (PartitionedQueryResultSet resultSet = + connection.runPartitionedQuery( + statement, PartitionOptions.newBuilder().setMaxPartitions(maxPartitions).build())) { + assertFalse(resultSet.next()); + assertNotNull(resultSet.getMetadata()); + assertEquals(18, resultSet.getMetadata().getRowType().getFieldsCount()); + assertNotNull(resultSet.getType()); + assertEquals(18, resultSet.getType().getStructFields().size()); + } + } + assertEquals(1, mockSpanner.countRequestsOfType(CreateSessionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(BeginTransactionRequest.class)); + assertEquals(1, mockSpanner.countRequestsOfType(PartitionQueryRequest.class)); + } + @Test public void testRunPartitionedQueryUsingSql() { int generatedRowCount = 20; From a461c39ce5a34d7ad09f225c11b04dbdbcc6610c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 31 Jul 2023 20:32:38 +0200 Subject: [PATCH 12/18] fix: do not use any random staleness for partitioned queries --- .../test/java/com/google/cloud/spanner/it/ITBatchReadTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java index 6521a5ffda7..11be7df0430 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBatchReadTest.java @@ -341,7 +341,6 @@ public void testRunPartitionedQuery() { try (Connection connection = options.getConnection()) { // Use dynamic parallelism. connection.setMaxPartitionedParallelism(0); - connection.setReadOnlyStaleness(getRandomBound()); BitSet seenRows = new BitSet(numRows); try (PartitionedQueryResultSet resultSet = From 13541b1b34b10c6f2c0a63fa110bec161fbc7fa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Tue, 1 Aug 2023 09:21:37 +0200 Subject: [PATCH 13/18] fix: only return false for next() if all have finished --- .../google/cloud/spanner/connection/MergedResultSet.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index e60a1cc1f4d..e8646d8e41c 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -210,7 +210,9 @@ boolean nextRow() throws Throwable { PartitionExecutorResult next; if ((next = queue.peek()) != null && !next.isFinished()) { // There's a valid result available. Return this quickly. - return setNextRow(queue.remove()); + if (setNextRow(queue.remove())) { + return true; + } } // Block until the next row is available. next = queue.take(); @@ -220,7 +222,9 @@ boolean nextRow() throws Throwable { return false; } } else { - return setNextRow(next); + if (setNextRow(next)) { + return true; + } } } } From 3ae95e35cfd3ee2ef43a14107e82335413e469bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Tue, 1 Aug 2023 09:51:13 +0200 Subject: [PATCH 14/18] chore: rename to autoPartitionMode --- .../cloud/spanner/connection/Connection.java | 4 +-- .../spanner/connection/ConnectionImpl.java | 28 +++++++++---------- .../spanner/connection/ConnectionOptions.java | 23 ++++++++------- .../ConnectionStatementExecutorImpl.java | 5 ++-- .../connection/ConnectionOptionsTest.java | 10 +++---- 5 files changed, 34 insertions(+), 36 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java index 2c6f07ae514..8a8bd57f1c6 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/Connection.java @@ -1051,10 +1051,10 @@ default boolean isDelayTransactionStartUntilFirstWrite() { * flag in combination with {@link #setDataBoostEnabled(boolean)} to force all queries on this * connection to use data boost. */ - void setAlwaysUsePartitionedQueries(boolean alwaysUsePartitionedQueries); + void setAutoPartitionMode(boolean autoPartitionMode); /** Returns whether this connection will execute all queries as partitioned queries. */ - boolean isAlwaysUsePartitionedQueries(); + boolean isAutoPartitionMode(); /** * Sets the maximum number of partitions that should be included as a hint to Cloud Spanner when diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index e30b2e8d830..0b001576641 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -219,14 +219,14 @@ static UnitOfWorkType of(TransactionMode transactionMode) { private AutocommitDmlMode autocommitDmlMode = AutocommitDmlMode.TRANSACTIONAL; private TimestampBound readOnlyStaleness = TimestampBound.strong(); /** - * alwaysUsePartitionedQueries will force this connection to execute all queries as partitioned - * queries. If a query cannot be executed as a partitioned query, for example if it is not - * partitionable, then the query will fail. This mode is intended for integrations with frameworks - * that should always use partitioned queries, and that do not support executing custom SQL - * statements. This setting can be used in combination with the dataBoostEnabled flag to force all - * queries to use data boost. + * autoPartitionMode will force this connection to execute all queries as partitioned queries. If + * a query cannot be executed as a partitioned query, for example if it is not partitionable, then + * the query will fail. This mode is intended for integrations with frameworks that should always + * use partitioned queries, and that do not support executing custom SQL statements. This setting + * can be used in combination with the dataBoostEnabled flag to force all queries to use data + * boost. */ - private boolean alwaysUsePartitionedQueries; + private boolean autoPartitionMode; /** * dataBoostEnabled=true will cause all partitionedQueries to use data boost. All other queries * and other statements ignore this flag. @@ -272,7 +272,7 @@ static UnitOfWorkType of(TransactionMode transactionMode) { this.returnCommitStats = options.isReturnCommitStats(); this.delayTransactionStartUntilFirstWrite = options.isDelayTransactionStartUntilFirstWrite(); this.dataBoostEnabled = options.isDataBoostEnabled(); - this.alwaysUsePartitionedQueries = options.isAlwaysUsePartitionedQueries(); + this.autoPartitionMode = options.isAutoPartitionMode(); this.maxPartitions = options.getMaxPartitions(); this.maxPartitionedParallelism = options.getMaxPartitionedParallelism(); this.ddlClient = createDdlClient(); @@ -1038,13 +1038,13 @@ public boolean isDataBoostEnabled() { } @Override - public void setAlwaysUsePartitionedQueries(boolean alwaysUsePartitionedQueries) { - this.alwaysUsePartitionedQueries = alwaysUsePartitionedQueries; + public void setAutoPartitionMode(boolean autoPartitionMode) { + this.autoPartitionMode = autoPartitionMode; } @Override - public boolean isAlwaysUsePartitionedQueries() { - return this.alwaysUsePartitionedQueries; + public boolean isAutoPartitionMode() { + return this.autoPartitionMode; } @Override @@ -1450,7 +1450,7 @@ private ResultSet internalExecuteQuery( && (analyzeMode != AnalyzeMode.NONE || statement.hasReturningClause())), "Statement must either be a query or a DML mode with analyzeMode!=NONE or returning clause"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); - if (alwaysUsePartitionedQueries && statement.getType() == StatementType.QUERY) { + if (autoPartitionMode && statement.getType() == StatementType.QUERY) { return runPartitionedQuery( statement.getStatement(), PartitionOptions.getDefaultInstance(), options); } @@ -1472,7 +1472,7 @@ private AsyncResultSet internalExecuteQueryAsync( || (statement.getType() == StatementType.UPDATE && statement.hasReturningClause()), "Statement must be a query or DML with returning clause."); ConnectionPreconditions.checkState( - !(alwaysUsePartitionedQueries && statement.getType() == StatementType.QUERY), + !(autoPartitionMode && statement.getType() == StatementType.QUERY), "Partitioned queries cannot be executed asynchronously"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); return ResultSets.toAsyncResultSet( diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java index 2c3c8d25981..83457faa86b 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionOptions.java @@ -181,7 +181,7 @@ public String[] getValidValues() { private static final boolean DEFAULT_TRACK_SESSION_LEAKS = true; private static final boolean DEFAULT_TRACK_CONNECTION_LEAKS = true; private static final boolean DEFAULT_DATA_BOOST_ENABLED = false; - private static final boolean DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES = false; + private static final boolean DEFAULT_AUTO_PARTITION_MODE = false; private static final int DEFAULT_MAX_PARTITIONS = 0; private static final int DEFAULT_MAX_PARTITIONED_PARALLELISM = 1; @@ -239,8 +239,7 @@ public String[] getValidValues() { public static final String TRACK_CONNECTION_LEAKS_PROPERTY_NAME = "trackConnectionLeaks"; public static final String DATA_BOOST_ENABLED_PROPERTY_NAME = "dataBoostEnabled"; - public static final String ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME = - "alwaysUsePartitionedQueries"; + public static final String AUTO_PARTITION_MODE_PROPERTY_NAME = "autoPartitionMode"; public static final String MAX_PARTITIONS_PROPERTY_NAME = "maxPartitions"; public static final String MAX_PARTITIONED_PARALLELISM_PROPERTY_NAME = "maxPartitionedParallelism"; @@ -347,11 +346,11 @@ public String[] getValidValues() { + "This setting is only used for partitioned queries and is ignored by all other statements.", DEFAULT_DATA_BOOST_ENABLED), ConnectionProperty.createBooleanProperty( - ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME, + AUTO_PARTITION_MODE_PROPERTY_NAME, "Execute all queries on this connection as partitioned queries. " + "Executing a query that cannot be partitioned will fail. " + "Executing a query in a read/write transaction will also fail.", - DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES), + DEFAULT_AUTO_PARTITION_MODE), ConnectionProperty.createIntProperty( MAX_PARTITIONS_PROPERTY_NAME, "The max partitions hint value to use for partitioned queries. " @@ -624,7 +623,7 @@ public static Builder newBuilder() { private final boolean trackConnectionLeaks; private final boolean dataBoostEnabled; - private final boolean alwaysUsePartitionedQueries; + private final boolean autoPartitionMode; private final int maxPartitions; private final int maxPartitionedParallelism; @@ -676,7 +675,7 @@ private ConnectionOptions(Builder builder) { this.trackConnectionLeaks = parseTrackConnectionLeaks(this.uri); this.dataBoostEnabled = parseDataBoostEnabled(this.uri); - this.alwaysUsePartitionedQueries = parseAlwaysUsePartitionedQueries(this.uri); + this.autoPartitionMode = parseAutoPartitionMode(this.uri); this.maxPartitions = parseMaxPartitions(this.uri); this.maxPartitionedParallelism = parseMaxPartitionedParallelism(this.uri); @@ -957,9 +956,9 @@ static boolean parseDataBoostEnabled(String uri) { } @VisibleForTesting - static boolean parseAlwaysUsePartitionedQueries(String uri) { - String value = parseUriProperty(uri, ALWAYS_USE_PARTITIONED_QUERIES_PROPERTY_NAME); - return value != null ? Boolean.parseBoolean(value) : DEFAULT_ALWAYS_USE_PARTITIONED_QUERIES; + static boolean parseAutoPartitionMode(String uri) { + String value = parseUriProperty(uri, AUTO_PARTITION_MODE_PROPERTY_NAME); + return value != null ? Boolean.parseBoolean(value) : DEFAULT_AUTO_PARTITION_MODE; } @VisibleForTesting @@ -1257,8 +1256,8 @@ boolean isDataBoostEnabled() { return this.dataBoostEnabled; } - boolean isAlwaysUsePartitionedQueries() { - return this.alwaysUsePartitionedQueries; + boolean isAutoPartitionMode() { + return this.autoPartitionMode; } int getMaxPartitions() { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java index 771d16bb259..ed3ccd7092c 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java @@ -521,15 +521,14 @@ public StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled) { public StatementResult statementShowAlwaysUsePartitionedQueries() { return resultSet( String.format("%sALWAYS_USE_PARTITIONED_QUERIES", getNamespace(connection.getDialect())), - getConnection().isAlwaysUsePartitionedQueries(), + getConnection().isAutoPartitionMode(), SHOW_ALWAYS_USE_PARTITIONED_QUERIES); } @Override public StatementResult statementSetAlwaysUsePartitionedQueries( Boolean alwaysUsePartitionedQueries) { - getConnection() - .setAlwaysUsePartitionedQueries(Preconditions.checkNotNull(alwaysUsePartitionedQueries)); + getConnection().setAutoPartitionMode(Preconditions.checkNotNull(alwaysUsePartitionedQueries)); return noResult(SET_ALWAYS_USE_PARTITIONED_QUERIES); } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java index 42136fdc037..3a31135dfb1 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionOptionsTest.java @@ -557,25 +557,25 @@ public void testDataBoostEnabledDefault() { } @Test - public void testAlwaysUsePartitionedQueries() { + public void testAutoPartitionMode() { ConnectionOptions options = ConnectionOptions.newBuilder() .setUri( - "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?alwaysUsePartitionedQueries=true") + "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database?autoPartitionMode=true") .setCredentialsUrl(FILE_TEST_PATH) .build(); - assertTrue(options.isAlwaysUsePartitionedQueries()); + assertTrue(options.isAutoPartitionMode()); } @Test - public void testAlwaysUsePartitionedQueriesDefault() { + public void testAutoPartitionModeDefault() { ConnectionOptions options = ConnectionOptions.newBuilder() .setUri( "cloudspanner:/projects/test-project-123/instances/test-instance/databases/test-database") .setCredentialsUrl(FILE_TEST_PATH) .build(); - assertFalse(options.isAlwaysUsePartitionedQueries()); + assertFalse(options.isAutoPartitionMode()); } @Test From ed6a34eb47e1441ab78391e9c595893b2df801ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Tue, 1 Aug 2023 10:33:41 +0200 Subject: [PATCH 15/18] chore: rename sql statements + add tests for empty results --- .../ConnectionStatementExecutor.java | 4 +- .../ConnectionStatementExecutorImpl.java | 17 ++-- .../spanner/connection/MergedResultSet.java | 82 +++++++++++++++++-- .../spanner/connection/StatementResult.java | 4 +- .../connection/ClientSideStatements.json | 22 ++--- .../connection/PG_ClientSideStatements.json | 22 ++--- .../connection/MergedResultSetTest.java | 42 +++++----- .../PartitionedQueryMockServerTest.java | 8 +- 8 files changed, 133 insertions(+), 68 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java index b4cb1bc1c37..eb317790976 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutor.java @@ -131,9 +131,9 @@ StatementResult statementSetPgSessionCharacteristicsTransactionMode( StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled); - StatementResult statementShowAlwaysUsePartitionedQueries(); + StatementResult statementShowAutoPartitionMode(); - StatementResult statementSetAlwaysUsePartitionedQueries(Boolean alwaysUsePartitionedQueries); + StatementResult statementSetAutoPartitionMode(Boolean autoPartitionMode); StatementResult statementShowMaxPartitions(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java index ed3ccd7092c..a3b4f92f145 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionStatementExecutorImpl.java @@ -22,9 +22,9 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.COMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.ROLLBACK; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.RUN_BATCH; -import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_ALWAYS_USE_PARTITIONED_QUERIES; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTOCOMMIT_DML_MODE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_AUTO_PARTITION_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DATA_BOOST_ENABLED; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DEFAULT_TRANSACTION_ISOLATION; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; @@ -42,9 +42,9 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_STATEMENT_TIMEOUT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_TRANSACTION_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_TRANSACTION_TAG; -import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_ALWAYS_USE_PARTITIONED_QUERIES; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTOCOMMIT; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTOCOMMIT_DML_MODE; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_AUTO_PARTITION_MODE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_RESPONSE; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_COMMIT_TIMESTAMP; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_DATA_BOOST_ENABLED; @@ -518,18 +518,17 @@ public StatementResult statementSetDataBoostEnabled(Boolean dataBoostEnabled) { } @Override - public StatementResult statementShowAlwaysUsePartitionedQueries() { + public StatementResult statementShowAutoPartitionMode() { return resultSet( - String.format("%sALWAYS_USE_PARTITIONED_QUERIES", getNamespace(connection.getDialect())), + String.format("%sAUTO_PARTITION_MODE", getNamespace(connection.getDialect())), getConnection().isAutoPartitionMode(), - SHOW_ALWAYS_USE_PARTITIONED_QUERIES); + SHOW_AUTO_PARTITION_MODE); } @Override - public StatementResult statementSetAlwaysUsePartitionedQueries( - Boolean alwaysUsePartitionedQueries) { - getConnection().setAutoPartitionMode(Preconditions.checkNotNull(alwaysUsePartitionedQueries)); - return noResult(SET_ALWAYS_USE_PARTITIONED_QUERIES); + public StatementResult statementSetAutoPartitionMode(Boolean autoPartitionMode) { + getConnection().setAutoPartitionMode(Preconditions.checkNotNull(autoPartitionMode)); + return noResult(SET_AUTO_PARTITION_MODE); } @Override diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index e8646d8e41c..9f11a72d111 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -149,7 +149,56 @@ boolean isFinished() { } } - static class RowProducer implements Supplier { + interface RowProducer extends Supplier { + boolean nextRow() throws Throwable; + + void close(); + + Type getType(); + + ResultSetMetadata getMetadata(); + + int getNumPartitions(); + + int getParallelism(); + } + + static class EmptyRowProducer implements RowProducer { + @Override + public Struct get() { + return Struct.newBuilder().build(); + } + + @Override + public boolean nextRow() { + return false; + } + + @Override + public Type getType() { + return Type.struct(); + } + + @Override + public ResultSetMetadata getMetadata() { + return ResultSetMetadata.getDefaultInstance(); + } + + @Override + public int getNumPartitions() { + return 0; + } + + @Override + public int getParallelism() { + return 0; + } + + @Override + public void close() {} + } + + private static class RowProducerImpl implements RowProducer { /** The maximum number of rows that we will cache per thread that is fetching rows. */ private static final int QUEUE_SIZE_PER_WORKER = 32; @@ -163,8 +212,10 @@ static class RowProducer implements Supplier { private Struct currentRow; private Throwable exception; - RowProducer(Connection connection, List partitions, int maxParallelism) { + RowProducerImpl(Connection connection, List partitions, int maxParallelism) { Preconditions.checkArgument(maxParallelism >= 0, "maxParallelism must be >= 0"); + Preconditions.checkArgument( + !Preconditions.checkNotNull(partitions).isEmpty(), "partitions must not be empty"); if (maxParallelism == 0) { // Dynamically determine parallelism. this.parallelism = Math.min(partitions.size(), Runtime.getRuntime().availableProcessors()); @@ -195,14 +246,16 @@ static class RowProducer implements Supplier { this.executor.shutdown(); } - void close() { + @Override + public void close() { this.partitionExecutors.forEach(partitionExecutor -> partitionExecutor.shouldStop.set(true)); // shutdownNow will interrupt any running tasks and then shut down directly. // This will also cancel any queries that might be running. this.executor.shutdownNow(); } - boolean nextRow() throws Throwable { + @Override + public boolean nextRow() throws Throwable { if (this.exception != null) { throw this.exception; } @@ -255,6 +308,16 @@ public ResultSetMetadata getMetadata() { return metadata; } + @Override + public int getNumPartitions() { + return partitionExecutors.size(); + } + + @Override + public int getParallelism() { + return parallelism; + } + public Type getType() { checkState(type != null, "next() call required"); return type; @@ -266,10 +329,13 @@ public Type getType() { private boolean closed; MergedResultSet(Connection connection, List partitions, int maxParallelism) { - this(new RowProducer(connection, partitions, maxParallelism)); + this( + Preconditions.checkNotNull(partitions).isEmpty() + ? new EmptyRowProducer() + : new RowProducerImpl(connection, partitions, maxParallelism)); } - MergedResultSet(RowProducer rowProducer) { + private MergedResultSet(RowProducer rowProducer) { super(rowProducer); this.rowProducer = rowProducer; } @@ -323,11 +389,11 @@ public Type getType() { @Override public int getNumPartitions() { - return rowProducer.partitionExecutors.size(); + return rowProducer.getNumPartitions(); } @Override public int getParallelism() { - return rowProducer.parallelism; + return rowProducer.getParallelism(); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java index a1fde6a11d8..1452d906a96 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/StatementResult.java @@ -91,8 +91,8 @@ enum ClientSideStatementType { SET_SAVEPOINT_SUPPORT, SHOW_DATA_BOOST_ENABLED, SET_DATA_BOOST_ENABLED, - SHOW_ALWAYS_USE_PARTITIONED_QUERIES, - SET_ALWAYS_USE_PARTITIONED_QUERIES, + SHOW_AUTO_PARTITION_MODE, + SET_AUTO_PARTITION_MODE, SHOW_MAX_PARTITIONS, SET_MAX_PARTITIONS, SHOW_MAX_PARTITIONED_PARALLELISM, diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json index 7952520e4bf..c7f5d9dc8e2 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json @@ -527,24 +527,24 @@ } }, { - "name": "SHOW VARIABLE ALWAYS_USE_PARTITIONED_QUERIES", + "name": "SHOW VARIABLE AUTO_PARTITION_MODE", "executorName": "ClientSideStatementNoParamExecutor", "resultType": "RESULT_SET", - "statementType": "SHOW_ALWAYS_USE_PARTITIONED_QUERIES", - "regex": "(?is)\\A\\s*show\\s+variable\\s+always_use_partitioned_queries\\s*\\z", - "method": "statementShowAlwaysUsePartitionedQueries", - "exampleStatements": ["show variable always_use_partitioned_queries"] + "statementType": "SHOW_AUTO_PARTITION_MODE", + "regex": "(?is)\\A\\s*show\\s+variable\\s+auto_partition_mode\\s*\\z", + "method": "statementShowAutoPartitionMode", + "exampleStatements": ["show variable auto_partition_mode"] }, { - "name": "SET ALWAYS_USE_PARTITIONED_QUERIES = TRUE|FALSE", + "name": "SET AUTO_PARTITION_MODE = TRUE|FALSE", "executorName": "ClientSideStatementSetExecutor", "resultType": "NO_RESULT", - "statementType": "SET_ALWAYS_USE_PARTITIONED_QUERIES", - "regex": "(?is)\\A\\s*set\\s+always_use_partitioned_queries\\s*(?:=)\\s*(.*)\\z", - "method": "statementSetAlwaysUsePartitionedQueries", - "exampleStatements": ["set always_use_partitioned_queries = true", "set always_use_partitioned_queries = false"], + "statementType": "SET_AUTO_PARTITION_MODE", + "regex": "(?is)\\A\\s*set\\s+auto_partition_mode\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetAutoPartitionMode", + "exampleStatements": ["set auto_partition_mode = true", "set auto_partition_mode = false"], "setStatement": { - "propertyName": "ALWAYS_USE_PARTITIONED_QUERIES", + "propertyName": "AUTO_PARTITION_MODE", "separator": "=", "allowedValues": "(TRUE|FALSE)", "converterName": "ClientSideStatementValueConverters$BooleanConverter" diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json index 8c9817c6907..cb601d7277c 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/PG_ClientSideStatements.json @@ -715,24 +715,24 @@ } }, { - "name": "SHOW [VARIABLE] SPANNER.ALWAYS_USE_PARTITIONED_QUERIES", + "name": "SHOW [VARIABLE] SPANNER.AUTO_PARTITION_MODE", "executorName": "ClientSideStatementNoParamExecutor", "resultType": "RESULT_SET", - "statementType": "SHOW_ALWAYS_USE_PARTITIONED_QUERIES", - "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.always_use_partitioned_queries\\s*\\z", - "method": "statementShowAlwaysUsePartitionedQueries", - "exampleStatements": ["show spanner.always_use_partitioned_queries","show variable spanner.always_use_partitioned_queries"] + "statementType": "SHOW_AUTO_PARTITION_MODE", + "regex": "(?is)\\A\\s*show\\s+(?:variable\\s+)?spanner\\.auto_partition_mode\\s*\\z", + "method": "statementShowAutoPartitionMode", + "exampleStatements": ["show spanner.auto_partition_mode","show variable spanner.auto_partition_mode"] }, { - "name": "SET SPANNER.ALWAYS_USE_PARTITIONED_QUERIES = TRUE|FALSE", + "name": "SET SPANNER.AUTO_PARTITION_MODE = TRUE|FALSE", "executorName": "ClientSideStatementSetExecutor", "resultType": "NO_RESULT", - "statementType": "SET_ALWAYS_USE_PARTITIONED_QUERIES", - "regex": "(?is)\\A\\s*set\\s+spanner\\.always_use_partitioned_queries(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", - "method": "statementSetAlwaysUsePartitionedQueries", - "exampleStatements": ["set spanner.always_use_partitioned_queries = true", "set spanner.always_use_partitioned_queries = false", "set spanner.always_use_partitioned_queries to true", "set spanner.always_use_partitioned_queries to false"], + "statementType": "SET_AUTO_PARTITION_MODE", + "regex": "(?is)\\A\\s*set\\s+spanner\\.auto_partition_mode(?:\\s*=\\s*|\\s+to\\s+)(.*)\\z", + "method": "statementSetAutoPartitionMode", + "exampleStatements": ["set spanner.auto_partition_mode = true", "set spanner.auto_partition_mode = false", "set spanner.auto_partition_mode to true", "set spanner.auto_partition_mode to false"], "setStatement": { - "propertyName": "SPANNER.ALWAYS_USE_PARTITIONED_QUERIES", + "propertyName": "SPANNER.AUTO_PARTITION_MODE", "separator": "(?:=|\\s+TO\\s+)", "allowedValues": "(TRUE|FALSE)", "converterName": "ClientSideStatementValueConverters$BooleanConverter" diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java index b74062744ab..b9d9578d6b9 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/MergedResultSetTest.java @@ -91,8 +91,8 @@ public boolean next() { @Parameters(name = "numPartitions = {0}, maxRowsPerPartition = {1}, maxParallelism = {2}") public static Collection parameters() { List params = new ArrayList<>(); - for (int numPartitions : new int[] {1, 2, 5, 8}) { - for (int maxRowsPerPartition : new int[] {1, 5, 10, 20}) { + for (int numPartitions : new int[] {0, 1, 2, 5, 8}) { + for (int maxRowsPerPartition : new int[] {0, 1, 5, 10, 100}) { for (int maxParallelism : new int[] {0, 1, 2, 4, 8}) { params.add(new Object[] {numPartitions, maxRowsPerPartition, maxParallelism}); } @@ -110,12 +110,12 @@ private MockedResults setupResults(boolean withErrors) { for (int index = 0; index < numPartitions; index++) { String partition = String.valueOf(index); partitions.add(partition); - int numRows = random.nextInt(maxRowsPerPartition) + 1; + int numRows = maxRowsPerPartition == 0 ? 0 : random.nextInt(maxRowsPerPartition) + 1; RandomResultSetGenerator generator = new RandomResultSetGenerator(numRows); com.google.spanner.v1.ResultSet proto = generator.generate(); if (withErrors) { // Add a random error somewhere in the result. - int errorIndex = random.nextInt(numRows); + int errorIndex = numRows == 0 ? 0 : random.nextInt(numRows); minErrorIndex = Math.min(minErrorIndex, errorIndex); when(connection.runPartition(partition)) .thenReturn(new ResultSetWithError(ResultSetsHelper.fromProto(proto), errorIndex)); @@ -158,22 +158,24 @@ public void testResultSetStopsAfterFirstError() { MockedResults results = setupResults(true); try (MergedResultSet resultSet = new MergedResultSet(results.connection, results.partitions, maxParallelism)) { - AtomicInteger rowCount = new AtomicInteger(); - SpannerException exception = - assertThrows( - SpannerException.class, - () -> { - while (resultSet.next()) { - rowCount.getAndIncrement(); - } - }); - assertEquals(ErrorCode.INTERNAL, exception.getErrorCode()); - assertTrue(exception.getMessage(), exception.getMessage().contains("test error")); - // The result set should continue to throw the same error if we continue to call next(). - SpannerException nextException = assertThrows(SpannerException.class, resultSet::next); - assertEquals(exception, nextException); - // We should see at least minErrorIndex rows before an error. - assertTrue(rowCount.get() >= results.minErrorIndex); + if (numPartitions > 0) { + AtomicInteger rowCount = new AtomicInteger(); + SpannerException exception = + assertThrows( + SpannerException.class, + () -> { + while (resultSet.next()) { + rowCount.getAndIncrement(); + } + }); + assertEquals(ErrorCode.INTERNAL, exception.getErrorCode()); + assertTrue(exception.getMessage(), exception.getMessage().contains("test error")); + // The result set should continue to throw the same error if we continue to call next(). + SpannerException nextException = assertThrows(SpannerException.class, resultSet::next); + assertEquals(exception, nextException); + // We should see at least minErrorIndex rows before an error. + assertTrue(rowCount.get() >= results.minErrorIndex); + } } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java index 625a4fe1180..af586b3f986 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/PartitionedQueryMockServerTest.java @@ -532,7 +532,7 @@ public void testRunPartitionedQueryWithMaxParallelism() { } @Test - public void testAlwaysUsePartitionedQueries() { + public void testAutoPartitionMode() { int generatedRowCount = 5; RandomResultSetGenerator generator = new RandomResultSetGenerator(generatedRowCount); Statement statement = @@ -548,12 +548,10 @@ public void testAlwaysUsePartitionedQueries() { connection.setAutocommit(true); connection.setMaxPartitions(maxPartitions); - connection.execute( - Statement.of(String.format("set %salways_use_partitioned_queries=true", prefix))); + connection.execute(Statement.of(String.format("set %sauto_partition_mode=true", prefix))); try (ResultSet resultSet = connection.executeQuery( - Statement.of( - String.format("show variable %salways_use_partitioned_queries", prefix)))) { + Statement.of(String.format("show variable %sauto_partition_mode", prefix)))) { assertTrue(resultSet.next()); assertTrue(resultSet.getBoolean(0)); assertFalse(resultSet.next()); From 9e6dc6e4f338c52c2cc66cb723b3265c36959597 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Wed, 2 Aug 2023 10:11:32 +0000 Subject: [PATCH 16/18] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20?= =?UTF-8?q?post-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ce256eb63c..9e5f962355d 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.20.0') +implementation platform('com.google.cloud:libraries-bom:26.21.0') implementation 'com.google.cloud:google-cloud-spanner' ``` From 89889eebae3ba91caca31fde738778d643ec855e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 4 Aug 2023 13:00:22 +0200 Subject: [PATCH 17/18] chore: address review comments --- .../com/google/cloud/spanner/Statement.java | 2 +- .../connection/AbstractBaseUnitOfWork.java | 5 +- .../ClientSideStatementPartitionExecutor.java | 2 +- ...ientSideStatementRunPartitionExecutor.java | 10 + ...eStatementRunPartitionedQueryExecutor.java | 2 +- .../spanner/connection/ConnectionImpl.java | 1 + .../spanner/connection/MergedResultSet.java | 23 +- .../connection/ClientSideStatements.json | 6 +- .../connection/ClientSideStatementsTest.java | 55 +- .../connection/ConnectionImplTest.java | 10 +- .../connection/StatementParserTest.java | 37 +- .../connection/ClientSideStatementsTest.sql | 14372 +++++--- .../ConnectionImplGeneratedSqlScriptTest.sql | 9810 +++--- .../postgresql/ClientSideStatementsTest.sql | 28744 ++++++++++------ .../ConnectionImplGeneratedSqlScriptTest.sql | 9810 +++--- 15 files changed, 36991 insertions(+), 25898 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java index c6452545460..ea6cdf3f65c 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/Statement.java @@ -87,7 +87,7 @@ private Builder(Statement statement) { } /** Replaces the current SQL of this builder with the given string. */ - public Builder withSql(String sql) { + public Builder replace(String sql) { sqlBuffer.replace(0, sqlBuffer.length(), sql); return this; } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java index 8c123c02c32..bd43daf9e57 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java @@ -184,17 +184,18 @@ ResultSet partitionQuery( PartitionOptions partitionOptions, ParsedStatement query, QueryOption... options) { + final String partitionColumnName = "PARTITION"; BatchTransactionId transactionId = transaction.getBatchTransactionId(); List partitions = transaction.partitionQuery(partitionOptions, query.getStatement(), options); return ResultSets.forRows( com.google.cloud.spanner.Type.struct( - StructField.of("PARTITION", com.google.cloud.spanner.Type.string())), + StructField.of(partitionColumnName, com.google.cloud.spanner.Type.string())), partitions.stream() .map( partition -> Struct.newBuilder() - .set("PARTITION") + .set(partitionColumnName) .to(PartitionId.encodeToString(transactionId, partition)) .build()) .collect(Collectors.toList())); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java index 513a77632bc..0307ff517bb 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementPartitionExecutor.java @@ -45,7 +45,7 @@ public StatementResult execute( ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { String sql = getParameterValue(parsedStatement); return (StatementResult) - method.invoke(connection, parsedStatement.getStatement().toBuilder().withSql(sql).build()); + method.invoke(connection, parsedStatement.getStatement().toBuilder().replace(sql).build()); } String getParameterValue(ParsedStatement parsedStatement) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java index 1a090f99fc3..1534f04b3a4 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionExecutor.java @@ -55,6 +55,16 @@ public StatementResult execute( } String getParameterValue(ParsedStatement parsedStatement) { + // The statement has the form `RUN PARTITION ['partition-id']`. + // The regex that is defined for this statement is (simplified) `run\s+partition(?:\s*'(.*)')?` + // This regex has one capturing group, which captures the partition-id inside the single quotes. + // That capturing group is however inside a non-capturing optional group. + // That means that: + // 1. If the matcher matches and returns one or more groups, we know that we have a partition-id + // in the SQL statement itself, as that is the only thing that can be in a capturing group. + // 2. If the matcher matches and returns zero groups, we know that the statement is valid, but + // that it does not contain a partition-id in the SQL statement. The partition-id must then + // be included in the statement as a query parameter. Matcher matcher = statement.getPattern().matcher(parsedStatement.getSqlWithoutComments()); if (matcher.find() && matcher.groupCount() >= 1) { String value = matcher.group(1); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java index 59f6b17babd..ba42db1f9d3 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ClientSideStatementRunPartitionedQueryExecutor.java @@ -46,7 +46,7 @@ public StatementResult execute( ConnectionStatementExecutor connection, ParsedStatement parsedStatement) throws Exception { String sql = getParameterValue(parsedStatement); return (StatementResult) - method.invoke(connection, parsedStatement.getStatement().toBuilder().withSql(sql).build()); + method.invoke(connection, parsedStatement.getStatement().toBuilder().replace(sql).build()); } String getParameterValue(ParsedStatement parsedStatement) { diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java index 0b001576641..f2230e59bae 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ConnectionImpl.java @@ -1374,6 +1374,7 @@ public ApiFuture executeBatchUpdateAsync(Iterable updates) { private QueryOption[] mergeDataBoost(QueryOption... options) { if (this.dataBoostEnabled) { + // Shortcut for the most common scenario. if (options == null || options.length == 0) { options = new QueryOption[] {Options.dataBoostEnabled(true)}; diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java index 9f11a72d111..1f7d15365fc 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/MergedResultSet.java @@ -35,6 +35,7 @@ import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import javax.annotation.Nonnull; /** * {@link MergedResultSet} is a {@link ResultSet} implementation that combines the results from @@ -108,21 +109,27 @@ static class PartitionExecutorResult { private final Type type; private final ResultSetMetadata metadata; - static PartitionExecutorResult data(Struct data) { - return new PartitionExecutorResult(data, null, null, null); + static PartitionExecutorResult data(@Nonnull Struct data) { + return new PartitionExecutorResult(Preconditions.checkNotNull(data), null, null, null); } - static PartitionExecutorResult typeAndMetadata(Type type, ResultSetMetadata metadata) { - return new PartitionExecutorResult(null, type, metadata, null); + static PartitionExecutorResult typeAndMetadata( + @Nonnull Type type, @Nonnull ResultSetMetadata metadata) { + return new PartitionExecutorResult( + null, Preconditions.checkNotNull(type), Preconditions.checkNotNull(metadata), null); } static PartitionExecutorResult dataAndMetadata( - Struct data, Type type, ResultSetMetadata metadata) { - return new PartitionExecutorResult(data, type, metadata, null); + @Nonnull Struct data, @Nonnull Type type, @Nonnull ResultSetMetadata metadata) { + return new PartitionExecutorResult( + Preconditions.checkNotNull(data), + Preconditions.checkNotNull(type), + Preconditions.checkNotNull(metadata), + null); } - static PartitionExecutorResult exception(Throwable exception) { - return new PartitionExecutorResult(null, null, null, exception); + static PartitionExecutorResult exception(@Nonnull Throwable exception) { + return new PartitionExecutorResult(null, null, null, Preconditions.checkNotNull(exception)); } static PartitionExecutorResult finished() { diff --git a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json index c7f5d9dc8e2..579952660c3 100644 --- a/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json +++ b/google-cloud-spanner/src/main/resources/com/google/cloud/spanner/connection/ClientSideStatements.json @@ -165,7 +165,7 @@ "statementType": "PARTITION", "regex": "(?is)\\A\\s*partition(\\s+|\\()(.*)\\z", "method": "statementPartition", - "exampleStatements": [] + "exampleStatements": ["partition select col1, col2 from my_table"] }, { "name": "RUN PARTITION ['']", @@ -174,7 +174,7 @@ "statementType": "RUN_PARTITION", "regex": "(?is)\\A\\s*run\\s+partition(?:\\s*'(.*)')?\\s*\\z", "method": "statementRunPartition", - "exampleStatements": [] + "exampleStatements": ["run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='"] }, { "name": "RUN PARTITIONED QUERY ", @@ -183,7 +183,7 @@ "statementType": "RUN_PARTITIONED_QUERY", "regex": "(?is)\\A\\s*run\\s+partitioned\\s+query(\\s+|\\()(.*)\\z", "method": "statementRunPartitionedQuery", - "exampleStatements": [] + "exampleStatements": ["run partitioned query select col1, col2 from my_table"] }, { "name": "BEGIN TRANSACTION", diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ClientSideStatementsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ClientSideStatementsTest.java index 0fc6a82260e..c0b1e3a58dd 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ClientSideStatementsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ClientSideStatementsTest.java @@ -167,8 +167,11 @@ private static void generateTestStatements( AbstractStatementParser parser, ClientSideStatementImpl statement) { for (String sql : statement.getExampleStatements()) { log(statement.getExamplePrerequisiteStatements(), sql); - log(statement.getExamplePrerequisiteStatements(), upper(sql)); - log(statement.getExamplePrerequisiteStatements(), lower(sql)); + if (statement.getStatementType() != ClientSideStatementType.RUN_PARTITION) { + // Partition ids are case-sensitive. + log(statement.getExamplePrerequisiteStatements(), upper(sql)); + log(statement.getExamplePrerequisiteStatements(), lower(sql)); + } log(statement.getExamplePrerequisiteStatements(), withLeadingSpaces(sql)); log(statement.getExamplePrerequisiteStatements(), withLeadingTabs(sql)); log(statement.getExamplePrerequisiteStatements(), withLeadingLinefeeds(sql)); @@ -183,12 +186,20 @@ private static void generateTestStatements( statement.getExamplePrerequisiteStatements(), withInvalidPrefix(sql), ErrorCode.INVALID_ARGUMENT); - log( - statement.getExamplePrerequisiteStatements(), - withInvalidSuffix(sql), - parser.isQuery(withInvalidSuffix(sql)) - ? ErrorCode.UNIMPLEMENTED - : ErrorCode.INVALID_ARGUMENT); + + boolean anySuffixAllowed = + statement.getStatementType() == ClientSideStatementType.PARTITION + || statement.getStatementType() == ClientSideStatementType.RUN_PARTITIONED_QUERY; + if (anySuffixAllowed) { + log(statement.getExamplePrerequisiteStatements(), withInvalidSuffix(sql)); + } else { + log( + statement.getExamplePrerequisiteStatements(), + withInvalidSuffix(sql), + parser.isQuery(withInvalidSuffix(sql)) + ? ErrorCode.UNIMPLEMENTED + : ErrorCode.INVALID_ARGUMENT); + } final String[] replacements = { "%", "_", "&", "$", "@", "!", "*", "(", ")", "-", "+", "-#", "/", "\\", "?", "-/", "/#", @@ -199,18 +210,22 @@ private static void generateTestStatements( statement.getExamplePrerequisiteStatements(), withPrefix(replacement, sql), ErrorCode.INVALID_ARGUMENT); - log( - statement.getExamplePrerequisiteStatements(), - withSuffix(replacement, sql), - parser.isQuery(withSuffix(replacement, sql)) - ? ErrorCode.UNIMPLEMENTED - : ErrorCode.INVALID_ARGUMENT); - log( - statement.getExamplePrerequisiteStatements(), - replaceLastSpaceWith(replacement, sql), - parser.isQuery(replaceLastSpaceWith(replacement, sql)) - ? ErrorCode.UNIMPLEMENTED - : ErrorCode.INVALID_ARGUMENT); + if (anySuffixAllowed) { + log(statement.getExamplePrerequisiteStatements(), withSuffix(replacement, sql)); + } else { + log( + statement.getExamplePrerequisiteStatements(), + withSuffix(replacement, sql), + parser.isQuery(withSuffix(replacement, sql)) + ? ErrorCode.UNIMPLEMENTED + : ErrorCode.INVALID_ARGUMENT); + log( + statement.getExamplePrerequisiteStatements(), + replaceLastSpaceWith(replacement, sql), + parser.isQuery(replaceLastSpaceWith(replacement, sql)) + ? ErrorCode.UNIMPLEMENTED + : ErrorCode.INVALID_ARGUMENT); + } } } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java index 396a312ce45..d767c9f5176 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTest.java @@ -43,6 +43,8 @@ import com.google.cloud.NoCredentials; import com.google.cloud.Timestamp; import com.google.cloud.spanner.BatchClient; +import com.google.cloud.spanner.BatchReadOnlyTransaction; +import com.google.cloud.spanner.BatchTransactionId; import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.CommitStats; import com.google.cloud.spanner.DatabaseClient; @@ -366,7 +368,13 @@ public TransactionRunner allowNestedTransaction() { }; } }); - return new ConnectionImpl(options, spannerPool, ddlClient, dbClient, mock(BatchClient.class)); + BatchClient batchClient = mock(BatchClient.class); + BatchReadOnlyTransaction batchReadOnlyTransaction = mock(BatchReadOnlyTransaction.class); + when(batchClient.batchReadOnlyTransaction(any(TimestampBound.class))) + .thenReturn(batchReadOnlyTransaction); + when(batchClient.batchReadOnlyTransaction(any(BatchTransactionId.class))) + .thenReturn(batchReadOnlyTransaction); + return new ConnectionImpl(options, spannerPool, ddlClient, dbClient, batchClient); } @Test diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/StatementParserTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/StatementParserTest.java index 56760d900af..8246ca10760 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/StatementParserTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/StatementParserTest.java @@ -33,6 +33,7 @@ import com.google.cloud.spanner.connection.AbstractStatementParser.ParsedStatement; import com.google.cloud.spanner.connection.AbstractStatementParser.StatementType; import com.google.cloud.spanner.connection.ClientSideStatementImpl.CompileException; +import com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.truth.Truth; @@ -954,7 +955,17 @@ private void testParseStatement( assertParsing(withTrailingLinefeeds(statement), statementClass); assertThat(parse(withInvalidPrefix(statement))).isNull(); - assertThat(parse(withInvalidSuffix(statement))).isNull(); + + ClientSideStatementImpl parseClientSideStatement = parser.parseClientSideStatement(statement); + boolean anySuffixAllowed = + parseClientSideStatement.getStatementType() == ClientSideStatementType.PARTITION + || parseClientSideStatement.getStatementType() + == ClientSideStatementType.RUN_PARTITIONED_QUERY; + if (anySuffixAllowed) { + assertThat(parse(withInvalidSuffix(statement))).isNotNull(); + } else { + assertThat(parse(withInvalidSuffix(statement))).isNull(); + } assertThat(parse(withPrefix("%", statement))).isNull(); assertThat(parse(withPrefix("_", statement))).isNull(); @@ -966,17 +977,19 @@ private void testParseStatement( assertThat(parse(withPrefix("(", statement))).isNull(); assertThat(parse(withPrefix(")", statement))).isNull(); - Truth.assertWithMessage(withSuffix("%", statement) + " is not a valid statement") - .that(parse(withSuffix("%", statement))) - .isNull(); - assertThat(parse(withSuffix("_", statement))).isNull(); - assertThat(parse(withSuffix("&", statement))).isNull(); - assertThat(parse(withSuffix("$", statement))).isNull(); - assertThat(parse(withSuffix("@", statement))).isNull(); - assertThat(parse(withSuffix("!", statement))).isNull(); - assertThat(parse(withSuffix("*", statement))).isNull(); - assertThat(parse(withSuffix("(", statement))).isNull(); - assertThat(parse(withSuffix(")", statement))).isNull(); + if (!anySuffixAllowed) { + Truth.assertWithMessage(withSuffix("%", statement) + " is not a valid statement") + .that(parse(withSuffix("%", statement))) + .isNull(); + assertThat(parse(withSuffix("_", statement))).isNull(); + assertThat(parse(withSuffix("&", statement))).isNull(); + assertThat(parse(withSuffix("$", statement))).isNull(); + assertThat(parse(withSuffix("@", statement))).isNull(); + assertThat(parse(withSuffix("!", statement))).isNull(); + assertThat(parse(withSuffix("*", statement))).isNull(); + assertThat(parse(withSuffix("(", statement))).isNull(); + assertThat(parse(withSuffix(")", statement))).isNull(); + } } private void testParseStatementWithOneParameterAtTheEnd( diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql index 4a10fe34e51..494371b4de6 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ClientSideStatementsTest.sql @@ -3591,13514 +3591,16964 @@ NEW_CONNECTION; @EXPECT EXCEPTION UNIMPLEMENTED show variable/-savepoint_support; NEW_CONNECTION; -begin; +show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -BEGIN; +SHOW VARIABLE DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; NEW_CONNECTION; -begin; +show variable delay_transaction_start_until_first_write; NEW_CONNECTION; - begin; + show variable delay_transaction_start_until_first_write; NEW_CONNECTION; - begin; + show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -begin; +show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -begin ; +show variable delay_transaction_start_until_first_write ; NEW_CONNECTION; -begin ; +show variable delay_transaction_start_until_first_write ; NEW_CONNECTION; -begin +show variable delay_transaction_start_until_first_write ; NEW_CONNECTION; -begin; +show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -begin; +show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -begin; +show +variable +delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo begin; +foo show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin bar; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%begin; +%show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin%; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write%; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin%; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_begin; +_show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin_; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write_; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin_; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&begin; +&show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin&; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write&; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin&; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$begin; +$show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin$; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write$; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin$; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@begin; +@show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin@; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write@; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin@; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!begin; +!show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin!; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write!; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin!; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*begin; +*show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin*; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write*; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin*; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(begin; +(show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin(; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write(; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin(; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)begin; +)show variable delay_transaction_start_until_first_write; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin); +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write); NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin); +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --begin; +-show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-; ++show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-; +-#show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+begin; +/show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+; +\show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+; +?show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#begin; +-/show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-#; +/#show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#delay_transaction_start_until_first_write; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-#; +/-show variable delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable delay_transaction_start_until_first_write/-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-delay_transaction_start_until_first_write; +NEW_CONNECTION; +partition select col1, col2 from my_table; +NEW_CONNECTION; +PARTITION SELECT COL1, COL2 FROM MY_TABLE; +NEW_CONNECTION; +partition select col1, col2 from my_table; +NEW_CONNECTION; + partition select col1, col2 from my_table; +NEW_CONNECTION; + partition select col1, col2 from my_table; +NEW_CONNECTION; + + + +partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table ; +NEW_CONNECTION; +partition select col1, col2 from my_table ; +NEW_CONNECTION; +partition select col1, col2 from my_table + +; +NEW_CONNECTION; +partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table; +NEW_CONNECTION; +partition +select +col1, +col2 +from +my_table; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/begin; +foo partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/; +%partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/; +_partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\begin; +&partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin\; +$partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin\; +@partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?begin; +!partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?; +*partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?; +(partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/begin; +)partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-/; +-partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-/; ++partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#begin; +-#partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#; +/partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#; +\partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-begin; +?partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/-; +-/partition select col1, col2 from my_table; +NEW_CONNECTION; +partition select col1, col2 from my_table-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/-; +/#partition select col1, col2 from my_table; NEW_CONNECTION; -start; +partition select col1, col2 from my_table/#; NEW_CONNECTION; -START; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-partition select col1, col2 from my_table; NEW_CONNECTION; -start; +partition select col1, col2 from my_table/-; NEW_CONNECTION; - start; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; - start; + run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; +NEW_CONNECTION; + run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; -start; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; -start ; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA==' ; NEW_CONNECTION; -start ; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA==' ; NEW_CONNECTION; -start +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA==' ; NEW_CONNECTION; -start; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; -start; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; -start; +run +partition +'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start; +foo run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start bar; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA==' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start; +%run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%; +run partition%'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start; +_run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_; +run partition_'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start; +&run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&; +run partition&'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start; +$run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$; +run partition$'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start; +@run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@; +run partition@'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start; +!run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!; +run partition!'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start; +*run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*; +run partition*'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start; +(run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(; +run partition('H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start; +)run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start); +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start); +run partition)'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start; +-run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-; +run partition-'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start; ++run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+; +run partition+'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start; +-#run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#; +run partition-#'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start; +/run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/; +run partition/'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start; +\run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\; +run partition\'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start; +?run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?; +run partition?'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start; +-/run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/; +run partition-/'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start; +/#run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#; +run partition/#'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start; +/-run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-; +run partition 'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-; +run partition/-'H4sIAAAAAAAA_7VWTWwbRRSeOHESp_lpQyGoomBao1KCvU3s2IkCInWUgMOSlMT8tQcY787ak8zubHZmE5tDVQ7c4MqJAweQOFSiEhJwBa4ICVCFxAGB4MIBCQQIDgjxZr3ebJM64cIe7NmZ9_u9773Z6z-jpPCQZnA7V-e8zkjOYNw3c8LFjkO8nMHhz5CUO7lL2JNUrSomgmd0uTKZQAkdpdzOgUQZHSxpbUtaYEkLLWmR-ryORqSHHYGNtjWJst3VylgajWpcfL7pQshnuoYcOeK_T_y0MPzaxQRK6WjA4My3HSHRSX0T72CNYaeuVSTxcI0RiClJHZM0JRqPHW9Ijzp1OOzbIi1Qvb97nE-S1gaRIHo8gmPNVb-gNvkfUAmFwcBoZKDKtwiAmo6rux6XvOZbWrklSRTf8LZPvFbk8Ex3h3t-jnkEm-HrNrqKhqCUQmJJbHB6aCk3OlIKNqnwU_r9TRceKM35o0sTug0rNA88WkEjNm5GAmIFjUc4bNCXiUpXNF207wF3F2LuOujk9tDJ6FQVme3thKo9CdRzBSVryrBEiSvlpoeyR9ki2LqdIQS69x6uG_NaQX0NLBrtbHxP-b7-28Rf_YPV75QptZ2xzJKJi5hkjVpxJlvIW9NZjGeKWTJdmiOz0yWrVJuB5NNdsb4V4qUEGrmMxnapbCxy26ZS1VDoaAiCtIi3zncBgzvineFIUieeIrSJJS5zLuSSo2pt3ioIJ4xg1dV9ROJ6wAQd9VuUAezhW5JRcCnR8ZiezgPmDrq4TlSBlehEME3qJCB-qDvqesQiMAQWG76zJUKxQdej3KOyJVHuSLJn1l3jUigPLnv3whzewYxCfmTNYS21d7eOxhVIStOmQlJD58ZWcAJ1cePPoUMoapEfbzSsV1_5-2YC9QLaQGlsEwAG0B5rg-FLyrSnsHuwi4vxxDop7UxpS01i-ECrbbZOQEPIzNMxPZWg2GZhR0KQDyg3OeUmt8gZa09zkXnGsblJLapKCu5_fefdf-QfA2Wgp456bKV-OlA_saf-BJAWRJMD33z86V0vfdGLEstoiHFsLsNs5l4FpWTDI6LBmdl0H1to8313EH4TagVN5k6BxQe7ovYsZj7JAPWKhYrtslM3vj_3vDj2OcS0gpI76hD67OEj1C_WBFwvhgzevvpz_f3K619-BBPmMuqnYtVnDJgqWy6R6L7uzKmCwPy-pr6Nsw_eeIu9cPaRYrttIbfTXeWVxZtra798cuLOzQRKQl9hz8OtJRbQRJ0qzM9BcAY3yaHzVwlnFkFKccaihJmi3FoFYgVVg3YLxo9E93QhUJAcqAJOviGXAwMSnb_FIQwJ7sBfQBitYtt-MOh16Am4gN2rh5E_iq8zpceDATkaMEk1f27J8e34oStRsrJaLRagrzqDUm2eFUT5Tz-Utjxup-3Wi0EU6d0G8Uiamo8uUFORdLJrLAe_H8KJuBh0ZEoQIYLtcCKkoO-hpbDt7sOvXYJq5_TAV4zST6mYnwP0NyFooe7qTY1CK2PHICJYaWqY1jB41cyaFjoXWi1vlWatC1PZaVysZQukWMjW8vm5bJ7Mlgoz08WZqfwcpHnqQJpRPI9fm1j98Nv33gaiV1DSwQ6HK3RAEPiAM-He7Pth9ppC1fzs6zeDGToW3D1qdRIW1v8UsxaDSGhT_wJCVcN1bwoAAA=='; NEW_CONNECTION; -begin transaction; +run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -BEGIN TRANSACTION; +RUN PARTITIONED QUERY SELECT COL1, COL2 FROM MY_TABLE; NEW_CONNECTION; -begin transaction; +run partitioned query select col1, col2 from my_table; NEW_CONNECTION; - begin transaction; + run partitioned query select col1, col2 from my_table; NEW_CONNECTION; - begin transaction; + run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -begin transaction; +run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -begin transaction ; +run partitioned query select col1, col2 from my_table ; NEW_CONNECTION; -begin transaction ; +run partitioned query select col1, col2 from my_table ; NEW_CONNECTION; -begin transaction +run partitioned query select col1, col2 from my_table ; NEW_CONNECTION; -begin transaction; -NEW_CONNECTION; -begin transaction; -NEW_CONNECTION; -begin -transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -foo begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction bar; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -%begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction%; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin%transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -_begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction_; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin_transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -&begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction&; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin&transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -$begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction$; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin$transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -@begin transaction; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction@; +run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin@transaction; +run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -!begin transaction; +run +partitioned +query +select +col1, +col2 +from +my_table; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction!; +foo run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin!transaction; +run partitioned query select col1, col2 from my_table bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*begin transaction; +%run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction*; +run partitioned query select col1, col2 from my_table%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin*transaction; +_run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -(begin transaction; +run partitioned query select col1, col2 from my_table_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction(; +&run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin(transaction; +run partitioned query select col1, col2 from my_table&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)begin transaction; +$run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction); +run partitioned query select col1, col2 from my_table$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin)transaction; +@run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --begin transaction; +run partitioned query select col1, col2 from my_table@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-; +!run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin-transaction; +run partitioned query select col1, col2 from my_table!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+begin transaction; +*run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction+; +run partitioned query select col1, col2 from my_table*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+transaction; +(run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --#begin transaction; +run partitioned query select col1, col2 from my_table(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-#; +)run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin-#transaction; +run partitioned query select col1, col2 from my_table); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/begin transaction; +-run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/; +run partitioned query select col1, col2 from my_table-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/transaction; ++run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -\begin transaction; +run partitioned query select col1, col2 from my_table+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction\; +-#run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin\transaction; +run partitioned query select col1, col2 from my_table-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?begin transaction; +/run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction?; +run partitioned query select col1, col2 from my_table/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?transaction; +\run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --/begin transaction; +run partitioned query select col1, col2 from my_table\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-/; +?run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin-/transaction; +run partitioned query select col1, col2 from my_table?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#begin transaction; +-/run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/#; +run partitioned query select col1, col2 from my_table-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#transaction; +/#run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/-begin transaction; +run partitioned query select col1, col2 from my_table/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/-; +/-run partitioned query select col1, col2 from my_table; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -begin/-transaction; +run partitioned query select col1, col2 from my_table/-; NEW_CONNECTION; -start transaction; +begin; NEW_CONNECTION; -START TRANSACTION; +BEGIN; NEW_CONNECTION; -start transaction; +begin; NEW_CONNECTION; - start transaction; + begin; NEW_CONNECTION; - start transaction; + begin; NEW_CONNECTION; -start transaction; +begin; NEW_CONNECTION; -start transaction ; +begin ; NEW_CONNECTION; -start transaction ; +begin ; NEW_CONNECTION; -start transaction +begin ; NEW_CONNECTION; -start transaction; +begin; NEW_CONNECTION; -start transaction; +begin; NEW_CONNECTION; -start -transaction; +begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start transaction; +foo begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction bar; +begin bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start transaction; +%begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction%; +begin%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%transaction; +begin%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start transaction; +_begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction_; +begin_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_transaction; +begin_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start transaction; +&begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction&; +begin&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&transaction; +begin&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start transaction; +$begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction$; +begin$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$transaction; +begin$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start transaction; +@begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction@; +begin@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@transaction; +begin@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start transaction; +!begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction!; +begin!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!transaction; +begin!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start transaction; +*begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction*; +begin*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*transaction; +begin*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start transaction; +(begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction(; +begin(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(transaction; +begin(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start transaction; +)begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction); +begin); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start)transaction; +begin); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start transaction; +-begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-; +begin-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-transaction; +begin-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start transaction; ++begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction+; +begin+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+transaction; +begin+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start transaction; +-#begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-#; +begin-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#transaction; +begin-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start transaction; +/begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/; +begin/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/transaction; +begin/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start transaction; +\begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction\; +begin\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\transaction; +begin\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start transaction; +?begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction?; +begin?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?transaction; +begin?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start transaction; +-/begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-/; +begin-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/transaction; +begin-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start transaction; +/#begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/#; +begin/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#transaction; +begin/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start transaction; +/-begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/-; +begin/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-transaction; +begin/-; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; -COMMIT; +START; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; - commit; + start; NEW_CONNECTION; -begin transaction; - commit; + start; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; -commit ; +start ; NEW_CONNECTION; -begin transaction; -commit ; +start ; NEW_CONNECTION; -begin transaction; -commit +start ; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; -commit; +start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit; +foo start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit bar; +start bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit; +%start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +start%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +start%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit; +_start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +start_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +start_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit; +&start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +start&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +start&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit; +$start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +start$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +start$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit; +@start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +start@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +start@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit; +!start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +start!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +start!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit; +*start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +start*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +start*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit; +(start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +start(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +start(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit; +)start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +start); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +start); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit; +-start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +start-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +start-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit; ++start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +start+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +start+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit; +-#start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +start-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +start-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit; +/start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +start/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +start/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit; +\start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +start\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +start\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit; +?start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +start?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +start?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit; +-/start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +start-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +start-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit; +/#start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +start/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +start/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit; +/-start; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +start/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +start/-; NEW_CONNECTION; begin transaction; -commit transaction; NEW_CONNECTION; -begin transaction; -COMMIT TRANSACTION; +BEGIN TRANSACTION; NEW_CONNECTION; begin transaction; -commit transaction; NEW_CONNECTION; -begin transaction; - commit transaction; + begin transaction; NEW_CONNECTION; -begin transaction; - commit transaction; + begin transaction; NEW_CONNECTION; -begin transaction; -commit transaction; -NEW_CONNECTION; begin transaction; -commit transaction ; NEW_CONNECTION; -begin transaction; -commit transaction ; +begin transaction ; NEW_CONNECTION; -begin transaction; -commit transaction +begin transaction ; +NEW_CONNECTION; +begin transaction ; NEW_CONNECTION; -begin transaction; -commit transaction; +begin transaction; NEW_CONNECTION; -begin transaction; -commit transaction; +begin transaction; NEW_CONNECTION; -begin transaction; -commit +begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit transaction; +foo begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction bar; +begin transaction bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit transaction; +%begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction%; +begin transaction%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%transaction; +begin%transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit transaction; +_begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction_; +begin transaction_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_transaction; +begin_transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit transaction; +&begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction&; +begin transaction&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&transaction; +begin&transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit transaction; +$begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction$; +begin transaction$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$transaction; +begin$transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit transaction; +@begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction@; +begin transaction@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@transaction; +begin@transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit transaction; +!begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction!; +begin transaction!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!transaction; +begin!transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit transaction; +*begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction*; +begin transaction*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*transaction; +begin*transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit transaction; +(begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction(; +begin transaction(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(transaction; +begin(transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit transaction; +)begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction); +begin transaction); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit)transaction; +begin)transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit transaction; +-begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-; +begin transaction-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-transaction; +begin-transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit transaction; ++begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction+; +begin transaction+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+transaction; +begin+transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit transaction; +-#begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-#; +begin transaction-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#transaction; +begin-#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit transaction; +/begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/; +begin transaction/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/transaction; +begin/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit transaction; +\begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction\; +begin transaction\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\transaction; +begin\transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit transaction; +?begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction?; +begin transaction?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?transaction; +begin?transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit transaction; +-/begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-/; +begin transaction-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/transaction; +begin-/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit transaction; +/#begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/#; +begin transaction/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#transaction; +begin/#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit transaction; +/-begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/-; +begin transaction/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-transaction; +begin/-transaction; NEW_CONNECTION; -begin transaction; -rollback; +start transaction; NEW_CONNECTION; -begin transaction; -ROLLBACK; +START TRANSACTION; NEW_CONNECTION; -begin transaction; -rollback; +start transaction; NEW_CONNECTION; -begin transaction; - rollback; + start transaction; NEW_CONNECTION; -begin transaction; - rollback; + start transaction; NEW_CONNECTION; -begin transaction; -rollback; +start transaction; NEW_CONNECTION; -begin transaction; -rollback ; +start transaction ; NEW_CONNECTION; -begin transaction; -rollback ; +start transaction ; NEW_CONNECTION; -begin transaction; -rollback +start transaction ; NEW_CONNECTION; -begin transaction; -rollback; +start transaction; NEW_CONNECTION; -begin transaction; -rollback; +start transaction; NEW_CONNECTION; -begin transaction; -rollback; +start +transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback; +foo start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback bar; +start transaction bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback; +%start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +start transaction%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +start%transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback; +_start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +start transaction_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +start_transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback; +&start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +start transaction&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +start&transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback; +$start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +start transaction$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +start$transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback; +@start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +start transaction@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +start@transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback; +!start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +start transaction!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +start!transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback; +*start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +start transaction*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +start*transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback; +(start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +start transaction(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +start(transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback; +)start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +start transaction); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +start)transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback; +-start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +start transaction-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +start-transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback; ++start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +start transaction+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +start+transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback; +-#start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +start transaction-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +start-#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback; +/start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +start transaction/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +start/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback; +\start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +start transaction\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +start\transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback; +?start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +start transaction?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +start?transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback; +-/start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +start transaction-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +start-/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback; +/#start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +start transaction/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +start/#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback; +/-start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +start transaction/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +start/-transaction; NEW_CONNECTION; begin transaction; -rollback transaction; +commit; NEW_CONNECTION; begin transaction; -ROLLBACK TRANSACTION; +COMMIT; NEW_CONNECTION; begin transaction; -rollback transaction; +commit; NEW_CONNECTION; begin transaction; - rollback transaction; + commit; NEW_CONNECTION; begin transaction; - rollback transaction; + commit; NEW_CONNECTION; begin transaction; -rollback transaction; +commit; NEW_CONNECTION; begin transaction; -rollback transaction ; +commit ; NEW_CONNECTION; begin transaction; -rollback transaction ; +commit ; NEW_CONNECTION; begin transaction; -rollback transaction +commit ; NEW_CONNECTION; begin transaction; -rollback transaction; +commit; NEW_CONNECTION; begin transaction; -rollback transaction; +commit; NEW_CONNECTION; begin transaction; -rollback -transaction; +commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback transaction; +foo commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction bar; +commit bar; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback transaction; +%commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction%; +commit%; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%transaction; +commit%; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback transaction; +_commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction_; +commit_; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_transaction; +commit_; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback transaction; +&commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction&; +commit&; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&transaction; +commit&; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback transaction; +$commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction$; +commit$; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$transaction; +commit$; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback transaction; +@commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction@; +commit@; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@transaction; +commit@; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback transaction; +!commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction!; +commit!; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!transaction; +commit!; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback transaction; +*commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction*; +commit*; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*transaction; +commit*; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback transaction; +(commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction(; +commit(; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(transaction; +commit(; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback transaction; +)commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction); +commit); NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback)transaction; +commit); NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback transaction; +-commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-; +commit-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-transaction; +commit-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback transaction; ++commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction+; +commit+; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+transaction; +commit+; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback transaction; +-#commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-#; +commit-#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#transaction; +commit-#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback transaction; +/commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/; +commit/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/transaction; +commit/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback transaction; +\commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction\; +commit\; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\transaction; +commit\; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback transaction; +?commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction?; +commit?; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?transaction; +commit?; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback transaction; +-/commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-/; +commit-/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/transaction; +commit-/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback transaction; +/#commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/#; +commit/#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#transaction; +commit/#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback transaction; +/-commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/-; +commit/-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-transaction; +commit/-; NEW_CONNECTION; -start batch ddl; +begin transaction; +commit transaction; NEW_CONNECTION; -START BATCH DDL; +begin transaction; +COMMIT TRANSACTION; NEW_CONNECTION; -start batch ddl; +begin transaction; +commit transaction; NEW_CONNECTION; - start batch ddl; +begin transaction; + commit transaction; NEW_CONNECTION; - start batch ddl; +begin transaction; + commit transaction; NEW_CONNECTION; +begin transaction; -start batch ddl; -NEW_CONNECTION; -start batch ddl ; +commit transaction; NEW_CONNECTION; -start batch ddl ; +begin transaction; +commit transaction ; NEW_CONNECTION; -start batch ddl +begin transaction; +commit transaction ; +NEW_CONNECTION; +begin transaction; +commit transaction ; NEW_CONNECTION; -start batch ddl; +begin transaction; +commit transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; +commit transaction; NEW_CONNECTION; -start -batch -ddl; +begin transaction; +commit +transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch ddl; +foo commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl bar; +commit transaction bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch ddl; +%commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl%; +commit transaction%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%ddl; +commit%transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch ddl; +_commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl_; +commit transaction_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_ddl; +commit_transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch ddl; +&commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl&; +commit transaction&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&ddl; +commit&transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch ddl; +$commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl$; +commit transaction$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$ddl; +commit$transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch ddl; +@commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl@; +commit transaction@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@ddl; +commit@transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch ddl; +!commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl!; +commit transaction!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!ddl; +commit!transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch ddl; +*commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl*; +commit transaction*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*ddl; +commit*transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch ddl; +(commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl(; +commit transaction(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(ddl; +commit(transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch ddl; +)commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl); +commit transaction); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)ddl; +commit)transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch ddl; +-commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-; +commit transaction-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-ddl; +commit-transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch ddl; ++commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl+; +commit transaction+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+ddl; +commit+transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch ddl; +-#commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-#; +commit transaction-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#ddl; +commit-#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch ddl; +/commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/; +commit transaction/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/ddl; +commit/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch ddl; +\commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl\; +commit transaction\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\ddl; +commit\transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch ddl; +?commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl?; +commit transaction?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?ddl; +commit?transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch ddl; +-/commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-/; +commit transaction-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/ddl; +commit-/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch ddl; +/#commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/#; +commit transaction/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#ddl; +commit/#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch ddl; +/-commit transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/-; +commit transaction/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-ddl; +commit/-transaction; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback; NEW_CONNECTION; -START BATCH DML; +begin transaction; +ROLLBACK; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback; NEW_CONNECTION; - start batch dml; +begin transaction; + rollback; NEW_CONNECTION; - start batch dml; +begin transaction; + rollback; NEW_CONNECTION; +begin transaction; -start batch dml; +rollback; NEW_CONNECTION; -start batch dml ; +begin transaction; +rollback ; NEW_CONNECTION; -start batch dml ; +begin transaction; +rollback ; NEW_CONNECTION; -start batch dml +begin transaction; +rollback ; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback; NEW_CONNECTION; -start -batch -dml; +begin transaction; +rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch dml; +foo rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml bar; +rollback bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch dml; +%rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml%; +rollback%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%dml; +rollback%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch dml; +_rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml_; +rollback_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_dml; +rollback_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch dml; +&rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml&; +rollback&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&dml; +rollback&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch dml; +$rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml$; +rollback$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$dml; +rollback$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch dml; +@rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml@; +rollback@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@dml; +rollback@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch dml; +!rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml!; +rollback!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!dml; +rollback!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch dml; +*rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml*; +rollback*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*dml; +rollback*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch dml; +(rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml(; +rollback(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(dml; +rollback(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch dml; +)rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml); +rollback); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)dml; +rollback); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch dml; +-rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-; +rollback-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-dml; +rollback-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch dml; ++rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml+; +rollback+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+dml; +rollback+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch dml; +-#rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-#; +rollback-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#dml; +rollback-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch dml; +/rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/; +rollback/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/dml; +rollback/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch dml; +\rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml\; +rollback\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\dml; +rollback\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch dml; +?rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml?; +rollback?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?dml; +rollback?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch dml; +-/rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-/; +rollback-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/dml; +rollback-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch dml; +/#rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/#; +rollback/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#dml; +rollback/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch dml; +/-rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/-; +rollback/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-dml; +rollback/-; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +rollback transaction; NEW_CONNECTION; -start batch ddl; -RUN BATCH; +begin transaction; +ROLLBACK TRANSACTION; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +rollback transaction; NEW_CONNECTION; -start batch ddl; - run batch; +begin transaction; + rollback transaction; NEW_CONNECTION; -start batch ddl; - run batch; +begin transaction; + rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; -run batch; +rollback transaction; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch ddl; -run batch +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +rollback transaction; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +rollback transaction; NEW_CONNECTION; -start batch ddl; -run -batch; +begin transaction; +rollback +transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo run batch; +foo rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch bar; +rollback transaction bar; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%run batch; +%rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch%; +rollback transaction%; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run%batch; +rollback%transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_run batch; +_rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch_; +rollback transaction_; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run_batch; +rollback_transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&run batch; +&rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch&; +rollback transaction&; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run&batch; +rollback&transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$run batch; +$rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch$; +rollback transaction$; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run$batch; +rollback$transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@run batch; +@rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch@; +rollback transaction@; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run@batch; +rollback@transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!run batch; +!rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch!; +rollback transaction!; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run!batch; +rollback!transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*run batch; +*rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch*; +rollback transaction*; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run*batch; +rollback*transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(run batch; +(rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch(; +rollback transaction(; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run(batch; +rollback(transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)run batch; +)rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch); +rollback transaction); NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run)batch; +rollback)transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --run batch; +-rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-; +rollback transaction-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-batch; +rollback-transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+run batch; ++rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch+; +rollback transaction+; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run+batch; +rollback+transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#run batch; +-#rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-#; +rollback transaction-#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-#batch; +rollback-#transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/run batch; +/rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/; +rollback transaction/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/batch; +rollback/transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\run batch; +\rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch\; +rollback transaction\; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run\batch; +rollback\transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?run batch; +?rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch?; +rollback transaction?; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run?batch; +rollback?transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/run batch; +-/rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-/; +rollback transaction-/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-/batch; +rollback-/transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#run batch; +/#rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/#; +rollback transaction/#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/#batch; +rollback/#transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-run batch; +/-rollback transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/-; +rollback transaction/-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/-batch; +rollback/-transaction; NEW_CONNECTION; start batch ddl; -abort batch; NEW_CONNECTION; -start batch ddl; -ABORT BATCH; +START BATCH DDL; NEW_CONNECTION; start batch ddl; -abort batch; NEW_CONNECTION; -start batch ddl; - abort batch; + start batch ddl; NEW_CONNECTION; -start batch ddl; - abort batch; + start batch ddl; NEW_CONNECTION; -start batch ddl; -abort batch; -NEW_CONNECTION; start batch ddl; -abort batch ; NEW_CONNECTION; -start batch ddl; -abort batch ; +start batch ddl ; NEW_CONNECTION; -start batch ddl; -abort batch +start batch ddl ; +NEW_CONNECTION; +start batch ddl ; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch ddl; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch ddl; NEW_CONNECTION; -start batch ddl; -abort -batch; +start +batch +ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo abort batch; +foo start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch bar; +start batch ddl bar; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%abort batch; +%start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch%; +start batch ddl%; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort%batch; +start batch%ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_abort batch; +_start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch_; +start batch ddl_; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort_batch; +start batch_ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&abort batch; +&start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch&; +start batch ddl&; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort&batch; +start batch&ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$abort batch; +$start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch$; +start batch ddl$; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort$batch; +start batch$ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@abort batch; +@start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch@; +start batch ddl@; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort@batch; +start batch@ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!abort batch; +!start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch!; +start batch ddl!; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort!batch; +start batch!ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*abort batch; +*start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch*; +start batch ddl*; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort*batch; +start batch*ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(abort batch; +(start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch(; +start batch ddl(; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort(batch; +start batch(ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)abort batch; +)start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch); +start batch ddl); NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort)batch; +start batch)ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --abort batch; +-start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-; +start batch ddl-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-batch; +start batch-ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+abort batch; ++start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch+; +start batch ddl+; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort+batch; +start batch+ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#abort batch; +-#start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-#; +start batch ddl-#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-#batch; +start batch-#ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/abort batch; +/start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/; +start batch ddl/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/batch; +start batch/ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\abort batch; +\start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch\; +start batch ddl\; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort\batch; +start batch\ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?abort batch; +?start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch?; +start batch ddl?; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort?batch; +start batch?ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/abort batch; +-/start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-/; +start batch ddl-/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-/batch; +start batch-/ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#abort batch; +/#start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/#; +start batch ddl/#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/#batch; +start batch/#ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-abort batch; +/-start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/-; +start batch ddl/-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/-batch; +start batch/-ddl; NEW_CONNECTION; -set autocommit = true; +start batch dml; NEW_CONNECTION; -SET AUTOCOMMIT = TRUE; +START BATCH DML; NEW_CONNECTION; -set autocommit = true; +start batch dml; NEW_CONNECTION; - set autocommit = true; + start batch dml; NEW_CONNECTION; - set autocommit = true; + start batch dml; NEW_CONNECTION; -set autocommit = true; +start batch dml; NEW_CONNECTION; -set autocommit = true ; +start batch dml ; NEW_CONNECTION; -set autocommit = true ; +start batch dml ; NEW_CONNECTION; -set autocommit = true +start batch dml ; NEW_CONNECTION; -set autocommit = true; +start batch dml; NEW_CONNECTION; -set autocommit = true; +start batch dml; NEW_CONNECTION; -set -autocommit -= -true; +start +batch +dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = true; +foo start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true bar; +start batch dml bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = true; +%start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true%; +start batch dml%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%true; +start batch%dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = true; +_start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true_; +start batch dml_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_true; +start batch_dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = true; +&start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true&; +start batch dml&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&true; +start batch&dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = true; +$start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true$; +start batch dml$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$true; +start batch$dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = true; +@start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true@; +start batch dml@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@true; +start batch@dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = true; +!start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true!; +start batch dml!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!true; +start batch!dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = true; +*start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true*; +start batch dml*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*true; +start batch*dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = true; +(start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true(; +start batch dml(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(true; +start batch(dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = true; +)start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true); +start batch dml); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)true; +start batch)dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = true; +-start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-; +start batch dml-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-true; +start batch-dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = true; ++start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true+; +start batch dml+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+true; +start batch+dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = true; +-#start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-#; +start batch dml-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#true; +start batch-#dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = true; +/start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/; +start batch dml/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/true; +start batch/dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = true; +\start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true\; +start batch dml\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\true; +start batch\dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = true; +?start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true?; +start batch dml?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?true; +start batch?dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = true; +-/start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-/; +start batch dml-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/true; +start batch-/dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = true; +/#start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/#; +start batch dml/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#true; +start batch/#dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = true; +/-start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/-; +start batch dml/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-true; -NEW_CONNECTION; -set autocommit = false; +start batch/-dml; NEW_CONNECTION; -SET AUTOCOMMIT = FALSE; +start batch ddl; +run batch; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +RUN BATCH; NEW_CONNECTION; - set autocommit = false; +start batch ddl; +run batch; NEW_CONNECTION; - set autocommit = false; +start batch ddl; + run batch; NEW_CONNECTION; +start batch ddl; + run batch; +NEW_CONNECTION; +start batch ddl; -set autocommit = false; +run batch; NEW_CONNECTION; -set autocommit = false ; +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = false ; +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = false +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +run batch; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +run batch; NEW_CONNECTION; -set -autocommit -= -false; +start batch ddl; +run +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = false; +foo run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false bar; +run batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = false; +%run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false%; +run batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%false; +run%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = false; +_run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false_; +run batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_false; +run_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = false; +&run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false&; +run batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&false; +run&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = false; +$run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false$; +run batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$false; +run$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = false; +@run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false@; +run batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@false; +run@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = false; +!run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false!; +run batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!false; +run!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = false; +*run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false*; +run batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*false; +run*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = false; +(run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false(; +run batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(false; +run(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = false; +)run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false); +run batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)false; +run)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = false; +-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-; +run batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-false; +run-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = false; ++run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false+; +run batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+false; +run+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = false; +-#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-#; +run batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#false; +run-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = false; +/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/; +run batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/false; +run/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = false; +\run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false\; +run batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\false; +run\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = false; +?run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false?; +run batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?false; +run?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = false; +-/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-/; +run batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/false; +run-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = false; +/#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/#; +run batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#false; +run/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = false; +/-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/-; +run batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-false; +run/-batch; NEW_CONNECTION; -set readonly = true; +start batch ddl; +abort batch; NEW_CONNECTION; -SET READONLY = TRUE; +start batch ddl; +ABORT BATCH; NEW_CONNECTION; -set readonly = true; +start batch ddl; +abort batch; NEW_CONNECTION; - set readonly = true; +start batch ddl; + abort batch; NEW_CONNECTION; - set readonly = true; +start batch ddl; + abort batch; NEW_CONNECTION; +start batch ddl; -set readonly = true; +abort batch; NEW_CONNECTION; -set readonly = true ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set readonly = true ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set readonly = true +start batch ddl; +abort batch ; NEW_CONNECTION; -set readonly = true; +start batch ddl; +abort batch; NEW_CONNECTION; -set readonly = true; +start batch ddl; +abort batch; NEW_CONNECTION; -set -readonly -= -true; +start batch ddl; +abort +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set readonly = true; +foo abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true bar; +abort batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set readonly = true; +%abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true%; +abort batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =%true; +abort%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set readonly = true; +_abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true_; +abort batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =_true; +abort_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set readonly = true; +&abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true&; +abort batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =&true; +abort&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set readonly = true; +$abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true$; +abort batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =$true; +abort$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set readonly = true; +@abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true@; +abort batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =@true; +abort@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set readonly = true; +!abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true!; +abort batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =!true; +abort!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set readonly = true; +*abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true*; +abort batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =*true; +abort*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set readonly = true; +(abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true(; +abort batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =(true; +abort(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set readonly = true; +)abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true); +abort batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =)true; +abort)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set readonly = true; +-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-; +abort batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-true; +abort-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set readonly = true; ++abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true+; +abort batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =+true; +abort+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set readonly = true; +-#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-#; +abort batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-#true; +abort-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set readonly = true; +/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/; +abort batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/true; +abort/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set readonly = true; +\abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true\; +abort batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =\true; +abort\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set readonly = true; +?abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true?; +abort batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =?true; +abort?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set readonly = true; +-/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-/; +abort batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-/true; +abort-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set readonly = true; +/#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/#; +abort batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/#true; +abort/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set readonly = true; +/-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/-; +abort batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/-true; +abort/-batch; NEW_CONNECTION; -set readonly = false; +set autocommit = true; NEW_CONNECTION; -SET READONLY = FALSE; +SET AUTOCOMMIT = TRUE; NEW_CONNECTION; -set readonly = false; +set autocommit = true; NEW_CONNECTION; - set readonly = false; + set autocommit = true; NEW_CONNECTION; - set readonly = false; + set autocommit = true; NEW_CONNECTION; -set readonly = false; +set autocommit = true; NEW_CONNECTION; -set readonly = false ; +set autocommit = true ; NEW_CONNECTION; -set readonly = false ; +set autocommit = true ; NEW_CONNECTION; -set readonly = false +set autocommit = true ; NEW_CONNECTION; -set readonly = false; +set autocommit = true; NEW_CONNECTION; -set readonly = false; +set autocommit = true; NEW_CONNECTION; set -readonly +autocommit = -false; +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set readonly = false; +foo set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false bar; +set autocommit = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set readonly = false; +%set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false%; +set autocommit = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =%false; +set autocommit =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set readonly = false; +_set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false_; +set autocommit = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =_false; +set autocommit =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set readonly = false; +&set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false&; +set autocommit = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =&false; +set autocommit =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set readonly = false; +$set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false$; +set autocommit = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =$false; +set autocommit =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set readonly = false; +@set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false@; +set autocommit = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =@false; +set autocommit =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set readonly = false; +!set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false!; +set autocommit = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =!false; +set autocommit =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set readonly = false; +*set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false*; +set autocommit = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =*false; +set autocommit =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set readonly = false; +(set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false(; +set autocommit = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =(false; +set autocommit =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set readonly = false; +)set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false); +set autocommit = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =)false; +set autocommit =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set readonly = false; +-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-; +set autocommit = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-false; +set autocommit =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set readonly = false; ++set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false+; +set autocommit = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =+false; +set autocommit =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set readonly = false; +-#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-#; +set autocommit = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-#false; +set autocommit =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set readonly = false; +/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/; +set autocommit = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/false; +set autocommit =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set readonly = false; +\set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false\; +set autocommit = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =\false; +set autocommit =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set readonly = false; +?set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false?; +set autocommit = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =?false; +set autocommit =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set readonly = false; +-/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-/; +set autocommit = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-/false; +set autocommit =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set readonly = false; +/#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/#; +set autocommit = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/#false; +set autocommit =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set readonly = false; +/-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/-; +set autocommit = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/-false; +set autocommit =/-true; NEW_CONNECTION; -set readonly = false; set autocommit = false; -set retry_aborts_internally = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -SET RETRY_ABORTS_INTERNALLY = TRUE; +SET AUTOCOMMIT = FALSE; NEW_CONNECTION; -set readonly = false; set autocommit = false; -set retry_aborts_internally = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = true; + set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = true; + set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; -NEW_CONNECTION; -set readonly = false; set autocommit = false; -set retry_aborts_internally = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true ; +set autocommit = false ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true +set autocommit = false ; +NEW_CONNECTION; +set autocommit = false ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; set -retry_aborts_internally +autocommit = -true; +false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set retry_aborts_internally = true; +foo set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true bar; +set autocommit = false bar; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set retry_aborts_internally = true; +%set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true%; +set autocommit = false%; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =%true; +set autocommit =%false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set retry_aborts_internally = true; +_set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true_; +set autocommit = false_; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =_true; +set autocommit =_false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set retry_aborts_internally = true; +&set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true&; +set autocommit = false&; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =&true; +set autocommit =&false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set retry_aborts_internally = true; +$set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true$; +set autocommit = false$; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =$true; +set autocommit =$false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set retry_aborts_internally = true; +@set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true@; +set autocommit = false@; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =@true; +set autocommit =@false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set retry_aborts_internally = true; +!set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true!; +set autocommit = false!; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =!true; +set autocommit =!false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set retry_aborts_internally = true; +*set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true*; +set autocommit = false*; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =*true; +set autocommit =*false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set retry_aborts_internally = true; +(set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true(; +set autocommit = false(; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =(true; +set autocommit =(false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set retry_aborts_internally = true; +)set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true); +set autocommit = false); NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =)true; +set autocommit =)false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set retry_aborts_internally = true; +-set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-; +set autocommit = false-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-true; +set autocommit =-false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set retry_aborts_internally = true; ++set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true+; +set autocommit = false+; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =+true; +set autocommit =+false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set retry_aborts_internally = true; +-#set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-#; +set autocommit = false-#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-#true; +set autocommit =-#false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set retry_aborts_internally = true; +/set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/; +set autocommit = false/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/true; +set autocommit =/false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set retry_aborts_internally = true; +\set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true\; +set autocommit = false\; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =\true; +set autocommit =\false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set retry_aborts_internally = true; +?set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true?; +set autocommit = false?; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =?true; +set autocommit =?false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set retry_aborts_internally = true; +-/set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-/; +set autocommit = false-/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-/true; +set autocommit =-/false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set retry_aborts_internally = true; +/#set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/#; +set autocommit = false/#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/#true; +set autocommit =/#false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set retry_aborts_internally = true; +/-set autocommit = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/-; +set autocommit = false/-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/-true; +set autocommit =/-false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -SET RETRY_ABORTS_INTERNALLY = FALSE; +SET READONLY = TRUE; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = false; + set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = false; + set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false ; +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false ; +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; set -retry_aborts_internally +readonly = -false; +true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set retry_aborts_internally = false; +foo set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false bar; +set readonly = true bar; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set retry_aborts_internally = false; +%set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false%; +set readonly = true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set readonly = true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/-true; +NEW_CONNECTION; +set readonly = false; +NEW_CONNECTION; +SET READONLY = FALSE; +NEW_CONNECTION; +set readonly = false; +NEW_CONNECTION; + set readonly = false; +NEW_CONNECTION; + set readonly = false; +NEW_CONNECTION; + + + +set readonly = false; +NEW_CONNECTION; +set readonly = false ; +NEW_CONNECTION; +set readonly = false ; +NEW_CONNECTION; +set readonly = false + +; +NEW_CONNECTION; +set readonly = false; +NEW_CONNECTION; +set readonly = false; +NEW_CONNECTION; +set +readonly += +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly = false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set readonly =/-false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +SET RETRY_ABORTS_INTERNALLY = TRUE; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + + + +set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true ; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true ; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true + +; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set +retry_aborts_internally += +true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true bar; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true%; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =%true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true_; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =_true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true&; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =&true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true$; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =$true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true@; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =@true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true!; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =!true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true*; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =*true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true(; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =(true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true); +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =)true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true-; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true+; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =+true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true-#; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-#true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true/; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true\; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =\true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true?; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =?true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true-/; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-/true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true/#; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/#true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set retry_aborts_internally = true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = true/-; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/-true; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +SET RETRY_ABORTS_INTERNALLY = FALSE; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; + + + +set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false ; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false ; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false + +; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +set +retry_aborts_internally += +false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false bar; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false%; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =%false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false_; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =_false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false&; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =&false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false$; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =$false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false@; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =@false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false!; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =!false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false*; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =*false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false(; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =(false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false); +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =)false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false-; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false+; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =+false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false-#; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-#false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false/; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false\; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =\false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false?; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =?false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false-/; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =-/false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false/#; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/#false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set retry_aborts_internally = false; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally = false/-; +NEW_CONNECTION; +set readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set retry_aborts_internally =/-false; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set autocommit_dml_mode='partitioned_non_atomic'; +NEW_CONNECTION; + set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + + + +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' + +; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set +autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +NEW_CONNECTION; +set autocommit_dml_mode='transactional'; +NEW_CONNECTION; + set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + + + +set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL' + +; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set +autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set autocommit_dml_mode='TRANSACTIONAL'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set statement_timeout=null; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT=NULL; +NEW_CONNECTION; +set statement_timeout=null; +NEW_CONNECTION; + set statement_timeout=null; +NEW_CONNECTION; + set statement_timeout=null; +NEW_CONNECTION; + + + +set statement_timeout=null; +NEW_CONNECTION; +set statement_timeout=null ; +NEW_CONNECTION; +set statement_timeout=null ; +NEW_CONNECTION; +set statement_timeout=null + +; +NEW_CONNECTION; +set statement_timeout=null; +NEW_CONNECTION; +set statement_timeout=null; +NEW_CONNECTION; +set +statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout=null; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=null/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout=null; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='1S'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + + + +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' + +; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set +statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='100MS'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + + + +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' + +; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set +statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='10000US'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + + + +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' + +; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set +statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='9223372036854775807NS'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + + + +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' + +; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set +statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION READ ONLY; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; + set transaction read only; +NEW_CONNECTION; +set autocommit = false; + set transaction read only; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set transaction read only ; +NEW_CONNECTION; +set autocommit = false; +set transaction read only ; +NEW_CONNECTION; +set autocommit = false; +set transaction read only + +; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set +transaction +read +only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read%only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read_only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read&only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read$only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read@only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read!only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read*only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read(only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read)only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read+only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-#only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read\only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read?only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-/only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/#only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/-only; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION READ WRITE; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; + set transaction read write; +NEW_CONNECTION; +set autocommit = false; + set transaction read write; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set transaction read write ; +NEW_CONNECTION; +set autocommit = false; +set transaction read write ; +NEW_CONNECTION; +set autocommit = false; +set transaction read write + +; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set +transaction +read +write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read%write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read_write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read&write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read$write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read@write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read!write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read*write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read(write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read)write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read+write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-#write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read\write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read?write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-/write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/#write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/-write; +NEW_CONNECTION; +set read_only_staleness='STRONG'; +NEW_CONNECTION; +SET READ_ONLY_STALENESS='STRONG'; +NEW_CONNECTION; +set read_only_staleness='strong'; +NEW_CONNECTION; + set read_only_staleness='STRONG'; +NEW_CONNECTION; + set read_only_staleness='STRONG'; +NEW_CONNECTION; + + + +set read_only_staleness='STRONG'; +NEW_CONNECTION; +set read_only_staleness='STRONG' ; +NEW_CONNECTION; +set read_only_staleness='STRONG' ; +NEW_CONNECTION; +set read_only_staleness='STRONG' + +; +NEW_CONNECTION; +set read_only_staleness='STRONG'; +NEW_CONNECTION; +set read_only_staleness='STRONG'; +NEW_CONNECTION; +set +read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set read_only_staleness='STRONG'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='STRONG'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-read_only_staleness='STRONG'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; + + + +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' + +; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +set +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; + + + +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' + +; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +set +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; + + + +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' + +; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +set +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =%false; +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set retry_aborts_internally = false; +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false_; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =_false; +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set retry_aborts_internally = false; +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false&; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =&false; +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set retry_aborts_internally = false; +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false$; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =$false; +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set retry_aborts_internally = false; +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false@; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =@false; +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set retry_aborts_internally = false; +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false!; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =!false; +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set retry_aborts_internally = false; +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false*; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =*false; +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set retry_aborts_internally = false; +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false(; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =(false; +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set retry_aborts_internally = false; +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false); +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =)false; +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set retry_aborts_internally = false; +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-false; +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set retry_aborts_internally = false; ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false+; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =+false; +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set retry_aborts_internally = false; +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-#false; +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set retry_aborts_internally = false; +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/false; +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set retry_aborts_internally = false; +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false\; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =\false; +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set retry_aborts_internally = false; +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false?; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =?false; +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set retry_aborts_internally = false; +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-/false; +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set retry_aborts_internally = false; +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/#false; +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set retry_aborts_internally = false; +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/-false; +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit_dml_mode='partitioned_non_atomic'; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; NEW_CONNECTION; - set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; - set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; set -autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit_dml_mode='transactional'; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; NEW_CONNECTION; - set autocommit_dml_mode='TRANSACTIONAL'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; - set autocommit_dml_mode='TRANSACTIONAL'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; set -autocommit_dml_mode='TRANSACTIONAL'; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit_dml_mode='TRANSACTIONAL'; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL' bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit_dml_mode='TRANSACTIONAL'; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit_dml_mode='TRANSACTIONAL'; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit_dml_mode='TRANSACTIONAL'; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit_dml_mode='TRANSACTIONAL'; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit_dml_mode='TRANSACTIONAL'; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit_dml_mode='TRANSACTIONAL'; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit_dml_mode='TRANSACTIONAL'; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit_dml_mode='TRANSACTIONAL'; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit_dml_mode='TRANSACTIONAL'; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit_dml_mode='TRANSACTIONAL'; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit_dml_mode='TRANSACTIONAL'; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit_dml_mode='TRANSACTIONAL'; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit_dml_mode='TRANSACTIONAL'; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit_dml_mode='TRANSACTIONAL'; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit_dml_mode='TRANSACTIONAL'; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit_dml_mode='TRANSACTIONAL'; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit_dml_mode='TRANSACTIONAL'; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit_dml_mode='TRANSACTIONAL'; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-autocommit_dml_mode='TRANSACTIONAL'; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=NULL; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set statement_timeout=null; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; NEW_CONNECTION; - set statement_timeout=null; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; - set statement_timeout=null; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set statement_timeout=null ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set statement_timeout=null ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set statement_timeout=null +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; set -statement_timeout=null; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=null; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=null; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=null; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=null; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=null; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=null; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=null; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=null; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=null; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=null; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=null; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=null; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=null; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=null; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=null; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=null; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=null; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=null; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=null; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=null; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='1S'; +SET READ_ONLY_STALENESS='MAX_STALENESS 12S'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='max_staleness 12s'; NEW_CONNECTION; - set statement_timeout='1s'; + set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; - set statement_timeout='1s'; + set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set statement_timeout='1s' ; +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set statement_timeout='1s' ; +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set statement_timeout='1s' +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; set -statement_timeout='1s'; +read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='1s'; +foo set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s' bar; +set read_only_staleness='MAX_STALENESS 12s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='1s'; +%set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'%; +set read_only_staleness='MAX_STALENESS 12s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS%12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='1s'; +_set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'_; +set read_only_staleness='MAX_STALENESS 12s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS_12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='1s'; +&set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'&; +set read_only_staleness='MAX_STALENESS 12s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS&12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='1s'; +$set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'$; +set read_only_staleness='MAX_STALENESS 12s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS$12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='1s'; +@set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'@; +set read_only_staleness='MAX_STALENESS 12s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS@12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='1s'; +!set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'!; +set read_only_staleness='MAX_STALENESS 12s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS!12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='1s'; +*set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'*; +set read_only_staleness='MAX_STALENESS 12s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS*12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='1s'; +(set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'(; +set read_only_staleness='MAX_STALENESS 12s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS(12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='1s'; +)set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'); +set read_only_staleness='MAX_STALENESS 12s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS)12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='1s'; +-set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-; +set read_only_staleness='MAX_STALENESS 12s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS-12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='1s'; ++set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'+; +set read_only_staleness='MAX_STALENESS 12s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS+12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='1s'; +-#set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-#; +set read_only_staleness='MAX_STALENESS 12s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS-#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='1s'; +/set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/; +set read_only_staleness='MAX_STALENESS 12s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='1s'; +\set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'\; +set read_only_staleness='MAX_STALENESS 12s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS\12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='1s'; +?set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'?; +set read_only_staleness='MAX_STALENESS 12s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS?12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='1s'; +-/set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-/; +set read_only_staleness='MAX_STALENESS 12s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS-/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='1s'; +/#set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/#; +set read_only_staleness='MAX_STALENESS 12s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS/#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='1s'; +/-set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/-; +set read_only_staleness='MAX_STALENESS 12s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='1s'; +set read_only_staleness='MAX_STALENESS/-12s'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='100MS'; +SET READ_ONLY_STALENESS='MAX_STALENESS 100MS'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='max_staleness 100ms'; NEW_CONNECTION; - set statement_timeout='100ms'; + set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; - set statement_timeout='100ms'; + set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set statement_timeout='100ms' ; +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set statement_timeout='100ms' ; +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set statement_timeout='100ms' +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; set -statement_timeout='100ms'; +read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='100ms'; +foo set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms' bar; +set read_only_staleness='MAX_STALENESS 100ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='100ms'; +%set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'%; +set read_only_staleness='MAX_STALENESS 100ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS%100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='100ms'; +_set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'_; +set read_only_staleness='MAX_STALENESS 100ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS_100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='100ms'; +&set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'&; +set read_only_staleness='MAX_STALENESS 100ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS&100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='100ms'; +$set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'$; +set read_only_staleness='MAX_STALENESS 100ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS$100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='100ms'; +@set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'@; +set read_only_staleness='MAX_STALENESS 100ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS@100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='100ms'; +!set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'!; +set read_only_staleness='MAX_STALENESS 100ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS!100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='100ms'; +*set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'*; +set read_only_staleness='MAX_STALENESS 100ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS*100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='100ms'; +(set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'(; +set read_only_staleness='MAX_STALENESS 100ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS(100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='100ms'; +)set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'); +set read_only_staleness='MAX_STALENESS 100ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS)100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='100ms'; +-set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-; +set read_only_staleness='MAX_STALENESS 100ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS-100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='100ms'; ++set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'+; +set read_only_staleness='MAX_STALENESS 100ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS+100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='100ms'; +-#set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-#; +set read_only_staleness='MAX_STALENESS 100ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS-#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='100ms'; +/set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/; +set read_only_staleness='MAX_STALENESS 100ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='100ms'; +\set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'\; +set read_only_staleness='MAX_STALENESS 100ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS\100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='100ms'; +?set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'?; +set read_only_staleness='MAX_STALENESS 100ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS?100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='100ms'; +-/set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-/; +set read_only_staleness='MAX_STALENESS 100ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS-/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='100ms'; +/#set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/#; +set read_only_staleness='MAX_STALENESS 100ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS/#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='100ms'; +/-set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/-; +set read_only_staleness='MAX_STALENESS 100ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='100ms'; +set read_only_staleness='MAX_STALENESS/-100ms'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='10000US'; +SET READ_ONLY_STALENESS='MAX_STALENESS 99999US'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='max_staleness 99999us'; NEW_CONNECTION; - set statement_timeout='10000us'; + set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; - set statement_timeout='10000us'; + set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set statement_timeout='10000us' ; +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set statement_timeout='10000us' ; +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set statement_timeout='10000us' +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; set -statement_timeout='10000us'; +read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='10000us'; +foo set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us' bar; +set read_only_staleness='MAX_STALENESS 99999us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='10000us'; +%set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'%; +set read_only_staleness='MAX_STALENESS 99999us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS%99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='10000us'; +_set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'_; +set read_only_staleness='MAX_STALENESS 99999us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS_99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='10000us'; +&set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'&; +set read_only_staleness='MAX_STALENESS 99999us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS&99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='10000us'; +$set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'$; +set read_only_staleness='MAX_STALENESS 99999us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS$99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='10000us'; +@set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'@; +set read_only_staleness='MAX_STALENESS 99999us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS@99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='10000us'; +!set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'!; +set read_only_staleness='MAX_STALENESS 99999us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS!99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='10000us'; +*set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'*; +set read_only_staleness='MAX_STALENESS 99999us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS*99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='10000us'; +(set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'(; +set read_only_staleness='MAX_STALENESS 99999us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS(99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='10000us'; +)set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'); +set read_only_staleness='MAX_STALENESS 99999us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS)99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='10000us'; +-set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-; +set read_only_staleness='MAX_STALENESS 99999us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS-99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='10000us'; ++set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'+; +set read_only_staleness='MAX_STALENESS 99999us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS+99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='10000us'; +-#set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-#; +set read_only_staleness='MAX_STALENESS 99999us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS-#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='10000us'; +/set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/; +set read_only_staleness='MAX_STALENESS 99999us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='10000us'; +\set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'\; +set read_only_staleness='MAX_STALENESS 99999us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS\99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='10000us'; +?set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'?; +set read_only_staleness='MAX_STALENESS 99999us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS?99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='10000us'; +-/set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-/; +set read_only_staleness='MAX_STALENESS 99999us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS-/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='10000us'; +/#set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/#; +set read_only_staleness='MAX_STALENESS 99999us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS/#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='10000us'; +/-set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/-; +set read_only_staleness='MAX_STALENESS 99999us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='10000us'; +set read_only_staleness='MAX_STALENESS/-99999us'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='9223372036854775807NS'; +SET READ_ONLY_STALENESS='MAX_STALENESS 10NS'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='max_staleness 10ns'; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; set -statement_timeout='9223372036854775807ns'; +read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='9223372036854775807ns'; +foo set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns' bar; +set read_only_staleness='MAX_STALENESS 10ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='9223372036854775807ns'; +%set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'%; +set read_only_staleness='MAX_STALENESS 10ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS%10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='9223372036854775807ns'; +_set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'_; +set read_only_staleness='MAX_STALENESS 10ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS_10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='9223372036854775807ns'; +&set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'&; +set read_only_staleness='MAX_STALENESS 10ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS&10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='9223372036854775807ns'; +$set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'$; +set read_only_staleness='MAX_STALENESS 10ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS$10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='9223372036854775807ns'; +@set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'@; +set read_only_staleness='MAX_STALENESS 10ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS@10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='9223372036854775807ns'; +!set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'!; +set read_only_staleness='MAX_STALENESS 10ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS!10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='9223372036854775807ns'; +*set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'*; +set read_only_staleness='MAX_STALENESS 10ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS*10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='9223372036854775807ns'; +(set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'(; +set read_only_staleness='MAX_STALENESS 10ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS(10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='9223372036854775807ns'; +)set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'); +set read_only_staleness='MAX_STALENESS 10ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS)10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='9223372036854775807ns'; +-set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-; +set read_only_staleness='MAX_STALENESS 10ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS-10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='9223372036854775807ns'; ++set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'+; +set read_only_staleness='MAX_STALENESS 10ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS+10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='9223372036854775807ns'; +-#set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-#; +set read_only_staleness='MAX_STALENESS 10ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS-#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='9223372036854775807ns'; +/set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/; +set read_only_staleness='MAX_STALENESS 10ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='9223372036854775807ns'; +\set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'\; +set read_only_staleness='MAX_STALENESS 10ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS\10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='9223372036854775807ns'; +?set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'?; +set read_only_staleness='MAX_STALENESS 10ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS?10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='9223372036854775807ns'; +-/set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-/; +set read_only_staleness='MAX_STALENESS 10ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS-/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='9223372036854775807ns'; +/#set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/#; +set read_only_staleness='MAX_STALENESS 10ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS/#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='9223372036854775807ns'; +/-set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/-; +set read_only_staleness='MAX_STALENESS 10ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='9223372036854775807ns'; +set read_only_staleness='MAX_STALENESS/-10ns'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='EXACT_STALENESS 15S'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='exact_staleness 15s'; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; set -transaction -read -only; +read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read only; +foo set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only bar; +set read_only_staleness='EXACT_STALENESS 15s' bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read only; +%set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only%; +set read_only_staleness='EXACT_STALENESS 15s'%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%only; +set read_only_staleness='EXACT_STALENESS%15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read only; +_set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only_; +set read_only_staleness='EXACT_STALENESS 15s'_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_only; +set read_only_staleness='EXACT_STALENESS_15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read only; +&set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only&; +set read_only_staleness='EXACT_STALENESS 15s'&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&only; +set read_only_staleness='EXACT_STALENESS&15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read only; +$set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only$; +set read_only_staleness='EXACT_STALENESS 15s'$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$only; +set read_only_staleness='EXACT_STALENESS$15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read only; +@set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only@; +set read_only_staleness='EXACT_STALENESS 15s'@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@only; +set read_only_staleness='EXACT_STALENESS@15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read only; +!set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only!; +set read_only_staleness='EXACT_STALENESS 15s'!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!only; +set read_only_staleness='EXACT_STALENESS!15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read only; +*set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only*; +set read_only_staleness='EXACT_STALENESS 15s'*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*only; +set read_only_staleness='EXACT_STALENESS*15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read only; +(set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only(; +set read_only_staleness='EXACT_STALENESS 15s'(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(only; +set read_only_staleness='EXACT_STALENESS(15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read only; +)set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only); +set read_only_staleness='EXACT_STALENESS 15s'); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)only; +set read_only_staleness='EXACT_STALENESS)15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read only; +-set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-; +set read_only_staleness='EXACT_STALENESS 15s'-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-only; +set read_only_staleness='EXACT_STALENESS-15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read only; ++set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only+; +set read_only_staleness='EXACT_STALENESS 15s'+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+only; +set read_only_staleness='EXACT_STALENESS+15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read only; +-#set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-#; +set read_only_staleness='EXACT_STALENESS 15s'-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#only; +set read_only_staleness='EXACT_STALENESS-#15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read only; +/set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/; +set read_only_staleness='EXACT_STALENESS 15s'/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/only; +set read_only_staleness='EXACT_STALENESS/15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read only; +\set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only\; +set read_only_staleness='EXACT_STALENESS 15s'\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\only; +set read_only_staleness='EXACT_STALENESS\15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read only; +?set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only?; +set read_only_staleness='EXACT_STALENESS 15s'?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?only; +set read_only_staleness='EXACT_STALENESS?15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read only; +-/set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-/; +set read_only_staleness='EXACT_STALENESS 15s'-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/only; +set read_only_staleness='EXACT_STALENESS-/15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read only; +/#set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/#; +set read_only_staleness='EXACT_STALENESS 15s'/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#only; +set read_only_staleness='EXACT_STALENESS/#15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read only; +/-set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/-; +set read_only_staleness='EXACT_STALENESS 15s'/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-only; +set read_only_staleness='EXACT_STALENESS/-15s'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ WRITE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='exact_staleness 1500ms'; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; set -transaction -read -write; +read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read write; +foo set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write bar; +set read_only_staleness='EXACT_STALENESS 1500ms' bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read write; +%set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write%; +set read_only_staleness='EXACT_STALENESS 1500ms'%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%write; +set read_only_staleness='EXACT_STALENESS%1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read write; +_set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write_; +set read_only_staleness='EXACT_STALENESS 1500ms'_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_write; +set read_only_staleness='EXACT_STALENESS_1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read write; +&set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write&; +set read_only_staleness='EXACT_STALENESS 1500ms'&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&write; +set read_only_staleness='EXACT_STALENESS&1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read write; +$set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write$; +set read_only_staleness='EXACT_STALENESS 1500ms'$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$write; +set read_only_staleness='EXACT_STALENESS$1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read write; +@set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write@; +set read_only_staleness='EXACT_STALENESS 1500ms'@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@write; +set read_only_staleness='EXACT_STALENESS@1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read write; +!set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write!; +set read_only_staleness='EXACT_STALENESS 1500ms'!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!write; +set read_only_staleness='EXACT_STALENESS!1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read write; +*set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write*; +set read_only_staleness='EXACT_STALENESS 1500ms'*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*write; +set read_only_staleness='EXACT_STALENESS*1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read write; +(set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write(; +set read_only_staleness='EXACT_STALENESS 1500ms'(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(write; +set read_only_staleness='EXACT_STALENESS(1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read write; +)set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write); +set read_only_staleness='EXACT_STALENESS 1500ms'); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)write; +set read_only_staleness='EXACT_STALENESS)1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read write; +-set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-; +set read_only_staleness='EXACT_STALENESS 1500ms'-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-write; +set read_only_staleness='EXACT_STALENESS-1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read write; ++set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write+; +set read_only_staleness='EXACT_STALENESS 1500ms'+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+write; +set read_only_staleness='EXACT_STALENESS+1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read write; +-#set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-#; +set read_only_staleness='EXACT_STALENESS 1500ms'-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#write; +set read_only_staleness='EXACT_STALENESS-#1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read write; +/set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/; +set read_only_staleness='EXACT_STALENESS 1500ms'/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/write; +set read_only_staleness='EXACT_STALENESS/1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read write; +\set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write\; +set read_only_staleness='EXACT_STALENESS 1500ms'\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\write; +set read_only_staleness='EXACT_STALENESS\1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read write; +?set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write?; +set read_only_staleness='EXACT_STALENESS 1500ms'?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?write; +set read_only_staleness='EXACT_STALENESS?1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read write; +-/set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-/; +set read_only_staleness='EXACT_STALENESS 1500ms'-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/write; +set read_only_staleness='EXACT_STALENESS-/1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read write; +/#set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/#; +set read_only_staleness='EXACT_STALENESS 1500ms'/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#write; +set read_only_staleness='EXACT_STALENESS/#1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read write; +/-set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/-; +set read_only_staleness='EXACT_STALENESS 1500ms'/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-write; +set read_only_staleness='EXACT_STALENESS/-1500ms'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='STRONG'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; NEW_CONNECTION; -set read_only_staleness='strong'; +set read_only_staleness='exact_staleness 15000000us'; NEW_CONNECTION; - set read_only_staleness='STRONG'; + set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; - set read_only_staleness='STRONG'; + set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='STRONG' ; +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='STRONG' ; +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='STRONG' +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; set -read_only_staleness='STRONG'; +read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='STRONG'; +foo set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG' bar; +set read_only_staleness='EXACT_STALENESS 15000000us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='STRONG'; +%set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'%; +set read_only_staleness='EXACT_STALENESS 15000000us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS%15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='STRONG'; +_set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'_; +set read_only_staleness='EXACT_STALENESS 15000000us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS_15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='STRONG'; +&set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'&; +set read_only_staleness='EXACT_STALENESS 15000000us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS&15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='STRONG'; +$set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'$; +set read_only_staleness='EXACT_STALENESS 15000000us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS$15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='STRONG'; +@set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'@; +set read_only_staleness='EXACT_STALENESS 15000000us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS@15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='STRONG'; +!set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'!; +set read_only_staleness='EXACT_STALENESS 15000000us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS!15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='STRONG'; +*set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'*; +set read_only_staleness='EXACT_STALENESS 15000000us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS*15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='STRONG'; +(set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'(; +set read_only_staleness='EXACT_STALENESS 15000000us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS(15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='STRONG'; +)set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'); +set read_only_staleness='EXACT_STALENESS 15000000us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS)15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='STRONG'; +-set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-; +set read_only_staleness='EXACT_STALENESS 15000000us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS-15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='STRONG'; ++set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'+; +set read_only_staleness='EXACT_STALENESS 15000000us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS+15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='STRONG'; +-#set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-#; +set read_only_staleness='EXACT_STALENESS 15000000us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS-#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='STRONG'; +/set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/; +set read_only_staleness='EXACT_STALENESS 15000000us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='STRONG'; +\set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'\; +set read_only_staleness='EXACT_STALENESS 15000000us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS\15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='STRONG'; +?set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'?; +set read_only_staleness='EXACT_STALENESS 15000000us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS?15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='STRONG'; +-/set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-/; +set read_only_staleness='EXACT_STALENESS 15000000us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS-/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='STRONG'; +/#set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/#; +set read_only_staleness='EXACT_STALENESS 15000000us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS/#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='STRONG'; +/-set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/-; +set read_only_staleness='EXACT_STALENESS 15000000us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-read_only_staleness='STRONG'; +set read_only_staleness='EXACT_STALENESS/-15000000us'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; +set read_only_staleness='exact_staleness 9999ns'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +foo set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; +set read_only_staleness='EXACT_STALENESS 9999ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +%set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; +set read_only_staleness='EXACT_STALENESS 9999ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS%9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +_set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; +set read_only_staleness='EXACT_STALENESS 9999ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS_9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +&set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; +set read_only_staleness='EXACT_STALENESS 9999ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS&9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +$set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; +set read_only_staleness='EXACT_STALENESS 9999ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS$9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +@set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; +set read_only_staleness='EXACT_STALENESS 9999ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS@9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +!set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; +set read_only_staleness='EXACT_STALENESS 9999ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS!9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +*set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; +set read_only_staleness='EXACT_STALENESS 9999ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS*9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +(set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; +set read_only_staleness='EXACT_STALENESS 9999ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS(9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +)set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); +set read_only_staleness='EXACT_STALENESS 9999ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS)9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; +set read_only_staleness='EXACT_STALENESS 9999ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS-9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; ++set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; +set read_only_staleness='EXACT_STALENESS 9999ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS+9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-#set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; +set read_only_staleness='EXACT_STALENESS 9999ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS-#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; +set read_only_staleness='EXACT_STALENESS 9999ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +\set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; +set read_only_staleness='EXACT_STALENESS 9999ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS\9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +?set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; +set read_only_staleness='EXACT_STALENESS 9999ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS?9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-/set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; +set read_only_staleness='EXACT_STALENESS 9999ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS-/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/#set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; +set read_only_staleness='EXACT_STALENESS 9999ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS/#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/-set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; +set read_only_staleness='EXACT_STALENESS 9999ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='EXACT_STALENESS/-9999ns'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set optimizer_version='1'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +SET OPTIMIZER_VERSION='1'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; +set optimizer_version='1'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set optimizer_version='1'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set optimizer_version='1'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +foo set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; +set optimizer_version='1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +%set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; +set optimizer_version='1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; +set%optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +_set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; +set optimizer_version='1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; +set_optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +&set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; +set optimizer_version='1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; +set&optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +$set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; +set optimizer_version='1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; +set$optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +@set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; +set optimizer_version='1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; +set@optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +!set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; +set optimizer_version='1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; +set!optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +*set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; +set optimizer_version='1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; +set*optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +(set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; +set optimizer_version='1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; +set(optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +)set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); +set optimizer_version='1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; +set)optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; +set optimizer_version='1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; +set-optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; ++set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; +set optimizer_version='1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; +set+optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-#set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; +set optimizer_version='1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; +set-#optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; +set optimizer_version='1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; +set/optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +\set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; +set optimizer_version='1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; +set\optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +?set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; +set optimizer_version='1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; +set?optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-/set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; +set optimizer_version='1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; +set-/optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/#set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; +set optimizer_version='1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; +set/#optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/-set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; +set optimizer_version='1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; +set/-optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set optimizer_version='200'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +SET OPTIMIZER_VERSION='200'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; +set optimizer_version='200'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set optimizer_version='200'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set optimizer_version='200'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +foo set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; +set optimizer_version='200' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +%set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; +set optimizer_version='200'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; +set%optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +_set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; +set optimizer_version='200'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; +set_optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +&set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; +set optimizer_version='200'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; +set&optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +$set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; +set optimizer_version='200'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; +set$optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +@set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; +set optimizer_version='200'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; +set@optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +!set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; +set optimizer_version='200'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; +set!optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +*set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; +set optimizer_version='200'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; +set*optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +(set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; +set optimizer_version='200'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; +set(optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +)set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); +set optimizer_version='200'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; +set)optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; +set optimizer_version='200'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; +set-optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; ++set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; +set optimizer_version='200'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; +set+optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-#set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; +set optimizer_version='200'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; +set-#optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; +set optimizer_version='200'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; +set/optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +\set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; +set optimizer_version='200'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; +set\optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +?set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; +set optimizer_version='200'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; +set?optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-/set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; +set optimizer_version='200'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; +set-/optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/#set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; +set optimizer_version='200'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; +set/#optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/-set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; +set optimizer_version='200'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; +set/-optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set optimizer_version='LATEST'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +SET OPTIMIZER_VERSION='LATEST'; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; +set optimizer_version='latest'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set optimizer_version='LATEST'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set optimizer_version='LATEST'; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +foo set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; +set optimizer_version='LATEST' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +%set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; +set optimizer_version='LATEST'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; +set%optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +_set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; +set optimizer_version='LATEST'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; +set_optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +&set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; +set optimizer_version='LATEST'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; +set&optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +$set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; +set optimizer_version='LATEST'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; +set$optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +@set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; +set optimizer_version='LATEST'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; +set@optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +!set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; +set optimizer_version='LATEST'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; +set!optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +*set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; +set optimizer_version='LATEST'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; +set*optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +(set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; +set optimizer_version='LATEST'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; +set(optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +)set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); +set optimizer_version='LATEST'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; +set)optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; +set optimizer_version='LATEST'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; +set-optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; ++set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; +set optimizer_version='LATEST'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; +set+optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-#set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; +set optimizer_version='LATEST'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; +set-#optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; +set optimizer_version='LATEST'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; +set/optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +\set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; +set optimizer_version='LATEST'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; +set\optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +?set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; +set optimizer_version='LATEST'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; +set?optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-/set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; +set optimizer_version='LATEST'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; +set-/optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/#set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; +set optimizer_version='LATEST'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; +set/#optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/-set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; +set optimizer_version='LATEST'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; +set/-optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set optimizer_version=''; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +SET OPTIMIZER_VERSION=''; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; +set optimizer_version=''; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set optimizer_version=''; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set optimizer_version=''; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +foo set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; +set optimizer_version='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +%set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; +set optimizer_version=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; +set%optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +_set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; +set optimizer_version=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; +set_optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +&set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; +set optimizer_version=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; +set&optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +$set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; +set optimizer_version=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; +set$optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +@set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; +set optimizer_version=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; +set@optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +!set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; +set optimizer_version=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; +set!optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +*set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; +set optimizer_version=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; +set*optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +(set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; +set optimizer_version=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; +set(optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +)set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); +set optimizer_version=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; +set)optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; +set optimizer_version=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; +set-optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; ++set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; +set optimizer_version=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; +set+optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-#set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; +set optimizer_version=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; +set-#optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; +set optimizer_version=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; +set/optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +\set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; +set optimizer_version=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; +set\optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +?set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; +set optimizer_version=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; +set?optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-/set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; +set optimizer_version=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; +set-/optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/#set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; +set optimizer_version=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; +set/#optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/-set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; +set optimizer_version=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; +set/-optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +SET OPTIMIZER_STATISTICS_PACKAGE='AUTO_20191128_14_47_22UTC'; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; +set optimizer_statistics_package='auto_20191128_14_47_22utc'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' +set optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +foo set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; +set optimizer_statistics_package='auto_20191128_14_47_22UTC' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +%set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; +set%optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +_set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; +set_optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +&set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; +set&optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +$set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; +set$optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +@set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; +set@optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +!set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; +set!optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +*set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; +set*optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +(set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; +set(optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +)set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); +set optimizer_statistics_package='auto_20191128_14_47_22UTC'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; +set)optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; +set-optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; ++set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; +set+optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-#set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; +set-#optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; +set/optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +\set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; +set\optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +?set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; +set?optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-/set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; +set-/optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/#set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; +set/#optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/-set optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; +set optimizer_statistics_package='auto_20191128_14_47_22UTC'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; +set/-optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set optimizer_statistics_package=''; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 12S'; +SET OPTIMIZER_STATISTICS_PACKAGE=''; NEW_CONNECTION; -set read_only_staleness='max_staleness 12s'; +set optimizer_statistics_package=''; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 12s'; + set optimizer_statistics_package=''; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 12s'; + set optimizer_statistics_package=''; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set optimizer_statistics_package=''; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' ; +set optimizer_statistics_package='' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' ; +set optimizer_statistics_package='' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' +set optimizer_statistics_package='' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set optimizer_statistics_package=''; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set optimizer_statistics_package=''; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 12s'; +optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 12s'; +foo set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s' bar; +set optimizer_statistics_package='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 12s'; +%set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'%; +set optimizer_statistics_package=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%12s'; +set%optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 12s'; +_set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'_; +set optimizer_statistics_package=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_12s'; +set_optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 12s'; +&set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'&; +set optimizer_statistics_package=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&12s'; +set&optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 12s'; +$set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'$; +set optimizer_statistics_package=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$12s'; +set$optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 12s'; +@set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'@; +set optimizer_statistics_package=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@12s'; +set@optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 12s'; +!set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'!; +set optimizer_statistics_package=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!12s'; +set!optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 12s'; +*set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'*; +set optimizer_statistics_package=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*12s'; +set*optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 12s'; +(set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'(; +set optimizer_statistics_package=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(12s'; +set(optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 12s'; +)set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'); +set optimizer_statistics_package=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)12s'; +set)optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 12s'; +-set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-; +set optimizer_statistics_package=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-12s'; +set-optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 12s'; ++set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'+; +set optimizer_statistics_package=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+12s'; +set+optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 12s'; +-#set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-#; +set optimizer_statistics_package=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#12s'; +set-#optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 12s'; +/set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/; +set optimizer_statistics_package=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/12s'; +set/optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 12s'; +\set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'\; +set optimizer_statistics_package=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\12s'; +set\optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 12s'; +?set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'?; +set optimizer_statistics_package=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?12s'; +set?optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 12s'; +-/set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-/; +set optimizer_statistics_package=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/12s'; +set-/optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 12s'; +/#set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/#; +set optimizer_statistics_package=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#12s'; +set/#optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 12s'; +/-set optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/-; +set optimizer_statistics_package=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-12s'; +set/-optimizer_statistics_package=''; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set return_commit_stats = true; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 100MS'; +SET RETURN_COMMIT_STATS = TRUE; NEW_CONNECTION; -set read_only_staleness='max_staleness 100ms'; +set return_commit_stats = true; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 100ms'; + set return_commit_stats = true; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 100ms'; + set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' ; +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' ; +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set return_commit_stats = true; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 100ms'; +return_commit_stats += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 100ms'; +foo set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms' bar; +set return_commit_stats = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 100ms'; +%set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'%; +set return_commit_stats = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%100ms'; +set return_commit_stats =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 100ms'; +_set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'_; +set return_commit_stats = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_100ms'; +set return_commit_stats =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 100ms'; +&set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'&; +set return_commit_stats = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&100ms'; +set return_commit_stats =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 100ms'; +$set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'$; +set return_commit_stats = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$100ms'; +set return_commit_stats =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 100ms'; +@set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'@; +set return_commit_stats = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@100ms'; +set return_commit_stats =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 100ms'; +!set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'!; +set return_commit_stats = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!100ms'; +set return_commit_stats =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 100ms'; +*set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'*; +set return_commit_stats = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*100ms'; +set return_commit_stats =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 100ms'; +(set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'(; +set return_commit_stats = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(100ms'; +set return_commit_stats =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 100ms'; +)set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'); +set return_commit_stats = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)100ms'; +set return_commit_stats =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 100ms'; +-set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-; +set return_commit_stats = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-100ms'; +set return_commit_stats =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 100ms'; ++set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'+; +set return_commit_stats = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+100ms'; +set return_commit_stats =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 100ms'; +-#set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-#; +set return_commit_stats = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#100ms'; +set return_commit_stats =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 100ms'; +/set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/; +set return_commit_stats = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/100ms'; +set return_commit_stats =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 100ms'; +\set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'\; +set return_commit_stats = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\100ms'; +set return_commit_stats =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 100ms'; +?set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'?; +set return_commit_stats = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?100ms'; +set return_commit_stats =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 100ms'; +-/set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-/; +set return_commit_stats = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/100ms'; +set return_commit_stats =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 100ms'; +/#set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/#; +set return_commit_stats = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#100ms'; +set return_commit_stats =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 100ms'; +/-set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/-; +set return_commit_stats = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-100ms'; +set return_commit_stats =/-true; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set return_commit_stats = false; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 99999US'; +SET RETURN_COMMIT_STATS = FALSE; NEW_CONNECTION; -set read_only_staleness='max_staleness 99999us'; +set return_commit_stats = false; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 99999us'; + set return_commit_stats = false; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 99999us'; + set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' ; +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' ; +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set return_commit_stats = false; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 99999us'; +return_commit_stats += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 99999us'; +foo set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us' bar; +set return_commit_stats = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 99999us'; +%set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'%; +set return_commit_stats = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%99999us'; +set return_commit_stats =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 99999us'; +_set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'_; +set return_commit_stats = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_99999us'; +set return_commit_stats =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 99999us'; +&set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'&; +set return_commit_stats = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&99999us'; +set return_commit_stats =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 99999us'; +$set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'$; +set return_commit_stats = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$99999us'; +set return_commit_stats =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 99999us'; +@set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'@; +set return_commit_stats = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@99999us'; +set return_commit_stats =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 99999us'; +!set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'!; +set return_commit_stats = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!99999us'; +set return_commit_stats =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 99999us'; +*set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'*; +set return_commit_stats = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*99999us'; +set return_commit_stats =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 99999us'; +(set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'(; +set return_commit_stats = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(99999us'; +set return_commit_stats =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 99999us'; +)set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'); +set return_commit_stats = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)99999us'; +set return_commit_stats =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 99999us'; +-set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-; +set return_commit_stats = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-99999us'; +set return_commit_stats =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 99999us'; ++set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'+; +set return_commit_stats = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+99999us'; +set return_commit_stats =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 99999us'; +-#set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-#; +set return_commit_stats = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#99999us'; +set return_commit_stats =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 99999us'; +/set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/; +set return_commit_stats = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/99999us'; +set return_commit_stats =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 99999us'; +\set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'\; +set return_commit_stats = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\99999us'; +set return_commit_stats =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 99999us'; +?set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'?; +set return_commit_stats = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?99999us'; +set return_commit_stats =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 99999us'; +-/set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-/; +set return_commit_stats = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/99999us'; +set return_commit_stats =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 99999us'; +/#set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/#; +set return_commit_stats = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#99999us'; +set return_commit_stats =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 99999us'; +/-set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/-; +set return_commit_stats = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-99999us'; +set return_commit_stats =/-false; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set statement_tag='tag1'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 10NS'; +SET STATEMENT_TAG='TAG1'; NEW_CONNECTION; -set read_only_staleness='max_staleness 10ns'; +set statement_tag='tag1'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 10ns'; + set statement_tag='tag1'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 10ns'; + set statement_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set statement_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' ; +set statement_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' ; +set statement_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' +set statement_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set statement_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set statement_tag='tag1'; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 10ns'; +statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 10ns'; +foo set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns' bar; +set statement_tag='tag1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 10ns'; +%set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'%; +set statement_tag='tag1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%10ns'; +set%statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 10ns'; +_set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'_; +set statement_tag='tag1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_10ns'; +set_statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 10ns'; +&set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'&; +set statement_tag='tag1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&10ns'; +set&statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 10ns'; +$set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'$; +set statement_tag='tag1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$10ns'; +set$statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 10ns'; +@set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'@; +set statement_tag='tag1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@10ns'; +set@statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 10ns'; +!set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'!; +set statement_tag='tag1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!10ns'; +set!statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 10ns'; +*set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'*; +set statement_tag='tag1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*10ns'; +set*statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 10ns'; +(set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'(; +set statement_tag='tag1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(10ns'; +set(statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 10ns'; +)set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'); +set statement_tag='tag1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)10ns'; +set)statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 10ns'; +-set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-; +set statement_tag='tag1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-10ns'; +set-statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 10ns'; ++set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'+; +set statement_tag='tag1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+10ns'; +set+statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 10ns'; +-#set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-#; +set statement_tag='tag1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#10ns'; +set-#statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 10ns'; +/set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/; +set statement_tag='tag1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/10ns'; +set/statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 10ns'; +\set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'\; +set statement_tag='tag1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\10ns'; +set\statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 10ns'; +?set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'?; +set statement_tag='tag1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?10ns'; +set?statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 10ns'; +-/set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-/; +set statement_tag='tag1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/10ns'; +set-/statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 10ns'; +/#set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/#; +set statement_tag='tag1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#10ns'; +set/#statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 10ns'; +/-set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/-; +set statement_tag='tag1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-10ns'; +set/-statement_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set statement_tag='tag2'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 15S'; +SET STATEMENT_TAG='TAG2'; NEW_CONNECTION; -set read_only_staleness='exact_staleness 15s'; +set statement_tag='tag2'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15s'; + set statement_tag='tag2'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15s'; + set statement_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set statement_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' ; +set statement_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' ; +set statement_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' +set statement_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set statement_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set statement_tag='tag2'; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 15s'; +statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 15s'; +foo set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s' bar; +set statement_tag='tag2' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 15s'; +%set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'%; +set statement_tag='tag2'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%15s'; +set%statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 15s'; +_set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'_; +set statement_tag='tag2'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_15s'; +set_statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 15s'; +&set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'&; +set statement_tag='tag2'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&15s'; +set&statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 15s'; +$set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'$; +set statement_tag='tag2'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$15s'; +set$statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 15s'; +@set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'@; +set statement_tag='tag2'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@15s'; +set@statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 15s'; +!set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'!; +set statement_tag='tag2'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!15s'; +set!statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 15s'; +*set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'*; +set statement_tag='tag2'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*15s'; +set*statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 15s'; +(set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'(; +set statement_tag='tag2'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(15s'; +set(statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 15s'; +)set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'); +set statement_tag='tag2'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)15s'; +set)statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 15s'; +-set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-; +set statement_tag='tag2'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-15s'; +set-statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 15s'; ++set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'+; +set statement_tag='tag2'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+15s'; +set+statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 15s'; +-#set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-#; +set statement_tag='tag2'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#15s'; +set-#statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 15s'; +/set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/; +set statement_tag='tag2'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/15s'; +set/statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 15s'; +\set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'\; +set statement_tag='tag2'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\15s'; +set\statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 15s'; +?set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'?; +set statement_tag='tag2'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?15s'; +set?statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 15s'; +-/set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-/; +set statement_tag='tag2'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/15s'; +set-/statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 15s'; +/#set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/#; +set statement_tag='tag2'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#15s'; +set/#statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 15s'; +/-set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/-; +set statement_tag='tag2'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-15s'; +set/-statement_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set statement_tag=''; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; +SET STATEMENT_TAG=''; NEW_CONNECTION; -set read_only_staleness='exact_staleness 1500ms'; +set statement_tag=''; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 1500ms'; + set statement_tag=''; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 1500ms'; + set statement_tag=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set statement_tag=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' ; +set statement_tag='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' ; +set statement_tag='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' +set statement_tag='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set statement_tag=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set statement_tag=''; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 1500ms'; +statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 1500ms'; +foo set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms' bar; +set statement_tag='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 1500ms'; +%set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'%; +set statement_tag=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%1500ms'; +set%statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 1500ms'; +_set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'_; +set statement_tag=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_1500ms'; +set_statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 1500ms'; +&set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'&; +set statement_tag=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&1500ms'; +set&statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 1500ms'; +$set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'$; +set statement_tag=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$1500ms'; +set$statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 1500ms'; +@set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'@; +set statement_tag=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@1500ms'; +set@statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 1500ms'; +!set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'!; +set statement_tag=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!1500ms'; +set!statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 1500ms'; +*set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'*; +set statement_tag=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*1500ms'; +set*statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 1500ms'; +(set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'(; +set statement_tag=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(1500ms'; +set(statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 1500ms'; +)set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'); +set statement_tag=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)1500ms'; +set)statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 1500ms'; +-set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-; +set statement_tag=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-1500ms'; +set-statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 1500ms'; ++set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'+; +set statement_tag=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+1500ms'; +set+statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 1500ms'; +-#set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-#; +set statement_tag=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#1500ms'; +set-#statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 1500ms'; +/set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/; +set statement_tag=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/1500ms'; +set/statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 1500ms'; +\set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'\; +set statement_tag=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\1500ms'; +set\statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 1500ms'; +?set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'?; +set statement_tag=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?1500ms'; +set?statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 1500ms'; +-/set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-/; +set statement_tag=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/1500ms'; +set-/statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 1500ms'; +/#set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/#; +set statement_tag=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#1500ms'; +set/#statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 1500ms'; +/-set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/-; +set statement_tag=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-1500ms'; +set/-statement_tag=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; +set autocommit = false; +SET TRANSACTION_TAG='TAG1'; NEW_CONNECTION; -set read_only_staleness='exact_staleness 15000000us'; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15000000us'; +set autocommit = false; + set transaction_tag='tag1'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15000000us'; +set autocommit = false; + set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set transaction_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' ; +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' ; +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; set -read_only_staleness='EXACT_STALENESS 15000000us'; +transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 15000000us'; +foo set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us' bar; +set transaction_tag='tag1' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 15000000us'; +%set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'%; +set transaction_tag='tag1'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%15000000us'; +set%transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 15000000us'; +_set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'_; +set transaction_tag='tag1'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_15000000us'; +set_transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 15000000us'; +&set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'&; +set transaction_tag='tag1'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&15000000us'; +set&transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 15000000us'; +$set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'$; +set transaction_tag='tag1'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$15000000us'; +set$transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 15000000us'; +@set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'@; +set transaction_tag='tag1'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@15000000us'; +set@transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 15000000us'; +!set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'!; +set transaction_tag='tag1'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!15000000us'; +set!transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 15000000us'; +*set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'*; +set transaction_tag='tag1'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*15000000us'; +set*transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 15000000us'; +(set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'(; +set transaction_tag='tag1'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(15000000us'; +set(transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 15000000us'; +)set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'); +set transaction_tag='tag1'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)15000000us'; +set)transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 15000000us'; +-set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-; +set transaction_tag='tag1'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-15000000us'; +set-transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 15000000us'; ++set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'+; +set transaction_tag='tag1'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+15000000us'; +set+transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 15000000us'; +-#set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-#; +set transaction_tag='tag1'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#15000000us'; +set-#transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 15000000us'; +/set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/; +set transaction_tag='tag1'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/15000000us'; +set/transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 15000000us'; +\set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'\; +set transaction_tag='tag1'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\15000000us'; +set\transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 15000000us'; +?set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'?; +set transaction_tag='tag1'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?15000000us'; +set?transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 15000000us'; +-/set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-/; +set transaction_tag='tag1'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/15000000us'; +set-/transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 15000000us'; +/#set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/#; +set transaction_tag='tag1'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#15000000us'; +set/#transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 15000000us'; +/-set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/-; +set transaction_tag='tag1'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-15000000us'; +set/-transaction_tag='tag1'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; +set autocommit = false; +SET TRANSACTION_TAG='TAG2'; NEW_CONNECTION; -set read_only_staleness='exact_staleness 9999ns'; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 9999ns'; +set autocommit = false; + set transaction_tag='tag2'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 9999ns'; +set autocommit = false; + set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set transaction_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' ; +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' ; +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; set -read_only_staleness='EXACT_STALENESS 9999ns'; +transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 9999ns'; +foo set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns' bar; +set transaction_tag='tag2' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 9999ns'; +%set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'%; +set transaction_tag='tag2'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%9999ns'; +set%transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 9999ns'; +_set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'_; +set transaction_tag='tag2'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_9999ns'; +set_transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 9999ns'; +&set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'&; +set transaction_tag='tag2'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&9999ns'; +set&transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 9999ns'; +$set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'$; +set transaction_tag='tag2'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$9999ns'; +set$transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 9999ns'; +@set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'@; +set transaction_tag='tag2'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@9999ns'; +set@transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 9999ns'; +!set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'!; +set transaction_tag='tag2'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!9999ns'; +set!transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 9999ns'; +*set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'*; +set transaction_tag='tag2'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*9999ns'; +set*transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 9999ns'; +(set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'(; +set transaction_tag='tag2'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(9999ns'; +set(transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 9999ns'; +)set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'); +set transaction_tag='tag2'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)9999ns'; +set)transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 9999ns'; +-set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-; +set transaction_tag='tag2'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-9999ns'; +set-transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 9999ns'; ++set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'+; +set transaction_tag='tag2'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+9999ns'; +set+transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 9999ns'; +-#set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-#; +set transaction_tag='tag2'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#9999ns'; +set-#transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 9999ns'; +/set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/; +set transaction_tag='tag2'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/9999ns'; +set/transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 9999ns'; +\set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'\; +set transaction_tag='tag2'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\9999ns'; +set\transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 9999ns'; +?set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'?; +set transaction_tag='tag2'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?9999ns'; +set?transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 9999ns'; +-/set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-/; +set transaction_tag='tag2'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/9999ns'; +set-/transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 9999ns'; +/#set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/#; +set transaction_tag='tag2'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#9999ns'; +set/#transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 9999ns'; +/-set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/-; +set transaction_tag='tag2'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-9999ns'; +set/-transaction_tag='tag2'; NEW_CONNECTION; -set optimizer_version='1'; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; -SET OPTIMIZER_VERSION='1'; +set autocommit = false; +SET TRANSACTION_TAG=''; NEW_CONNECTION; -set optimizer_version='1'; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; - set optimizer_version='1'; +set autocommit = false; + set transaction_tag=''; NEW_CONNECTION; - set optimizer_version='1'; +set autocommit = false; + set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; -set optimizer_version='1'; +set transaction_tag=''; NEW_CONNECTION; -set optimizer_version='1' ; +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set optimizer_version='1' ; +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set optimizer_version='1' +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set optimizer_version='1'; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; -set optimizer_version='1'; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; set -optimizer_version='1'; +transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='1'; +foo set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1' bar; +set transaction_tag='' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='1'; +%set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'%; +set transaction_tag=''%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='1'; +set%transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='1'; +_set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'_; +set transaction_tag=''_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='1'; +set_transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='1'; +&set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'&; +set transaction_tag=''&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='1'; +set&transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='1'; +$set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'$; +set transaction_tag=''$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='1'; +set$transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='1'; +@set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'@; +set transaction_tag=''@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='1'; +set@transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='1'; +!set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'!; +set transaction_tag=''!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='1'; +set!transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='1'; +*set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'*; +set transaction_tag=''*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='1'; +set*transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='1'; +(set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'(; +set transaction_tag=''(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='1'; +set(transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='1'; +)set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'); +set transaction_tag=''); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='1'; +set)transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='1'; +-set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-; +set transaction_tag=''-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='1'; +set-transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='1'; ++set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'+; +set transaction_tag=''+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='1'; +set+transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='1'; +-#set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-#; +set transaction_tag=''-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='1'; +set-#transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='1'; +/set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/; +set transaction_tag=''/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='1'; +set/transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='1'; +\set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'\; +set transaction_tag=''\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='1'; +set\transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='1'; +?set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'?; +set transaction_tag=''?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='1'; +set?transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='1'; +-/set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-/; +set transaction_tag=''-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='1'; +set-/transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='1'; +/#set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/#; +set transaction_tag=''/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='1'; +set/#transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='1'; +/-set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/-; +set transaction_tag=''/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='1'; +set/-transaction_tag=''; NEW_CONNECTION; -set optimizer_version='200'; +set rpc_priority='HIGH'; NEW_CONNECTION; -SET OPTIMIZER_VERSION='200'; +SET RPC_PRIORITY='HIGH'; NEW_CONNECTION; -set optimizer_version='200'; +set rpc_priority='high'; NEW_CONNECTION; - set optimizer_version='200'; + set rpc_priority='HIGH'; NEW_CONNECTION; - set optimizer_version='200'; + set rpc_priority='HIGH'; NEW_CONNECTION; -set optimizer_version='200'; +set rpc_priority='HIGH'; NEW_CONNECTION; -set optimizer_version='200' ; +set rpc_priority='HIGH' ; NEW_CONNECTION; -set optimizer_version='200' ; +set rpc_priority='HIGH' ; NEW_CONNECTION; -set optimizer_version='200' +set rpc_priority='HIGH' ; NEW_CONNECTION; -set optimizer_version='200'; +set rpc_priority='HIGH'; NEW_CONNECTION; -set optimizer_version='200'; +set rpc_priority='HIGH'; NEW_CONNECTION; set -optimizer_version='200'; +rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='200'; +foo set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200' bar; +set rpc_priority='HIGH' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='200'; +%set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'%; +set rpc_priority='HIGH'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='200'; +set%rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='200'; +_set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'_; +set rpc_priority='HIGH'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='200'; +set_rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='200'; +&set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'&; +set rpc_priority='HIGH'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='200'; +set&rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='200'; +$set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'$; +set rpc_priority='HIGH'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='200'; +set$rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='200'; +@set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'@; +set rpc_priority='HIGH'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='200'; +set@rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='200'; +!set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'!; +set rpc_priority='HIGH'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='200'; +set!rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='200'; +*set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'*; +set rpc_priority='HIGH'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='200'; +set*rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='200'; +(set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'(; +set rpc_priority='HIGH'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='200'; +set(rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='200'; +)set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'); +set rpc_priority='HIGH'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='200'; +set)rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='200'; +-set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-; +set rpc_priority='HIGH'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='200'; +set-rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='200'; ++set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'+; +set rpc_priority='HIGH'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='200'; +set+rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='200'; +-#set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-#; +set rpc_priority='HIGH'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='200'; +set-#rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='200'; +/set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/; +set rpc_priority='HIGH'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='200'; +set/rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='200'; +\set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'\; +set rpc_priority='HIGH'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='200'; +set\rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='200'; +?set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'?; +set rpc_priority='HIGH'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='200'; +set?rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='200'; +-/set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-/; +set rpc_priority='HIGH'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='200'; +set-/rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='200'; +/#set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/#; +set rpc_priority='HIGH'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='200'; +set/#rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='200'; +/-set rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/-; +set rpc_priority='HIGH'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='200'; +set/-rpc_priority='HIGH'; NEW_CONNECTION; -set optimizer_version='LATEST'; +set rpc_priority='MEDIUM'; NEW_CONNECTION; -SET OPTIMIZER_VERSION='LATEST'; +SET RPC_PRIORITY='MEDIUM'; NEW_CONNECTION; -set optimizer_version='latest'; +set rpc_priority='medium'; NEW_CONNECTION; - set optimizer_version='LATEST'; + set rpc_priority='MEDIUM'; NEW_CONNECTION; - set optimizer_version='LATEST'; + set rpc_priority='MEDIUM'; NEW_CONNECTION; -set optimizer_version='LATEST'; +set rpc_priority='MEDIUM'; NEW_CONNECTION; -set optimizer_version='LATEST' ; +set rpc_priority='MEDIUM' ; NEW_CONNECTION; -set optimizer_version='LATEST' ; +set rpc_priority='MEDIUM' ; NEW_CONNECTION; -set optimizer_version='LATEST' +set rpc_priority='MEDIUM' ; NEW_CONNECTION; -set optimizer_version='LATEST'; +set rpc_priority='MEDIUM'; NEW_CONNECTION; -set optimizer_version='LATEST'; +set rpc_priority='MEDIUM'; NEW_CONNECTION; set -optimizer_version='LATEST'; +rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='LATEST'; +foo set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST' bar; +set rpc_priority='MEDIUM' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='LATEST'; +%set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'%; +set rpc_priority='MEDIUM'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='LATEST'; +set%rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='LATEST'; +_set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'_; +set rpc_priority='MEDIUM'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='LATEST'; +set_rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='LATEST'; +&set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'&; +set rpc_priority='MEDIUM'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='LATEST'; +set&rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='LATEST'; +$set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'$; +set rpc_priority='MEDIUM'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='LATEST'; +set$rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='LATEST'; +@set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'@; +set rpc_priority='MEDIUM'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='LATEST'; +set@rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='LATEST'; +!set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'!; +set rpc_priority='MEDIUM'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='LATEST'; +set!rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='LATEST'; +*set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'*; +set rpc_priority='MEDIUM'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='LATEST'; +set*rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='LATEST'; +(set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'(; +set rpc_priority='MEDIUM'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='LATEST'; +set(rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='LATEST'; +)set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'); +set rpc_priority='MEDIUM'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='LATEST'; +set)rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='LATEST'; +-set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-; +set rpc_priority='MEDIUM'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='LATEST'; +set-rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='LATEST'; ++set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'+; +set rpc_priority='MEDIUM'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='LATEST'; +set+rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='LATEST'; +-#set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-#; +set rpc_priority='MEDIUM'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='LATEST'; +set-#rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='LATEST'; +/set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/; +set rpc_priority='MEDIUM'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='LATEST'; +set/rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='LATEST'; +\set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'\; +set rpc_priority='MEDIUM'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='LATEST'; +set\rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='LATEST'; +?set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'?; +set rpc_priority='MEDIUM'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='LATEST'; +set?rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='LATEST'; +-/set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-/; +set rpc_priority='MEDIUM'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='LATEST'; +set-/rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='LATEST'; +/#set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/#; +set rpc_priority='MEDIUM'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='LATEST'; +set/#rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='LATEST'; +/-set rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/-; +set rpc_priority='MEDIUM'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='LATEST'; +set/-rpc_priority='MEDIUM'; NEW_CONNECTION; -set optimizer_version=''; +set rpc_priority='LOW'; NEW_CONNECTION; -SET OPTIMIZER_VERSION=''; +SET RPC_PRIORITY='LOW'; NEW_CONNECTION; -set optimizer_version=''; +set rpc_priority='low'; NEW_CONNECTION; - set optimizer_version=''; + set rpc_priority='LOW'; NEW_CONNECTION; - set optimizer_version=''; + set rpc_priority='LOW'; NEW_CONNECTION; -set optimizer_version=''; +set rpc_priority='LOW'; NEW_CONNECTION; -set optimizer_version='' ; +set rpc_priority='LOW' ; NEW_CONNECTION; -set optimizer_version='' ; +set rpc_priority='LOW' ; NEW_CONNECTION; -set optimizer_version='' +set rpc_priority='LOW' ; NEW_CONNECTION; -set optimizer_version=''; +set rpc_priority='LOW'; NEW_CONNECTION; -set optimizer_version=''; +set rpc_priority='LOW'; NEW_CONNECTION; set -optimizer_version=''; +rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version=''; +foo set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='' bar; +set rpc_priority='LOW' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version=''; +%set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''%; +set rpc_priority='LOW'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version=''; +set%rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version=''; +_set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''_; +set rpc_priority='LOW'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version=''; +set_rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version=''; +&set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''&; +set rpc_priority='LOW'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version=''; +set&rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version=''; +$set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''$; +set rpc_priority='LOW'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version=''; +set$rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version=''; +@set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''@; +set rpc_priority='LOW'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version=''; +set@rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version=''; +!set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''!; +set rpc_priority='LOW'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version=''; +set!rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version=''; +*set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''*; +set rpc_priority='LOW'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version=''; +set*rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version=''; +(set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''(; +set rpc_priority='LOW'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version=''; +set(rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version=''; +)set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''); +set rpc_priority='LOW'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version=''; +set)rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version=''; +-set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-; +set rpc_priority='LOW'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version=''; +set-rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version=''; ++set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''+; +set rpc_priority='LOW'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version=''; +set+rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version=''; +-#set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-#; +set rpc_priority='LOW'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version=''; +set-#rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version=''; +/set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/; +set rpc_priority='LOW'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version=''; +set/rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version=''; +\set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''\; +set rpc_priority='LOW'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version=''; +set\rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version=''; +?set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''?; +set rpc_priority='LOW'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version=''; +set?rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version=''; +-/set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-/; +set rpc_priority='LOW'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version=''; +set-/rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version=''; +/#set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/#; +set rpc_priority='LOW'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version=''; +set/#rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version=''; +/-set rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/-; +set rpc_priority='LOW'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version=''; +set/-rpc_priority='LOW'; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set rpc_priority='NULL'; NEW_CONNECTION; -SET OPTIMIZER_STATISTICS_PACKAGE='AUTO_20191128_14_47_22UTC'; +SET RPC_PRIORITY='NULL'; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22utc'; +set rpc_priority='null'; NEW_CONNECTION; - set optimizer_statistics_package='auto_20191128_14_47_22UTC'; + set rpc_priority='NULL'; NEW_CONNECTION; - set optimizer_statistics_package='auto_20191128_14_47_22UTC'; + set rpc_priority='NULL'; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set rpc_priority='NULL'; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC' ; +set rpc_priority='NULL' ; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC' ; +set rpc_priority='NULL' ; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC' +set rpc_priority='NULL' ; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set rpc_priority='NULL'; NEW_CONNECTION; -set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set rpc_priority='NULL'; NEW_CONNECTION; set -optimizer_statistics_package='auto_20191128_14_47_22UTC'; +rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +foo set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC' bar; +set rpc_priority='NULL' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +%set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'%; +set rpc_priority='NULL'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set%rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +_set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'_; +set rpc_priority='NULL'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set_rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +&set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'&; +set rpc_priority='NULL'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set&rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +$set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'$; +set rpc_priority='NULL'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set$rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +@set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'@; +set rpc_priority='NULL'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set@rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +!set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'!; +set rpc_priority='NULL'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set!rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +*set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'*; +set rpc_priority='NULL'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set*rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +(set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'(; +set rpc_priority='NULL'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set(rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +)set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'); +set rpc_priority='NULL'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set)rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'-; +set rpc_priority='NULL'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set-rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_statistics_package='auto_20191128_14_47_22UTC'; ++set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'+; +set rpc_priority='NULL'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set+rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-#set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'-#; +set rpc_priority='NULL'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set-#rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'/; +set rpc_priority='NULL'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set/rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +\set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'\; +set rpc_priority='NULL'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set\rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +?set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'?; +set rpc_priority='NULL'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set?rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-/set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'-/; +set rpc_priority='NULL'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set-/rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/#set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'/#; +set rpc_priority='NULL'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set/#rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/-set rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='auto_20191128_14_47_22UTC'/-; +set rpc_priority='NULL'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set/-rpc_priority='NULL'; NEW_CONNECTION; -set optimizer_statistics_package=''; +set savepoint_support='ENABLED'; NEW_CONNECTION; -SET OPTIMIZER_STATISTICS_PACKAGE=''; +SET SAVEPOINT_SUPPORT='ENABLED'; NEW_CONNECTION; -set optimizer_statistics_package=''; +set savepoint_support='enabled'; NEW_CONNECTION; - set optimizer_statistics_package=''; + set savepoint_support='ENABLED'; NEW_CONNECTION; - set optimizer_statistics_package=''; + set savepoint_support='ENABLED'; NEW_CONNECTION; -set optimizer_statistics_package=''; +set savepoint_support='ENABLED'; NEW_CONNECTION; -set optimizer_statistics_package='' ; +set savepoint_support='ENABLED' ; NEW_CONNECTION; -set optimizer_statistics_package='' ; +set savepoint_support='ENABLED' ; NEW_CONNECTION; -set optimizer_statistics_package='' +set savepoint_support='ENABLED' ; NEW_CONNECTION; -set optimizer_statistics_package=''; +set savepoint_support='ENABLED'; NEW_CONNECTION; -set optimizer_statistics_package=''; +set savepoint_support='ENABLED'; NEW_CONNECTION; set -optimizer_statistics_package=''; +savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_statistics_package=''; +foo set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package='' bar; +set savepoint_support='ENABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_statistics_package=''; +%set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''%; +set savepoint_support='ENABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_statistics_package=''; +set%savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_statistics_package=''; +_set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''_; +set savepoint_support='ENABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_statistics_package=''; +set_savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_statistics_package=''; +&set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''&; +set savepoint_support='ENABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_statistics_package=''; +set&savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_statistics_package=''; +$set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''$; +set savepoint_support='ENABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_statistics_package=''; +set$savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_statistics_package=''; +@set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''@; +set savepoint_support='ENABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_statistics_package=''; +set@savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_statistics_package=''; +!set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''!; +set savepoint_support='ENABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_statistics_package=''; +set!savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_statistics_package=''; +*set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''*; +set savepoint_support='ENABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_statistics_package=''; +set*savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_statistics_package=''; +(set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''(; +set savepoint_support='ENABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_statistics_package=''; +set(savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_statistics_package=''; +)set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''); +set savepoint_support='ENABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_statistics_package=''; +set)savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_statistics_package=''; +-set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''-; +set savepoint_support='ENABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_statistics_package=''; +set-savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_statistics_package=''; ++set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''+; +set savepoint_support='ENABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_statistics_package=''; +set+savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_statistics_package=''; +-#set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''-#; +set savepoint_support='ENABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_statistics_package=''; +set-#savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_statistics_package=''; +/set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''/; +set savepoint_support='ENABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_statistics_package=''; +set/savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_statistics_package=''; +\set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''\; +set savepoint_support='ENABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_statistics_package=''; +set\savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_statistics_package=''; +?set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''?; +set savepoint_support='ENABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_statistics_package=''; +set?savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_statistics_package=''; +-/set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''-/; +set savepoint_support='ENABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_statistics_package=''; +set-/savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_statistics_package=''; +/#set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''/#; +set savepoint_support='ENABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_statistics_package=''; +set/#savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_statistics_package=''; +/-set savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_statistics_package=''/-; +set savepoint_support='ENABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_statistics_package=''; +set/-savepoint_support='ENABLED'; NEW_CONNECTION; -set return_commit_stats = true; +set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -SET RETURN_COMMIT_STATS = TRUE; +SET SAVEPOINT_SUPPORT='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set return_commit_stats = true; +set savepoint_support='fail_after_rollback'; NEW_CONNECTION; - set return_commit_stats = true; + set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; - set return_commit_stats = true; + set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set return_commit_stats = true; +set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set return_commit_stats = true ; +set savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set return_commit_stats = true ; +set savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set return_commit_stats = true +set savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set return_commit_stats = true; +set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set return_commit_stats = true; +set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; set -return_commit_stats -= -true; +savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set return_commit_stats = true; +foo set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true bar; +set savepoint_support='FAIL_AFTER_ROLLBACK' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set return_commit_stats = true; +%set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true%; +set savepoint_support='FAIL_AFTER_ROLLBACK'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =%true; +set%savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set return_commit_stats = true; +_set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true_; +set savepoint_support='FAIL_AFTER_ROLLBACK'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =_true; +set_savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set return_commit_stats = true; +&set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true&; +set savepoint_support='FAIL_AFTER_ROLLBACK'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =&true; +set&savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set return_commit_stats = true; +$set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true$; +set savepoint_support='FAIL_AFTER_ROLLBACK'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =$true; +set$savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set return_commit_stats = true; +@set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true@; +set savepoint_support='FAIL_AFTER_ROLLBACK'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =@true; +set@savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set return_commit_stats = true; +!set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true!; +set savepoint_support='FAIL_AFTER_ROLLBACK'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =!true; +set!savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set return_commit_stats = true; +*set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true*; +set savepoint_support='FAIL_AFTER_ROLLBACK'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =*true; +set*savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set return_commit_stats = true; +(set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true(; +set savepoint_support='FAIL_AFTER_ROLLBACK'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =(true; +set(savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set return_commit_stats = true; +)set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true); +set savepoint_support='FAIL_AFTER_ROLLBACK'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =)true; +set)savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set return_commit_stats = true; +-set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-; +set savepoint_support='FAIL_AFTER_ROLLBACK'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-true; +set-savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set return_commit_stats = true; ++set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true+; +set savepoint_support='FAIL_AFTER_ROLLBACK'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =+true; +set+savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set return_commit_stats = true; +-#set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-#; +set savepoint_support='FAIL_AFTER_ROLLBACK'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-#true; +set-#savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set return_commit_stats = true; +/set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/; +set savepoint_support='FAIL_AFTER_ROLLBACK'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/true; +set/savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set return_commit_stats = true; +\set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true\; +set savepoint_support='FAIL_AFTER_ROLLBACK'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =\true; +set\savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set return_commit_stats = true; +?set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true?; +set savepoint_support='FAIL_AFTER_ROLLBACK'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =?true; +set?savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set return_commit_stats = true; +-/set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-/; +set savepoint_support='FAIL_AFTER_ROLLBACK'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-/true; +set-/savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set return_commit_stats = true; +/#set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/#; +set savepoint_support='FAIL_AFTER_ROLLBACK'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/#true; +set/#savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set return_commit_stats = true; +/-set savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/-; +set savepoint_support='FAIL_AFTER_ROLLBACK'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/-true; +set/-savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set return_commit_stats = false; +set savepoint_support='DISABLED'; NEW_CONNECTION; -SET RETURN_COMMIT_STATS = FALSE; +SET SAVEPOINT_SUPPORT='DISABLED'; NEW_CONNECTION; -set return_commit_stats = false; +set savepoint_support='disabled'; NEW_CONNECTION; - set return_commit_stats = false; + set savepoint_support='DISABLED'; NEW_CONNECTION; - set return_commit_stats = false; + set savepoint_support='DISABLED'; NEW_CONNECTION; -set return_commit_stats = false; +set savepoint_support='DISABLED'; NEW_CONNECTION; -set return_commit_stats = false ; +set savepoint_support='DISABLED' ; NEW_CONNECTION; -set return_commit_stats = false ; +set savepoint_support='DISABLED' ; NEW_CONNECTION; -set return_commit_stats = false +set savepoint_support='DISABLED' ; NEW_CONNECTION; -set return_commit_stats = false; +set savepoint_support='DISABLED'; NEW_CONNECTION; -set return_commit_stats = false; +set savepoint_support='DISABLED'; NEW_CONNECTION; set -return_commit_stats -= -false; +savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set return_commit_stats = false; +foo set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false bar; +set savepoint_support='DISABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set return_commit_stats = false; +%set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false%; +set savepoint_support='DISABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =%false; +set%savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set return_commit_stats = false; +_set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false_; +set savepoint_support='DISABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =_false; +set_savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set return_commit_stats = false; +&set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false&; +set savepoint_support='DISABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =&false; +set&savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set return_commit_stats = false; +$set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false$; +set savepoint_support='DISABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =$false; +set$savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set return_commit_stats = false; +@set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false@; +set savepoint_support='DISABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =@false; +set@savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set return_commit_stats = false; +!set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false!; +set savepoint_support='DISABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =!false; +set!savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set return_commit_stats = false; +*set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false*; +set savepoint_support='DISABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =*false; +set*savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set return_commit_stats = false; +(set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false(; +set savepoint_support='DISABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =(false; +set(savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set return_commit_stats = false; +)set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false); +set savepoint_support='DISABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =)false; +set)savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set return_commit_stats = false; +-set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-; +set savepoint_support='DISABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-false; +set-savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set return_commit_stats = false; ++set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false+; +set savepoint_support='DISABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =+false; +set+savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set return_commit_stats = false; +-#set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-#; +set savepoint_support='DISABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-#false; +set-#savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set return_commit_stats = false; +/set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/; +set savepoint_support='DISABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/false; +set/savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set return_commit_stats = false; +\set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false\; +set savepoint_support='DISABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =\false; +set\savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set return_commit_stats = false; +?set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false?; +set savepoint_support='DISABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =?false; +set?savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set return_commit_stats = false; +-/set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-/; +set savepoint_support='DISABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-/false; +set-/savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set return_commit_stats = false; +/#set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/#; +set savepoint_support='DISABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/#false; +set/#savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set return_commit_stats = false; +/-set savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/-; +set savepoint_support='DISABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/-false; +set/-savepoint_support='DISABLED'; NEW_CONNECTION; -set statement_tag='tag1'; +set delay_transaction_start_until_first_write = true; NEW_CONNECTION; -SET STATEMENT_TAG='TAG1'; +SET DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE = TRUE; NEW_CONNECTION; -set statement_tag='tag1'; +set delay_transaction_start_until_first_write = true; NEW_CONNECTION; - set statement_tag='tag1'; + set delay_transaction_start_until_first_write = true; NEW_CONNECTION; - set statement_tag='tag1'; + set delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set statement_tag='tag1'; +set delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set statement_tag='tag1' ; +set delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set statement_tag='tag1' ; +set delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set statement_tag='tag1' +set delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set statement_tag='tag1'; +set delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set statement_tag='tag1'; +set delay_transaction_start_until_first_write = true; NEW_CONNECTION; set -statement_tag='tag1'; +delay_transaction_start_until_first_write += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_tag='tag1'; +foo set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1' bar; +set delay_transaction_start_until_first_write = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_tag='tag1'; +%set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'%; +set delay_transaction_start_until_first_write = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_tag='tag1'; +set delay_transaction_start_until_first_write =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_tag='tag1'; +_set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'_; +set delay_transaction_start_until_first_write = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_tag='tag1'; +set delay_transaction_start_until_first_write =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_tag='tag1'; +&set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'&; +set delay_transaction_start_until_first_write = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_tag='tag1'; +set delay_transaction_start_until_first_write =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_tag='tag1'; +$set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'$; +set delay_transaction_start_until_first_write = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_tag='tag1'; +set delay_transaction_start_until_first_write =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_tag='tag1'; +@set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'@; +set delay_transaction_start_until_first_write = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_tag='tag1'; +set delay_transaction_start_until_first_write =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_tag='tag1'; +!set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'!; +set delay_transaction_start_until_first_write = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_tag='tag1'; +set delay_transaction_start_until_first_write =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_tag='tag1'; +*set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'*; +set delay_transaction_start_until_first_write = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_tag='tag1'; +set delay_transaction_start_until_first_write =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_tag='tag1'; +(set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'(; +set delay_transaction_start_until_first_write = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_tag='tag1'; +set delay_transaction_start_until_first_write =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_tag='tag1'; +)set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'); +set delay_transaction_start_until_first_write = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_tag='tag1'; +set delay_transaction_start_until_first_write =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_tag='tag1'; +-set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'-; +set delay_transaction_start_until_first_write = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_tag='tag1'; +set delay_transaction_start_until_first_write =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_tag='tag1'; ++set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'+; +set delay_transaction_start_until_first_write = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_tag='tag1'; +set delay_transaction_start_until_first_write =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_tag='tag1'; +-#set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'-#; +set delay_transaction_start_until_first_write = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_tag='tag1'; +set delay_transaction_start_until_first_write =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_tag='tag1'; +/set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'/; +set delay_transaction_start_until_first_write = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_tag='tag1'; +set delay_transaction_start_until_first_write =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_tag='tag1'; +\set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'\; +set delay_transaction_start_until_first_write = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_tag='tag1'; +set delay_transaction_start_until_first_write =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_tag='tag1'; +?set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'?; +set delay_transaction_start_until_first_write = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_tag='tag1'; +set delay_transaction_start_until_first_write =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_tag='tag1'; +-/set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'-/; +set delay_transaction_start_until_first_write = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_tag='tag1'; +set delay_transaction_start_until_first_write =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_tag='tag1'; +/#set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'/#; +set delay_transaction_start_until_first_write = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_tag='tag1'; +set delay_transaction_start_until_first_write =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_tag='tag1'; +/-set delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag1'/-; +set delay_transaction_start_until_first_write = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_tag='tag1'; +set delay_transaction_start_until_first_write =/-true; NEW_CONNECTION; -set statement_tag='tag2'; +set delay_transaction_start_until_first_write = false; NEW_CONNECTION; -SET STATEMENT_TAG='TAG2'; +SET DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE = FALSE; NEW_CONNECTION; -set statement_tag='tag2'; +set delay_transaction_start_until_first_write = false; NEW_CONNECTION; - set statement_tag='tag2'; + set delay_transaction_start_until_first_write = false; NEW_CONNECTION; - set statement_tag='tag2'; + set delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set statement_tag='tag2'; +set delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set statement_tag='tag2' ; +set delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set statement_tag='tag2' ; +set delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set statement_tag='tag2' +set delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set statement_tag='tag2'; +set delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set statement_tag='tag2'; +set delay_transaction_start_until_first_write = false; NEW_CONNECTION; set -statement_tag='tag2'; +delay_transaction_start_until_first_write += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_tag='tag2'; +foo set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2' bar; +set delay_transaction_start_until_first_write = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_tag='tag2'; +%set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'%; +set delay_transaction_start_until_first_write = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_tag='tag2'; +set delay_transaction_start_until_first_write =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_tag='tag2'; +_set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'_; +set delay_transaction_start_until_first_write = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_tag='tag2'; +set delay_transaction_start_until_first_write =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_tag='tag2'; +&set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'&; +set delay_transaction_start_until_first_write = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_tag='tag2'; +set delay_transaction_start_until_first_write =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_tag='tag2'; +$set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'$; +set delay_transaction_start_until_first_write = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_tag='tag2'; +set delay_transaction_start_until_first_write =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_tag='tag2'; +@set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'@; +set delay_transaction_start_until_first_write = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_tag='tag2'; +set delay_transaction_start_until_first_write =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_tag='tag2'; +!set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'!; +set delay_transaction_start_until_first_write = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_tag='tag2'; +set delay_transaction_start_until_first_write =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_tag='tag2'; +*set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'*; +set delay_transaction_start_until_first_write = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_tag='tag2'; +set delay_transaction_start_until_first_write =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_tag='tag2'; +(set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'(; +set delay_transaction_start_until_first_write = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_tag='tag2'; +set delay_transaction_start_until_first_write =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_tag='tag2'; +)set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'); +set delay_transaction_start_until_first_write = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_tag='tag2'; +set delay_transaction_start_until_first_write =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_tag='tag2'; +-set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'-; +set delay_transaction_start_until_first_write = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_tag='tag2'; +set delay_transaction_start_until_first_write =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_tag='tag2'; ++set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'+; +set delay_transaction_start_until_first_write = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_tag='tag2'; +set delay_transaction_start_until_first_write =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_tag='tag2'; +-#set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'-#; +set delay_transaction_start_until_first_write = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_tag='tag2'; +set delay_transaction_start_until_first_write =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_tag='tag2'; +/set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'/; +set delay_transaction_start_until_first_write = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_tag='tag2'; +set delay_transaction_start_until_first_write =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_tag='tag2'; +\set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'\; +set delay_transaction_start_until_first_write = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_tag='tag2'; +set delay_transaction_start_until_first_write =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_tag='tag2'; +?set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'?; +set delay_transaction_start_until_first_write = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_tag='tag2'; +set delay_transaction_start_until_first_write =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_tag='tag2'; +-/set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'-/; +set delay_transaction_start_until_first_write = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_tag='tag2'; +set delay_transaction_start_until_first_write =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_tag='tag2'; +/#set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'/#; +set delay_transaction_start_until_first_write = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_tag='tag2'; +set delay_transaction_start_until_first_write =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_tag='tag2'; +/-set delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='tag2'/-; +set delay_transaction_start_until_first_write = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_tag='tag2'; +set delay_transaction_start_until_first_write =/-false; NEW_CONNECTION; -set statement_tag=''; +show variable data_boost_enabled; NEW_CONNECTION; -SET STATEMENT_TAG=''; +SHOW VARIABLE DATA_BOOST_ENABLED; NEW_CONNECTION; -set statement_tag=''; +show variable data_boost_enabled; NEW_CONNECTION; - set statement_tag=''; + show variable data_boost_enabled; NEW_CONNECTION; - set statement_tag=''; + show variable data_boost_enabled; NEW_CONNECTION; -set statement_tag=''; +show variable data_boost_enabled; NEW_CONNECTION; -set statement_tag='' ; +show variable data_boost_enabled ; NEW_CONNECTION; -set statement_tag='' ; +show variable data_boost_enabled ; NEW_CONNECTION; -set statement_tag='' +show variable data_boost_enabled ; NEW_CONNECTION; -set statement_tag=''; -NEW_CONNECTION; -set statement_tag=''; -NEW_CONNECTION; -set -statement_tag=''; -NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_tag=''; +show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag='' bar; +show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_tag=''; +show +variable +data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''%; +foo show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_tag=''; +%show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''_; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled%; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_tag=''; +_show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''&; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled_; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_tag=''; +&show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''$; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled&; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_tag=''; +$show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''@; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled$; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_tag=''; +@show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''!; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled@; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_tag=''; +!show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''*; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled!; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_tag=''; +*show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''(; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled*; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_tag=''; +(show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''); +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled(; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_tag=''; +)show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''-; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled); NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_tag=''; +-show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''+; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled-; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_tag=''; ++show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''-#; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled+; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_tag=''; +-#show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''/; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled-#; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_tag=''; +/show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''\; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_tag=''; +\show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''?; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled\; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_tag=''; +?show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''-/; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled?; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_tag=''; +-/show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''/#; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled-/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_tag=''; +/#show variable data_boost_enabled; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set statement_tag=''/-; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#data_boost_enabled; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_tag=''; +/-show variable data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable data_boost_enabled/-; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION_TAG='TAG1'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1'; +set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; - set transaction_tag='tag1'; +SET DATA_BOOST_ENABLED = TRUE; NEW_CONNECTION; -set autocommit = false; - set transaction_tag='tag1'; +set data_boost_enabled = true; +NEW_CONNECTION; + set data_boost_enabled = true; +NEW_CONNECTION; + set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1'; +set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1' ; +set data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1' ; +set data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1' +set data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1'; +set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag1'; +set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; set -transaction_tag='tag1'; +data_boost_enabled += +true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction_tag='tag1'; +foo set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1' bar; +set data_boost_enabled = true bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction_tag='tag1'; +%set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'%; +set data_boost_enabled = true%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%transaction_tag='tag1'; +set data_boost_enabled =%true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction_tag='tag1'; +_set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'_; +set data_boost_enabled = true_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_transaction_tag='tag1'; +set data_boost_enabled =_true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction_tag='tag1'; +&set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'&; +set data_boost_enabled = true&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&transaction_tag='tag1'; +set data_boost_enabled =&true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction_tag='tag1'; +$set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'$; +set data_boost_enabled = true$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$transaction_tag='tag1'; +set data_boost_enabled =$true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction_tag='tag1'; +@set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'@; +set data_boost_enabled = true@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@transaction_tag='tag1'; +set data_boost_enabled =@true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction_tag='tag1'; +!set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'!; +set data_boost_enabled = true!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!transaction_tag='tag1'; +set data_boost_enabled =!true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction_tag='tag1'; +*set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'*; +set data_boost_enabled = true*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*transaction_tag='tag1'; +set data_boost_enabled =*true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction_tag='tag1'; +(set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'(; +set data_boost_enabled = true(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(transaction_tag='tag1'; +set data_boost_enabled =(true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction_tag='tag1'; +)set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'); +set data_boost_enabled = true); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)transaction_tag='tag1'; +set data_boost_enabled =)true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction_tag='tag1'; +-set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'-; +set data_boost_enabled = true-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-transaction_tag='tag1'; +set data_boost_enabled =-true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction_tag='tag1'; ++set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'+; +set data_boost_enabled = true+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+transaction_tag='tag1'; +set data_boost_enabled =+true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction_tag='tag1'; +-#set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'-#; +set data_boost_enabled = true-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#transaction_tag='tag1'; +set data_boost_enabled =-#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction_tag='tag1'; +/set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'/; +set data_boost_enabled = true/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/transaction_tag='tag1'; +set data_boost_enabled =/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction_tag='tag1'; +\set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'\; +set data_boost_enabled = true\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\transaction_tag='tag1'; +set data_boost_enabled =\true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction_tag='tag1'; +?set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'?; +set data_boost_enabled = true?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?transaction_tag='tag1'; +set data_boost_enabled =?true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction_tag='tag1'; +-/set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'-/; +set data_boost_enabled = true-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/transaction_tag='tag1'; +set data_boost_enabled =-/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction_tag='tag1'; +/#set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'/#; +set data_boost_enabled = true/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#transaction_tag='tag1'; +set data_boost_enabled =/#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction_tag='tag1'; +/-set data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag1'/-; +set data_boost_enabled = true/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-transaction_tag='tag1'; +set data_boost_enabled =/-true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2'; +set data_boost_enabled = false; +NEW_CONNECTION; +SET DATA_BOOST_ENABLED = FALSE; +NEW_CONNECTION; +set data_boost_enabled = false; +NEW_CONNECTION; + set data_boost_enabled = false; +NEW_CONNECTION; + set data_boost_enabled = false; +NEW_CONNECTION; + + + +set data_boost_enabled = false; +NEW_CONNECTION; +set data_boost_enabled = false ; +NEW_CONNECTION; +set data_boost_enabled = false ; +NEW_CONNECTION; +set data_boost_enabled = false + +; +NEW_CONNECTION; +set data_boost_enabled = false; +NEW_CONNECTION; +set data_boost_enabled = false; +NEW_CONNECTION; +set +data_boost_enabled += +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set data_boost_enabled = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set data_boost_enabled = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled =%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set data_boost_enabled = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled =_false; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION_TAG='TAG2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false&; NEW_CONNECTION; -set autocommit = false; - set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled =&false; NEW_CONNECTION; -set autocommit = false; - set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; - - - -set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false$; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2' ; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled =$false; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2' ; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2' - -; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false@; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled =@false; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set -transaction_tag='tag2'; +@EXPECT EXCEPTION INVALID_ARGUMENT +set data_boost_enabled = false!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction_tag='tag2'; +set data_boost_enabled =!false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2' bar; +*set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction_tag='tag2'; +set data_boost_enabled = false*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'%; +set data_boost_enabled =*false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%transaction_tag='tag2'; +(set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction_tag='tag2'; +set data_boost_enabled = false(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'_; +set data_boost_enabled =(false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_transaction_tag='tag2'; +)set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction_tag='tag2'; +set data_boost_enabled = false); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'&; +set data_boost_enabled =)false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&transaction_tag='tag2'; +-set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction_tag='tag2'; +set data_boost_enabled = false-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'$; +set data_boost_enabled =-false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$transaction_tag='tag2'; ++set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction_tag='tag2'; +set data_boost_enabled = false+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'@; +set data_boost_enabled =+false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@transaction_tag='tag2'; +-#set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction_tag='tag2'; +set data_boost_enabled = false-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'!; +set data_boost_enabled =-#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!transaction_tag='tag2'; +/set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction_tag='tag2'; +set data_boost_enabled = false/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'*; +set data_boost_enabled =/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*transaction_tag='tag2'; +\set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction_tag='tag2'; +set data_boost_enabled = false\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'(; +set data_boost_enabled =\false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(transaction_tag='tag2'; +?set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction_tag='tag2'; +set data_boost_enabled = false?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'); +set data_boost_enabled =?false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)transaction_tag='tag2'; +-/set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction_tag='tag2'; +set data_boost_enabled = false-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'-; +set data_boost_enabled =-/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-transaction_tag='tag2'; +/#set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction_tag='tag2'; +set data_boost_enabled = false/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'+; +set data_boost_enabled =/#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+transaction_tag='tag2'; +/-set data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction_tag='tag2'; +set data_boost_enabled = false/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'-#; +set data_boost_enabled =/-false; +NEW_CONNECTION; +show variable auto_partition_mode; +NEW_CONNECTION; +SHOW VARIABLE AUTO_PARTITION_MODE; +NEW_CONNECTION; +show variable auto_partition_mode; +NEW_CONNECTION; + show variable auto_partition_mode; +NEW_CONNECTION; + show variable auto_partition_mode; +NEW_CONNECTION; + + + +show variable auto_partition_mode; +NEW_CONNECTION; +show variable auto_partition_mode ; +NEW_CONNECTION; +show variable auto_partition_mode ; +NEW_CONNECTION; +show variable auto_partition_mode + +; +NEW_CONNECTION; +show variable auto_partition_mode; +NEW_CONNECTION; +show variable auto_partition_mode; +NEW_CONNECTION; +show +variable +auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#transaction_tag='tag2'; +foo show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction_tag='tag2'; +%show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'/; +_show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/transaction_tag='tag2'; +&show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction_tag='tag2'; +$show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'\; +@show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\transaction_tag='tag2'; +!show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction_tag='tag2'; +*show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'?; +(show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?transaction_tag='tag2'; +)show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction_tag='tag2'; +-show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'-/; ++show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/transaction_tag='tag2'; +-#show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction_tag='tag2'; +/show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'/#; +\show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#transaction_tag='tag2'; +?show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction_tag='tag2'; +-/show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='tag2'/-; +/#show variable auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-transaction_tag='tag2'; +/-show variable auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set transaction_tag=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable auto_partition_mode/-; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION_TAG=''; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set transaction_tag=''; +set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; - set transaction_tag=''; +SET AUTO_PARTITION_MODE = TRUE; NEW_CONNECTION; -set autocommit = false; - set transaction_tag=''; +set auto_partition_mode = true; +NEW_CONNECTION; + set auto_partition_mode = true; +NEW_CONNECTION; + set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag=''; +set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='' ; +set auto_partition_mode = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='' ; +set auto_partition_mode = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag='' +set auto_partition_mode = true ; NEW_CONNECTION; -set autocommit = false; -set transaction_tag=''; +set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; -set transaction_tag=''; +set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; set -transaction_tag=''; +auto_partition_mode += +true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction_tag=''; +foo set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag='' bar; +set auto_partition_mode = true bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction_tag=''; +%set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''%; +set auto_partition_mode = true%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%transaction_tag=''; +set auto_partition_mode =%true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction_tag=''; +_set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''_; +set auto_partition_mode = true_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_transaction_tag=''; +set auto_partition_mode =_true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction_tag=''; +&set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''&; +set auto_partition_mode = true&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&transaction_tag=''; +set auto_partition_mode =&true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction_tag=''; +$set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''$; +set auto_partition_mode = true$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$transaction_tag=''; +set auto_partition_mode =$true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction_tag=''; +@set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''@; +set auto_partition_mode = true@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@transaction_tag=''; +set auto_partition_mode =@true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction_tag=''; +!set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''!; +set auto_partition_mode = true!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!transaction_tag=''; +set auto_partition_mode =!true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction_tag=''; +*set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''*; +set auto_partition_mode = true*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*transaction_tag=''; +set auto_partition_mode =*true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction_tag=''; +(set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''(; +set auto_partition_mode = true(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(transaction_tag=''; +set auto_partition_mode =(true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction_tag=''; +)set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''); +set auto_partition_mode = true); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)transaction_tag=''; +set auto_partition_mode =)true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction_tag=''; +-set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''-; +set auto_partition_mode = true-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-transaction_tag=''; +set auto_partition_mode =-true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction_tag=''; ++set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''+; +set auto_partition_mode = true+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+transaction_tag=''; +set auto_partition_mode =+true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction_tag=''; +-#set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''-#; +set auto_partition_mode = true-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#transaction_tag=''; +set auto_partition_mode =-#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction_tag=''; +/set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''/; +set auto_partition_mode = true/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/transaction_tag=''; +set auto_partition_mode =/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction_tag=''; +\set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''\; +set auto_partition_mode = true\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\transaction_tag=''; +set auto_partition_mode =\true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction_tag=''; +?set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''?; +set auto_partition_mode = true?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?transaction_tag=''; +set auto_partition_mode =?true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction_tag=''; +-/set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''-/; +set auto_partition_mode = true-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/transaction_tag=''; +set auto_partition_mode =-/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction_tag=''; +/#set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''/#; +set auto_partition_mode = true/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#transaction_tag=''; +set auto_partition_mode =/#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction_tag=''; +/-set auto_partition_mode = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction_tag=''/-; +set auto_partition_mode = true/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-transaction_tag=''; +set auto_partition_mode =/-true; NEW_CONNECTION; -set rpc_priority='HIGH'; +set auto_partition_mode = false; NEW_CONNECTION; -SET RPC_PRIORITY='HIGH'; +SET AUTO_PARTITION_MODE = FALSE; NEW_CONNECTION; -set rpc_priority='high'; +set auto_partition_mode = false; NEW_CONNECTION; - set rpc_priority='HIGH'; + set auto_partition_mode = false; NEW_CONNECTION; - set rpc_priority='HIGH'; + set auto_partition_mode = false; NEW_CONNECTION; -set rpc_priority='HIGH'; +set auto_partition_mode = false; NEW_CONNECTION; -set rpc_priority='HIGH' ; +set auto_partition_mode = false ; NEW_CONNECTION; -set rpc_priority='HIGH' ; +set auto_partition_mode = false ; NEW_CONNECTION; -set rpc_priority='HIGH' +set auto_partition_mode = false ; NEW_CONNECTION; -set rpc_priority='HIGH'; +set auto_partition_mode = false; NEW_CONNECTION; -set rpc_priority='HIGH'; +set auto_partition_mode = false; NEW_CONNECTION; set -rpc_priority='HIGH'; +auto_partition_mode += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set rpc_priority='HIGH'; +foo set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH' bar; +set auto_partition_mode = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set rpc_priority='HIGH'; +%set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'%; +set auto_partition_mode = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%rpc_priority='HIGH'; +set auto_partition_mode =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set rpc_priority='HIGH'; +_set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'_; +set auto_partition_mode = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_rpc_priority='HIGH'; +set auto_partition_mode =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set rpc_priority='HIGH'; +&set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'&; +set auto_partition_mode = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&rpc_priority='HIGH'; +set auto_partition_mode =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set rpc_priority='HIGH'; +$set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'$; +set auto_partition_mode = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$rpc_priority='HIGH'; +set auto_partition_mode =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set rpc_priority='HIGH'; +@set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'@; +set auto_partition_mode = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@rpc_priority='HIGH'; +set auto_partition_mode =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set rpc_priority='HIGH'; +!set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'!; +set auto_partition_mode = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!rpc_priority='HIGH'; +set auto_partition_mode =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set rpc_priority='HIGH'; +*set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'*; +set auto_partition_mode = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*rpc_priority='HIGH'; +set auto_partition_mode =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set rpc_priority='HIGH'; +(set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'(; +set auto_partition_mode = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(rpc_priority='HIGH'; +set auto_partition_mode =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set rpc_priority='HIGH'; +)set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'); +set auto_partition_mode = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)rpc_priority='HIGH'; +set auto_partition_mode =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set rpc_priority='HIGH'; +-set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'-; +set auto_partition_mode = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-rpc_priority='HIGH'; +set auto_partition_mode =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set rpc_priority='HIGH'; ++set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'+; +set auto_partition_mode = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+rpc_priority='HIGH'; +set auto_partition_mode =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set rpc_priority='HIGH'; +-#set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'-#; +set auto_partition_mode = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#rpc_priority='HIGH'; +set auto_partition_mode =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set rpc_priority='HIGH'; +/set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'/; +set auto_partition_mode = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/rpc_priority='HIGH'; +set auto_partition_mode =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set rpc_priority='HIGH'; +\set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'\; +set auto_partition_mode = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\rpc_priority='HIGH'; +set auto_partition_mode =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set rpc_priority='HIGH'; +?set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'?; +set auto_partition_mode = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?rpc_priority='HIGH'; +set auto_partition_mode =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set rpc_priority='HIGH'; +-/set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'-/; +set auto_partition_mode = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/rpc_priority='HIGH'; +set auto_partition_mode =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set rpc_priority='HIGH'; +/#set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'/#; +set auto_partition_mode = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#rpc_priority='HIGH'; +set auto_partition_mode =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set rpc_priority='HIGH'; +/-set auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='HIGH'/-; +set auto_partition_mode = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-rpc_priority='HIGH'; +set auto_partition_mode =/-false; NEW_CONNECTION; -set rpc_priority='MEDIUM'; +show variable max_partitions; NEW_CONNECTION; -SET RPC_PRIORITY='MEDIUM'; +SHOW VARIABLE MAX_PARTITIONS; NEW_CONNECTION; -set rpc_priority='medium'; +show variable max_partitions; NEW_CONNECTION; - set rpc_priority='MEDIUM'; + show variable max_partitions; NEW_CONNECTION; - set rpc_priority='MEDIUM'; + show variable max_partitions; NEW_CONNECTION; -set rpc_priority='MEDIUM'; +show variable max_partitions; NEW_CONNECTION; -set rpc_priority='MEDIUM' ; +show variable max_partitions ; NEW_CONNECTION; -set rpc_priority='MEDIUM' ; +show variable max_partitions ; NEW_CONNECTION; -set rpc_priority='MEDIUM' +show variable max_partitions ; NEW_CONNECTION; -set rpc_priority='MEDIUM'; -NEW_CONNECTION; -set rpc_priority='MEDIUM'; -NEW_CONNECTION; -set -rpc_priority='MEDIUM'; +show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -foo set rpc_priority='MEDIUM'; +show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM' bar; +show +variable +max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set rpc_priority='MEDIUM'; +foo show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'%; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%rpc_priority='MEDIUM'; +%show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -_set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions%; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'_; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_rpc_priority='MEDIUM'; +_show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -&set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions_; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'&; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&rpc_priority='MEDIUM'; +&show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -$set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions&; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'$; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$rpc_priority='MEDIUM'; +$show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -@set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions$; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'@; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@rpc_priority='MEDIUM'; +@show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -!set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions@; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'!; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!rpc_priority='MEDIUM'; +!show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -*set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions!; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'*; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*rpc_priority='MEDIUM'; +*show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -(set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions*; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'(; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(rpc_priority='MEDIUM'; +(show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -)set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions(; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'); +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)rpc_priority='MEDIUM'; +)show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions); NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'-; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-rpc_priority='MEDIUM'; +-show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -+set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions-; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'+; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+rpc_priority='MEDIUM'; ++show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --#set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions+; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'-#; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#rpc_priority='MEDIUM'; +-#show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions-#; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'/; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/rpc_priority='MEDIUM'; +/show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -\set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'\; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\rpc_priority='MEDIUM'; +\show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -?set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions\; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'?; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?rpc_priority='MEDIUM'; +?show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --/set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions?; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'-/; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/rpc_priority='MEDIUM'; +-/show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/#set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions-/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'/#; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#rpc_priority='MEDIUM'; +/#show variable max_partitions; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/-set rpc_priority='MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions/#; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='MEDIUM'/-; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-rpc_priority='MEDIUM'; +/-show variable max_partitions; NEW_CONNECTION; -set rpc_priority='LOW'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitions/-; NEW_CONNECTION; -SET RPC_PRIORITY='LOW'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-max_partitions; NEW_CONNECTION; -set rpc_priority='low'; +set max_partitions = 0; NEW_CONNECTION; - set rpc_priority='LOW'; +SET MAX_PARTITIONS = 0; NEW_CONNECTION; - set rpc_priority='LOW'; +set max_partitions = 0; +NEW_CONNECTION; + set max_partitions = 0; +NEW_CONNECTION; + set max_partitions = 0; NEW_CONNECTION; -set rpc_priority='LOW'; +set max_partitions = 0; NEW_CONNECTION; -set rpc_priority='LOW' ; +set max_partitions = 0 ; NEW_CONNECTION; -set rpc_priority='LOW' ; +set max_partitions = 0 ; NEW_CONNECTION; -set rpc_priority='LOW' +set max_partitions = 0 ; NEW_CONNECTION; -set rpc_priority='LOW'; +set max_partitions = 0; NEW_CONNECTION; -set rpc_priority='LOW'; +set max_partitions = 0; NEW_CONNECTION; set -rpc_priority='LOW'; +max_partitions += +0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set rpc_priority='LOW'; +foo set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW' bar; +set max_partitions = 0 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set rpc_priority='LOW'; +%set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'%; +set max_partitions = 0%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%rpc_priority='LOW'; +set max_partitions =%0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set rpc_priority='LOW'; +_set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'_; +set max_partitions = 0_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_rpc_priority='LOW'; +set max_partitions =_0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set rpc_priority='LOW'; +&set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'&; +set max_partitions = 0&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&rpc_priority='LOW'; +set max_partitions =&0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set rpc_priority='LOW'; +$set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'$; +set max_partitions = 0$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$rpc_priority='LOW'; +set max_partitions =$0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set rpc_priority='LOW'; +@set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'@; +set max_partitions = 0@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@rpc_priority='LOW'; +set max_partitions =@0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set rpc_priority='LOW'; +!set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'!; +set max_partitions = 0!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!rpc_priority='LOW'; +set max_partitions =!0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set rpc_priority='LOW'; +*set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'*; +set max_partitions = 0*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*rpc_priority='LOW'; +set max_partitions =*0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set rpc_priority='LOW'; +(set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'(; +set max_partitions = 0(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(rpc_priority='LOW'; +set max_partitions =(0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set rpc_priority='LOW'; +)set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'); +set max_partitions = 0); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)rpc_priority='LOW'; +set max_partitions =)0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set rpc_priority='LOW'; +-set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'-; +set max_partitions = 0-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-rpc_priority='LOW'; +set max_partitions =-0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set rpc_priority='LOW'; ++set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'+; +set max_partitions = 0+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+rpc_priority='LOW'; +set max_partitions =+0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set rpc_priority='LOW'; +-#set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'-#; +set max_partitions = 0-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#rpc_priority='LOW'; +set max_partitions =-#0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set rpc_priority='LOW'; +/set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'/; +set max_partitions = 0/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/rpc_priority='LOW'; +set max_partitions =/0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set rpc_priority='LOW'; +\set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'\; +set max_partitions = 0\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\rpc_priority='LOW'; +set max_partitions =\0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set rpc_priority='LOW'; +?set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'?; +set max_partitions = 0?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?rpc_priority='LOW'; +set max_partitions =?0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set rpc_priority='LOW'; +-/set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'-/; +set max_partitions = 0-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/rpc_priority='LOW'; +set max_partitions =-/0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set rpc_priority='LOW'; +/#set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'/#; +set max_partitions = 0/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#rpc_priority='LOW'; +set max_partitions =/#0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set rpc_priority='LOW'; +/-set max_partitions = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='LOW'/-; +set max_partitions = 0/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-rpc_priority='LOW'; +set max_partitions =/-0; NEW_CONNECTION; -set rpc_priority='NULL'; +set max_partitions = 10; NEW_CONNECTION; -SET RPC_PRIORITY='NULL'; +SET MAX_PARTITIONS = 10; NEW_CONNECTION; -set rpc_priority='null'; +set max_partitions = 10; NEW_CONNECTION; - set rpc_priority='NULL'; + set max_partitions = 10; NEW_CONNECTION; - set rpc_priority='NULL'; + set max_partitions = 10; NEW_CONNECTION; -set rpc_priority='NULL'; +set max_partitions = 10; NEW_CONNECTION; -set rpc_priority='NULL' ; +set max_partitions = 10 ; NEW_CONNECTION; -set rpc_priority='NULL' ; +set max_partitions = 10 ; NEW_CONNECTION; -set rpc_priority='NULL' +set max_partitions = 10 ; NEW_CONNECTION; -set rpc_priority='NULL'; +set max_partitions = 10; NEW_CONNECTION; -set rpc_priority='NULL'; +set max_partitions = 10; NEW_CONNECTION; set -rpc_priority='NULL'; +max_partitions += +10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set rpc_priority='NULL'; +foo set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL' bar; +set max_partitions = 10 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set rpc_priority='NULL'; +%set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'%; +set max_partitions = 10%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%rpc_priority='NULL'; +set max_partitions =%10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set rpc_priority='NULL'; +_set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'_; +set max_partitions = 10_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_rpc_priority='NULL'; +set max_partitions =_10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set rpc_priority='NULL'; +&set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'&; +set max_partitions = 10&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&rpc_priority='NULL'; +set max_partitions =&10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set rpc_priority='NULL'; +$set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'$; +set max_partitions = 10$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$rpc_priority='NULL'; +set max_partitions =$10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set rpc_priority='NULL'; +@set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'@; +set max_partitions = 10@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@rpc_priority='NULL'; +set max_partitions =@10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set rpc_priority='NULL'; +!set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'!; +set max_partitions = 10!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!rpc_priority='NULL'; +set max_partitions =!10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set rpc_priority='NULL'; +*set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'*; +set max_partitions = 10*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*rpc_priority='NULL'; +set max_partitions =*10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set rpc_priority='NULL'; +(set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'(; +set max_partitions = 10(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(rpc_priority='NULL'; +set max_partitions =(10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set rpc_priority='NULL'; +)set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'); +set max_partitions = 10); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)rpc_priority='NULL'; +set max_partitions =)10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set rpc_priority='NULL'; +-set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'-; +set max_partitions = 10-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-rpc_priority='NULL'; +set max_partitions =-10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set rpc_priority='NULL'; ++set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'+; +set max_partitions = 10+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+rpc_priority='NULL'; +set max_partitions =+10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set rpc_priority='NULL'; +-#set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'-#; +set max_partitions = 10-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#rpc_priority='NULL'; +set max_partitions =-#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set rpc_priority='NULL'; +/set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'/; +set max_partitions = 10/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/rpc_priority='NULL'; +set max_partitions =/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set rpc_priority='NULL'; +\set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'\; +set max_partitions = 10\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\rpc_priority='NULL'; +set max_partitions =\10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set rpc_priority='NULL'; +?set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'?; +set max_partitions = 10?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?rpc_priority='NULL'; +set max_partitions =?10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set rpc_priority='NULL'; +-/set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'-/; +set max_partitions = 10-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/rpc_priority='NULL'; +set max_partitions =-/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set rpc_priority='NULL'; +/#set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'/#; +set max_partitions = 10/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#rpc_priority='NULL'; +set max_partitions =/#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set rpc_priority='NULL'; +/-set max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set rpc_priority='NULL'/-; +set max_partitions = 10/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-rpc_priority='NULL'; +set max_partitions =/-10; NEW_CONNECTION; -set savepoint_support='ENABLED'; +show variable max_partitioned_parallelism; NEW_CONNECTION; -SET SAVEPOINT_SUPPORT='ENABLED'; +SHOW VARIABLE MAX_PARTITIONED_PARALLELISM; NEW_CONNECTION; -set savepoint_support='enabled'; +show variable max_partitioned_parallelism; NEW_CONNECTION; - set savepoint_support='ENABLED'; + show variable max_partitioned_parallelism; NEW_CONNECTION; - set savepoint_support='ENABLED'; + show variable max_partitioned_parallelism; NEW_CONNECTION; -set savepoint_support='ENABLED'; +show variable max_partitioned_parallelism; NEW_CONNECTION; -set savepoint_support='ENABLED' ; +show variable max_partitioned_parallelism ; NEW_CONNECTION; -set savepoint_support='ENABLED' ; +show variable max_partitioned_parallelism ; NEW_CONNECTION; -set savepoint_support='ENABLED' +show variable max_partitioned_parallelism ; NEW_CONNECTION; -set savepoint_support='ENABLED'; -NEW_CONNECTION; -set savepoint_support='ENABLED'; +show variable max_partitioned_parallelism; NEW_CONNECTION; -set -savepoint_support='ENABLED'; +show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -foo set savepoint_support='ENABLED'; +show +variable +max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED' bar; +foo show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -%set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'%; +%show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set%savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism%; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -_set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'_; +_show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set_savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism_; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -&set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'&; +&show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set&savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism&; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -$set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'$; +$show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set$savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism$; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -@set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'@; +@show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set@savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism@; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -!set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'!; +!show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set!savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism!; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -*set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'*; +*show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set*savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism*; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -(set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'(; +(show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set(savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism(; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -)set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'); +)show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set)savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism); NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'-; +-show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism-; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -+set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'+; ++show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set+savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism+; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --#set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'-#; +-#show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-#savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism-#; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'/; +/show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set/savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -\set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'\; +\show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set\savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism\; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -?set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'?; +?show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set?savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism?; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT --/set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'-/; +-/show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set-/savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism-/; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/#set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'/#; +/#show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set/#savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism/#; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -/-set savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='ENABLED'/-; +/-show variable max_partitioned_parallelism; NEW_CONNECTION; -@EXPECT EXCEPTION INVALID_ARGUMENT -set/-savepoint_support='ENABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable max_partitioned_parallelism/-; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-max_partitioned_parallelism; NEW_CONNECTION; -SET SAVEPOINT_SUPPORT='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism = 0; NEW_CONNECTION; -set savepoint_support='fail_after_rollback'; +SET MAX_PARTITIONED_PARALLELISM = 0; NEW_CONNECTION; - set savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism = 0; NEW_CONNECTION; - set savepoint_support='FAIL_AFTER_ROLLBACK'; + set max_partitioned_parallelism = 0; +NEW_CONNECTION; + set max_partitioned_parallelism = 0; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism = 0; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK' ; +set max_partitioned_parallelism = 0 ; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK' ; +set max_partitioned_parallelism = 0 ; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK' +set max_partitioned_parallelism = 0 ; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism = 0; NEW_CONNECTION; -set savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism = 0; NEW_CONNECTION; set -savepoint_support='FAIL_AFTER_ROLLBACK'; +max_partitioned_parallelism += +0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set savepoint_support='FAIL_AFTER_ROLLBACK'; +foo set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK' bar; +set max_partitioned_parallelism = 0 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set savepoint_support='FAIL_AFTER_ROLLBACK'; +%set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'%; +set max_partitioned_parallelism = 0%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =%0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set savepoint_support='FAIL_AFTER_ROLLBACK'; +_set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'_; +set max_partitioned_parallelism = 0_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =_0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set savepoint_support='FAIL_AFTER_ROLLBACK'; +&set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'&; +set max_partitioned_parallelism = 0&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =&0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set savepoint_support='FAIL_AFTER_ROLLBACK'; +$set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'$; +set max_partitioned_parallelism = 0$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =$0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set savepoint_support='FAIL_AFTER_ROLLBACK'; +@set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'@; +set max_partitioned_parallelism = 0@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =@0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set savepoint_support='FAIL_AFTER_ROLLBACK'; +!set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'!; +set max_partitioned_parallelism = 0!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =!0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set savepoint_support='FAIL_AFTER_ROLLBACK'; +*set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'*; +set max_partitioned_parallelism = 0*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =*0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set savepoint_support='FAIL_AFTER_ROLLBACK'; +(set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'(; +set max_partitioned_parallelism = 0(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =(0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set savepoint_support='FAIL_AFTER_ROLLBACK'; +)set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'); +set max_partitioned_parallelism = 0); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =)0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set savepoint_support='FAIL_AFTER_ROLLBACK'; +-set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'-; +set max_partitioned_parallelism = 0-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =-0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set savepoint_support='FAIL_AFTER_ROLLBACK'; ++set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'+; +set max_partitioned_parallelism = 0+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =+0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set savepoint_support='FAIL_AFTER_ROLLBACK'; +-#set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'-#; +set max_partitioned_parallelism = 0-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =-#0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set savepoint_support='FAIL_AFTER_ROLLBACK'; +/set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'/; +set max_partitioned_parallelism = 0/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =/0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set savepoint_support='FAIL_AFTER_ROLLBACK'; +\set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'\; +set max_partitioned_parallelism = 0\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =\0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set savepoint_support='FAIL_AFTER_ROLLBACK'; +?set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'?; +set max_partitioned_parallelism = 0?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =?0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set savepoint_support='FAIL_AFTER_ROLLBACK'; +-/set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'-/; +set max_partitioned_parallelism = 0-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =-/0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set savepoint_support='FAIL_AFTER_ROLLBACK'; +/#set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'/#; +set max_partitioned_parallelism = 0/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =/#0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set savepoint_support='FAIL_AFTER_ROLLBACK'; +/-set max_partitioned_parallelism = 0; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='FAIL_AFTER_ROLLBACK'/-; +set max_partitioned_parallelism = 0/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-savepoint_support='FAIL_AFTER_ROLLBACK'; +set max_partitioned_parallelism =/-0; NEW_CONNECTION; -set savepoint_support='DISABLED'; +set max_partitioned_parallelism = 10; NEW_CONNECTION; -SET SAVEPOINT_SUPPORT='DISABLED'; +SET MAX_PARTITIONED_PARALLELISM = 10; NEW_CONNECTION; -set savepoint_support='disabled'; +set max_partitioned_parallelism = 10; NEW_CONNECTION; - set savepoint_support='DISABLED'; + set max_partitioned_parallelism = 10; NEW_CONNECTION; - set savepoint_support='DISABLED'; + set max_partitioned_parallelism = 10; NEW_CONNECTION; -set savepoint_support='DISABLED'; +set max_partitioned_parallelism = 10; NEW_CONNECTION; -set savepoint_support='DISABLED' ; +set max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set savepoint_support='DISABLED' ; +set max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set savepoint_support='DISABLED' +set max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set savepoint_support='DISABLED'; +set max_partitioned_parallelism = 10; NEW_CONNECTION; -set savepoint_support='DISABLED'; +set max_partitioned_parallelism = 10; NEW_CONNECTION; set -savepoint_support='DISABLED'; +max_partitioned_parallelism += +10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set savepoint_support='DISABLED'; +foo set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED' bar; +set max_partitioned_parallelism = 10 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set savepoint_support='DISABLED'; +%set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'%; +set max_partitioned_parallelism = 10%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%savepoint_support='DISABLED'; +set max_partitioned_parallelism =%10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set savepoint_support='DISABLED'; +_set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'_; +set max_partitioned_parallelism = 10_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_savepoint_support='DISABLED'; +set max_partitioned_parallelism =_10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set savepoint_support='DISABLED'; +&set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'&; +set max_partitioned_parallelism = 10&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&savepoint_support='DISABLED'; +set max_partitioned_parallelism =&10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set savepoint_support='DISABLED'; +$set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'$; +set max_partitioned_parallelism = 10$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$savepoint_support='DISABLED'; +set max_partitioned_parallelism =$10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set savepoint_support='DISABLED'; +@set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'@; +set max_partitioned_parallelism = 10@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@savepoint_support='DISABLED'; +set max_partitioned_parallelism =@10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set savepoint_support='DISABLED'; +!set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'!; +set max_partitioned_parallelism = 10!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!savepoint_support='DISABLED'; +set max_partitioned_parallelism =!10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set savepoint_support='DISABLED'; +*set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'*; +set max_partitioned_parallelism = 10*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*savepoint_support='DISABLED'; +set max_partitioned_parallelism =*10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set savepoint_support='DISABLED'; +(set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'(; +set max_partitioned_parallelism = 10(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(savepoint_support='DISABLED'; +set max_partitioned_parallelism =(10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set savepoint_support='DISABLED'; +)set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'); +set max_partitioned_parallelism = 10); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)savepoint_support='DISABLED'; +set max_partitioned_parallelism =)10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set savepoint_support='DISABLED'; +-set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'-; +set max_partitioned_parallelism = 10-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-savepoint_support='DISABLED'; +set max_partitioned_parallelism =-10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set savepoint_support='DISABLED'; ++set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'+; +set max_partitioned_parallelism = 10+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+savepoint_support='DISABLED'; +set max_partitioned_parallelism =+10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set savepoint_support='DISABLED'; +-#set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'-#; +set max_partitioned_parallelism = 10-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#savepoint_support='DISABLED'; +set max_partitioned_parallelism =-#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set savepoint_support='DISABLED'; +/set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'/; +set max_partitioned_parallelism = 10/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/savepoint_support='DISABLED'; +set max_partitioned_parallelism =/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set savepoint_support='DISABLED'; +\set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'\; +set max_partitioned_parallelism = 10\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\savepoint_support='DISABLED'; +set max_partitioned_parallelism =\10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set savepoint_support='DISABLED'; +?set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'?; +set max_partitioned_parallelism = 10?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?savepoint_support='DISABLED'; +set max_partitioned_parallelism =?10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set savepoint_support='DISABLED'; +-/set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'-/; +set max_partitioned_parallelism = 10-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/savepoint_support='DISABLED'; +set max_partitioned_parallelism =-/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set savepoint_support='DISABLED'; +/#set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'/#; +set max_partitioned_parallelism = 10/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#savepoint_support='DISABLED'; +set max_partitioned_parallelism =/#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set savepoint_support='DISABLED'; +/-set max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set savepoint_support='DISABLED'/-; +set max_partitioned_parallelism = 10/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-savepoint_support='DISABLED'; +set max_partitioned_parallelism =/-10; diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql index db44cd1b8c0..5c871995ef0 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/ConnectionImplGeneratedSqlScriptTest.sql @@ -1,23 +1,23 @@ NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -26,125 +26,123 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -153,60 +151,58 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:18.835000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:18.835000000Z' +SET AUTOCOMMIT=FALSE; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:34.255000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:34.255000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:18.835000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:18.835000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:34.255000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -221,34 +217,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -257,8 +253,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -301,46 +297,45 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -351,36 +346,28 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -389,173 +376,123 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -564,78 +501,58 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.179000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.179000000Z' +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:34.799000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:34.799000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.179000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.179000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:34.800000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -650,48 +567,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -700,10 +603,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -746,62 +647,45 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -812,207 +696,324 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +ROLLBACK; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.454000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.454000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:35.265000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:35.265000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.454000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:35.265000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1027,34 +1028,55 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -NEW_CONNECTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1063,8 +1085,11 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1107,71 +1132,116 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -1180,125 +1250,195 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -1307,60 +1447,85 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.646000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.646000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:35.813000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:35.813000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.646000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.646000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:35.813000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1375,34 +1540,55 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1411,8 +1597,11 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1455,46 +1644,69 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1505,217 +1717,208 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.930000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.930000000Z' +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:36.310000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:36.310000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.930000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.930000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:36.310000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1730,34 +1933,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -1766,8 +1969,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1810,230 +2013,282 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.158000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.158000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:36.722000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.158000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:20.158000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:36.722000000Z'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null -SHOW VARIABLE COMMIT_RESPONSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2048,27 +2303,41 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2077,7 +2346,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2120,254 +2391,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.345000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.345000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:37.179000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.345000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:37.179000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2383,33 +2654,33 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2419,7 +2690,7 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2463,76 +2734,66 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2542,122 +2803,98 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -2667,57 +2904,48 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.534000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.534000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:37.584000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:37.584000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.534000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:37.584000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2733,33 +2961,26 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -2769,7 +2990,6 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2813,44 +3033,36 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -2862,39 +3074,26 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2902,196 +3101,134 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -3099,86 +3236,59 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.720000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.720000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.051000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:38.051000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.720000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.051000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3192,56 +3302,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -3249,12 +3338,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3296,117 +3382,84 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3414,196 +3467,182 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -3611,86 +3650,77 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.919000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.919000000Z' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.444000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:38.444000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.919000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.444000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3704,56 +3734,49 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -NEW_CONNECTION; -SET READONLY=TRUE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +NEW_CONNECTION; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -3761,12 +3784,11 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3808,282 +3830,305 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -NEW_CONNECTION; -SET READONLY=TRUE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +NEW_CONNECTION; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.116000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.116000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.805000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.116000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.805000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4097,35 +4142,42 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -4133,9 +4185,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4177,283 +4230,255 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +START BATCH DDL; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.236000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:39.124000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.236000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:39.124000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4467,42 +4492,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -4510,10 +4528,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4555,255 +4572,378 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.376000000Z'; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:39.464000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:39.464000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.376000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:39.464000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4817,35 +4957,56 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -4853,9 +5014,12 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4897,220 +5061,279 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; -SET READONLY=TRUE; -SET AUTOCOMMIT=FALSE; SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.507000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.507000000Z' +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:39.865000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:39.865000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.507000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:39.865000000Z'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5124,28 +5347,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5153,8 +5383,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5196,243 +5427,267 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=TRUE; +SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.594000000Z'; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:40.210000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:40.210000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.594000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:40.210000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5447,34 +5702,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5483,8 +5738,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5527,284 +5782,381 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; +SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.672000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.672000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:40.561000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:40.561000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.672000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:40.561000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5819,41 +6171,55 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -5862,9 +6228,11 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5907,87 +6275,113 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -5997,150 +6391,166 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6152,9 +6562,10 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6166,17 +6577,18 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE @@ -6186,77 +6598,84 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.849000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.849000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:41.091000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:41.091000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.849000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:21.849000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:41.091000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -6272,47 +6691,54 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6322,9 +6748,10 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6368,61 +6795,67 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -6433,137 +6866,138 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6575,68 +7009,68 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READONLY=FALSE; +SET READONLY=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.039000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.039000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:41.494000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:41.494000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.039000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:41.494000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -6652,33 +7086,33 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6688,7 +7122,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6732,193 +7166,206 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT UPDATE_COUNT 1 -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -6929,76 +7376,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.160000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.160000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:41.837000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.160000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.160000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:41.837000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7013,34 +7460,41 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -7049,8 +7503,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7093,200 +7548,190 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7297,76 +7742,65 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.296000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.296000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.231000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.296000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.296000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.231000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7381,34 +7815,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -7417,8 +7851,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7461,81 +7895,67 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -7544,130 +7964,83 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7678,9 +8051,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7691,16 +8062,11 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -7709,69 +8075,49 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.426000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.426000000Z' +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.610000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:42.610000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.426000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.426000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.610000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7786,41 +8132,27 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -7829,9 +8161,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7874,54 +8204,36 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -7931,232 +8243,201 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +START BATCH DDL; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.537000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.537000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.932000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.537000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.537000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.932000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8172,33 +8453,33 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -8208,7 +8489,7 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8252,242 +8533,283 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.648000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.648000000Z' +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:43.248000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:43.248000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.648000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.648000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:43.248000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8503,26 +8825,40 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -8532,6 +8868,8 @@ SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8575,66 +8913,86 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -8644,103 +9002,150 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -8752,7 +9157,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -8764,12 +9171,17 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE @@ -8779,57 +9191,77 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.731000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.731000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:43.673000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:43.673000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.731000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:43.673000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:43.673000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -8845,33 +9277,47 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -8881,7 +9327,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -8925,43 +9373,61 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -8972,198 +9438,138 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -9174,95 +9580,69 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; -SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.827000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.827000000Z' +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:44.056000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:44.056000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.827000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:44.056000000Z'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -9277,48 +9657,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -9327,10 +9693,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9373,303 +9737,272 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.946000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:44.385000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:44.385000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.946000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:44.385000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:44.385000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -9685,40 +10018,33 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -9728,8 +10054,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -9773,254 +10098,280 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.044000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:44.830000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:44.830000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.044000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:44.830000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:44.830000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -10035,34 +10386,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -10071,8 +10422,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10115,83 +10466,81 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -10200,167 +10549,130 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10371,11 +10683,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10386,19 +10696,16 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -10407,85 +10714,69 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.140000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.140000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:45.353000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:45.353000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.140000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:45.353000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:45.353000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -10500,55 +10791,41 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -10557,11 +10834,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10604,68 +10879,54 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -10675,207 +10936,232 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.244000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.244000000Z' +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:45.824000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:45.824000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.244000000Z'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:45.824000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:45.824000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -10890,34 +11176,34 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -10926,8 +11212,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10970,71 +11256,73 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11043,104 +11331,88 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11151,8 +11423,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11163,13 +11434,12 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -11178,58 +11448,51 @@ SET READONLY=TRUE; SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.326000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.326000000Z' +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:46.258000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:46.258000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.326000000Z'; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:46.258000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:46.258000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11244,34 +11507,27 @@ SET OPTIMIZER_VERSION=''; SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -11280,8 +11536,7 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11324,44 +11579,38 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -11371,40 +11620,27 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11412,206 +11648,126 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT UPDATE_COUNT 1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -11619,86 +11775,61 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.433000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.433000000Z' +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:46.666000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:46.666000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.433000000Z'; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:46.666000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:46.666000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11712,56 +11843,35 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -11769,12 +11879,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11816,113 +11923,85 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @@ -11932,204 +12011,172 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READONLY=FALSE; @@ -12139,84 +12186,77 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.604000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.604000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:47.089000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:47.089000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.604000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:47.089000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:47.089000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_VERSION='1'; @@ -12232,54 +12272,47 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @@ -12289,10 +12322,9 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @@ -12336,283 +12368,273 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=TRUE; -NEW_CONNECTION; -SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READONLY=TRUE; -NEW_CONNECTION; SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.755000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.755000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:47.541000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:47.541000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.755000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:47.541000000Z'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -12627,34 +12649,34 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -12663,8 +12685,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -12707,286 +12729,260 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.849000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:47.959000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:47.959000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.849000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:47.959000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:47.959000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -13001,41 +12997,34 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13044,9 +13033,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13089,259 +13077,267 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=FALSE; +@EXPECT RESULT_SET 'READONLY',FALSE +SHOW VARIABLE READONLY; SET READONLY=TRUE; +@EXPECT RESULT_SET 'READONLY',TRUE +SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.965000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:48.395000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:48.395000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.965000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:48.395000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:48.395000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' @@ -13356,34 +13352,34 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13392,8 +13388,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13436,68 +13432,75 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -13505,110 +13508,102 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT UPDATE_COUNT 1 +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -13616,50 +13611,52 @@ SET READONLY=TRUE; @EXPECT RESULT_SET 'READONLY',TRUE SHOW VARIABLE READONLY; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','STRONG' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:24.080000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:24.080000000Z' +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:48.817000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:48.817000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:24.080000000Z'; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:48.817000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:48.817000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -13673,28 +13670,28 @@ SET OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; @@ -13702,8 +13699,8 @@ SET OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -13745,44 +13742,47 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT',null SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql index d2201dff1e9..9c66ea40b18 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ClientSideStatementsTest.sql @@ -7167,6 +7167,403 @@ NEW_CONNECTION; @EXPECT EXCEPTION UNIMPLEMENTED show variable/-spanner.savepoint_support; NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +SHOW SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + + + +show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write ; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write ; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write + +; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show +spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show%spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show_spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show&spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show$spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show@spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show!spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show*spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show(spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show)spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show-spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show+spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show-#spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show/spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show\spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show?spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show-/spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show/#spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-show spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.delay_transaction_start_until_first_write/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +show/-spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +SHOW VARIABLE SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; + + + +show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write ; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write ; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write + +; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +show +variable +spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-show variable spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.delay_transaction_start_until_first_write/-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-spanner.delay_transaction_start_until_first_write; +NEW_CONNECTION; show transaction isolation level; NEW_CONNECTION; SHOW TRANSACTION ISOLATION LEVEL; @@ -41041,27886 +41438,35077 @@ begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT rollback work and no/-chain; NEW_CONNECTION; -start batch ddl; +begin transaction; +abort; NEW_CONNECTION; -START BATCH DDL; +begin transaction; +ABORT; NEW_CONNECTION; -start batch ddl; +begin transaction; +abort; NEW_CONNECTION; - start batch ddl; +begin transaction; + abort; NEW_CONNECTION; - start batch ddl; +begin transaction; + abort; NEW_CONNECTION; +begin transaction; -start batch ddl; +abort; NEW_CONNECTION; -start batch ddl ; +begin transaction; +abort ; NEW_CONNECTION; -start batch ddl ; +begin transaction; +abort ; NEW_CONNECTION; -start batch ddl +begin transaction; +abort ; NEW_CONNECTION; -start batch ddl; +begin transaction; +abort; NEW_CONNECTION; -start batch ddl; +begin transaction; +abort; NEW_CONNECTION; -start -batch -ddl; +begin transaction; +abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch ddl; +foo abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl bar; +abort bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch ddl; +%abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl%; +abort%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%ddl; +abort%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch ddl; +_abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl_; +abort_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_ddl; +abort_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch ddl; +&abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl&; +abort&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&ddl; +abort&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch ddl; +$abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl$; +abort$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$ddl; +abort$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch ddl; +@abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl@; +abort@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@ddl; +abort@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch ddl; +!abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl!; +abort!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!ddl; +abort!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch ddl; +*abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl*; +abort*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*ddl; +abort*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch ddl; +(abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl(; +abort(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(ddl; +abort(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch ddl; +)abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl); +abort); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)ddl; +abort); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch ddl; +-abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-; +abort-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-ddl; +abort-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch ddl; ++abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl+; +abort+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+ddl; +abort+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch ddl; +-#abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-#; +abort-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#ddl; +abort-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch ddl; +/abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/; +abort/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/ddl; +abort/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch ddl; +\abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl\; +abort\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\ddl; +abort\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch ddl; +?abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl?; +abort?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?ddl; +abort?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch ddl; +-/abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-/; +abort-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/ddl; +abort-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch ddl; +/#abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/#; +abort/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#ddl; +abort/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch ddl; +/-abort; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/-; +abort/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-ddl; +abort/-; NEW_CONNECTION; -start batch dml; +begin transaction; +abort transaction; NEW_CONNECTION; -START BATCH DML; +begin transaction; +ABORT TRANSACTION; NEW_CONNECTION; -start batch dml; +begin transaction; +abort transaction; NEW_CONNECTION; - start batch dml; +begin transaction; + abort transaction; NEW_CONNECTION; - start batch dml; +begin transaction; + abort transaction; NEW_CONNECTION; +begin transaction; -start batch dml; +abort transaction; NEW_CONNECTION; -start batch dml ; +begin transaction; +abort transaction ; NEW_CONNECTION; -start batch dml ; +begin transaction; +abort transaction ; NEW_CONNECTION; -start batch dml +begin transaction; +abort transaction ; NEW_CONNECTION; -start batch dml; +begin transaction; +abort transaction; NEW_CONNECTION; -start batch dml; +begin transaction; +abort transaction; NEW_CONNECTION; -start -batch -dml; +begin transaction; +abort +transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch dml; +foo abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml bar; +abort transaction bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch dml; +%abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml%; +abort transaction%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%dml; +abort%transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch dml; +_abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml_; +abort transaction_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_dml; +abort_transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch dml; +&abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml&; +abort transaction&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&dml; +abort&transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch dml; +$abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml$; +abort transaction$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$dml; +abort$transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch dml; +@abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml@; +abort transaction@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@dml; +abort@transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch dml; +!abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml!; +abort transaction!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!dml; +abort!transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch dml; +*abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml*; +abort transaction*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*dml; +abort*transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch dml; +(abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml(; +abort transaction(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(dml; +abort(transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch dml; +)abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml); +abort transaction); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)dml; +abort)transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch dml; +-abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-; +abort transaction-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-dml; +abort-transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch dml; ++abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml+; +abort transaction+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+dml; +abort+transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch dml; +-#abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-#; +abort transaction-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#dml; +abort-#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch dml; +/abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/; +abort transaction/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/dml; +abort/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch dml; +\abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml\; +abort transaction\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\dml; +abort\transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch dml; +?abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml?; +abort transaction?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?dml; +abort?transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch dml; +-/abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-/; +abort transaction-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/dml; +abort-/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch dml; +/#abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/#; +abort transaction/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#dml; +abort/#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch dml; +/-abort transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/-; +abort transaction/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-dml; +abort/-transaction; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +abort work; NEW_CONNECTION; -start batch ddl; -RUN BATCH; +begin transaction; +ABORT WORK; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +abort work; NEW_CONNECTION; -start batch ddl; - run batch; +begin transaction; + abort work; NEW_CONNECTION; -start batch ddl; - run batch; +begin transaction; + abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; -run batch; +abort work; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction; +abort work ; NEW_CONNECTION; -start batch ddl; -run batch ; +begin transaction; +abort work ; NEW_CONNECTION; -start batch ddl; -run batch +begin transaction; +abort work ; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +abort work; NEW_CONNECTION; -start batch ddl; -run batch; +begin transaction; +abort work; NEW_CONNECTION; -start batch ddl; -run -batch; +begin transaction; +abort +work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo run batch; +foo abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch bar; +abort work bar; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%run batch; +%abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch%; +abort work%; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run%batch; +abort%work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_run batch; +_abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch_; +abort work_; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run_batch; +abort_work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&run batch; +&abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch&; +abort work&; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run&batch; +abort&work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$run batch; +$abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch$; +abort work$; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run$batch; +abort$work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@run batch; +@abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch@; +abort work@; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run@batch; +abort@work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!run batch; +!abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch!; +abort work!; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run!batch; +abort!work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*run batch; +*abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch*; +abort work*; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run*batch; +abort*work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(run batch; +(abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch(; +abort work(; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run(batch; +abort(work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)run batch; +)abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch); +abort work); NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run)batch; +abort)work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --run batch; +-abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-; +abort work-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-batch; +abort-work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+run batch; ++abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch+; +abort work+; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run+batch; +abort+work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#run batch; +-#abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-#; +abort work-#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-#batch; +abort-#work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/run batch; +/abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/; +abort work/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/batch; +abort/work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\run batch; +\abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch\; +abort work\; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run\batch; +abort\work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?run batch; +?abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch?; +abort work?; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run?batch; +abort?work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/run batch; +-/abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-/; +abort work-/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run-/batch; +abort-/work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#run batch; +/#abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/#; +abort work/#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/#batch; +abort/#work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-run batch; +/-abort work; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/-; +abort work/-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -run/-batch; +abort/-work; NEW_CONNECTION; -start batch ddl; -abort batch; +begin transaction; +abort and no chain; NEW_CONNECTION; -start batch ddl; -ABORT BATCH; +begin transaction; +ABORT AND NO CHAIN; NEW_CONNECTION; -start batch ddl; -abort batch; +begin transaction; +abort and no chain; NEW_CONNECTION; -start batch ddl; - abort batch; +begin transaction; + abort and no chain; NEW_CONNECTION; -start batch ddl; - abort batch; +begin transaction; + abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; -abort batch; +abort and no chain; NEW_CONNECTION; -start batch ddl; -abort batch ; +begin transaction; +abort and no chain ; NEW_CONNECTION; -start batch ddl; -abort batch ; +begin transaction; +abort and no chain ; NEW_CONNECTION; -start batch ddl; -abort batch +begin transaction; +abort and no chain ; NEW_CONNECTION; -start batch ddl; -abort batch; +begin transaction; +abort and no chain; NEW_CONNECTION; -start batch ddl; -abort batch; +begin transaction; +abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; abort -batch; +and +no +chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo abort batch; +foo abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch bar; +abort and no chain bar; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%abort batch; +%abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch%; +abort and no chain%; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort%batch; +abort and no%chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_abort batch; +_abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch_; +abort and no chain_; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort_batch; +abort and no_chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&abort batch; +&abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch&; +abort and no chain&; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort&batch; +abort and no&chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$abort batch; +$abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch$; +abort and no chain$; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort$batch; +abort and no$chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@abort batch; +@abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch@; +abort and no chain@; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort@batch; +abort and no@chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!abort batch; +!abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch!; +abort and no chain!; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort!batch; +abort and no!chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*abort batch; +*abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch*; +abort and no chain*; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort*batch; +abort and no*chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(abort batch; +(abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch(; +abort and no chain(; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort(batch; +abort and no(chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)abort batch; +)abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch); +abort and no chain); NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort)batch; +abort and no)chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --abort batch; +-abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-; +abort and no chain-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-batch; +abort and no-chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+abort batch; ++abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch+; +abort and no chain+; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort+batch; +abort and no+chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#abort batch; +-#abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-#; +abort and no chain-#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-#batch; +abort and no-#chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/abort batch; +/abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/; +abort and no chain/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/batch; +abort and no/chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\abort batch; +\abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch\; +abort and no chain\; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort\batch; +abort and no\chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?abort batch; +?abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch?; +abort and no chain?; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort?batch; +abort and no?chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/abort batch; +-/abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-/; +abort and no chain-/; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-/batch; +abort and no-/chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#abort batch; +/#abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/#; +abort and no chain/#; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/#batch; +abort and no/#chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-abort batch; +/-abort and no chain; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/-; +abort and no chain/-; NEW_CONNECTION; -start batch ddl; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/-batch; +abort and no/-chain; NEW_CONNECTION; -set autocommit = true; +begin transaction; +abort transaction and no chain; NEW_CONNECTION; -SET AUTOCOMMIT = TRUE; +begin transaction; +ABORT TRANSACTION AND NO CHAIN; NEW_CONNECTION; -set autocommit = true; +begin transaction; +abort transaction and no chain; NEW_CONNECTION; - set autocommit = true; +begin transaction; + abort transaction and no chain; NEW_CONNECTION; - set autocommit = true; +begin transaction; + abort transaction and no chain; NEW_CONNECTION; +begin transaction; -set autocommit = true; +abort transaction and no chain; NEW_CONNECTION; -set autocommit = true ; +begin transaction; +abort transaction and no chain ; NEW_CONNECTION; -set autocommit = true ; +begin transaction; +abort transaction and no chain ; NEW_CONNECTION; -set autocommit = true +begin transaction; +abort transaction and no chain ; NEW_CONNECTION; -set autocommit = true; +begin transaction; +abort transaction and no chain; NEW_CONNECTION; -set autocommit = true; +begin transaction; +abort transaction and no chain; NEW_CONNECTION; -set -autocommit -= -true; +begin transaction; +abort +transaction +and +no +chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = true; +foo abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true bar; +abort transaction and no chain bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = true; +%abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true%; +abort transaction and no chain%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%true; +abort transaction and no%chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = true; +_abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true_; +abort transaction and no chain_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_true; +abort transaction and no_chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = true; +&abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true&; +abort transaction and no chain&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&true; +abort transaction and no&chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = true; +$abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true$; +abort transaction and no chain$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$true; +abort transaction and no$chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = true; +@abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true@; +abort transaction and no chain@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@true; +abort transaction and no@chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = true; +!abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true!; +abort transaction and no chain!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!true; +abort transaction and no!chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = true; +*abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true*; +abort transaction and no chain*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*true; +abort transaction and no*chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = true; +(abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true(; +abort transaction and no chain(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(true; +abort transaction and no(chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = true; +)abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true); +abort transaction and no chain); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)true; +abort transaction and no)chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = true; +-abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-; +abort transaction and no chain-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-true; +abort transaction and no-chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = true; ++abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true+; +abort transaction and no chain+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+true; +abort transaction and no+chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = true; +-#abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-#; +abort transaction and no chain-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#true; +abort transaction and no-#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = true; +/abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/; +abort transaction and no chain/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/true; +abort transaction and no/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = true; +\abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true\; +abort transaction and no chain\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\true; +abort transaction and no\chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = true; +?abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true?; +abort transaction and no chain?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?true; +abort transaction and no?chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = true; +-/abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-/; +abort transaction and no chain-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/true; +abort transaction and no-/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = true; +/#abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/#; +abort transaction and no chain/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#true; +abort transaction and no/#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = true; +/-abort transaction and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/-; +abort transaction and no chain/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-true; +abort transaction and no/-chain; NEW_CONNECTION; -set autocommit = false; +begin transaction; +abort work and no chain; NEW_CONNECTION; -SET AUTOCOMMIT = FALSE; +begin transaction; +ABORT WORK AND NO CHAIN; NEW_CONNECTION; -set autocommit = false; +begin transaction; +abort work and no chain; NEW_CONNECTION; - set autocommit = false; +begin transaction; + abort work and no chain; NEW_CONNECTION; - set autocommit = false; +begin transaction; + abort work and no chain; NEW_CONNECTION; +begin transaction; -set autocommit = false; +abort work and no chain; NEW_CONNECTION; -set autocommit = false ; +begin transaction; +abort work and no chain ; NEW_CONNECTION; -set autocommit = false ; +begin transaction; +abort work and no chain ; NEW_CONNECTION; -set autocommit = false +begin transaction; +abort work and no chain ; NEW_CONNECTION; -set autocommit = false; +begin transaction; +abort work and no chain; NEW_CONNECTION; -set autocommit = false; +begin transaction; +abort work and no chain; NEW_CONNECTION; -set -autocommit -= -false; +begin transaction; +abort +work +and +no +chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = false; +foo abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false bar; +abort work and no chain bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = false; +%abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false%; +abort work and no chain%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%false; +abort work and no%chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = false; +_abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false_; +abort work and no chain_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_false; +abort work and no_chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = false; +&abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false&; +abort work and no chain&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&false; +abort work and no&chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = false; +$abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false$; +abort work and no chain$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$false; +abort work and no$chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = false; +@abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false@; +abort work and no chain@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@false; +abort work and no@chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = false; +!abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false!; +abort work and no chain!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!false; +abort work and no!chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = false; +*abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false*; +abort work and no chain*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*false; +abort work and no*chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = false; +(abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false(; +abort work and no chain(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(false; +abort work and no(chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = false; +)abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false); +abort work and no chain); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)false; +abort work and no)chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = false; +-abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-; +abort work and no chain-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-false; +abort work and no-chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = false; ++abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false+; +abort work and no chain+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+false; +abort work and no+chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = false; +-#abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-#; +abort work and no chain-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#false; +abort work and no-#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = false; +/abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/; +abort work and no chain/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/false; +abort work and no/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = false; +\abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false\; +abort work and no chain\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\false; +abort work and no\chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = false; +?abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false?; +abort work and no chain?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?false; +abort work and no?chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = false; +-/abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-/; +abort work and no chain-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/false; +abort work and no-/chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = false; +/#abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/#; +abort work and no chain/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#false; +abort work and no/#chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = false; +/-abort work and no chain; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/-; +abort work and no chain/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-false; +abort work and no/-chain; NEW_CONNECTION; -set autocommit to true; +start batch ddl; NEW_CONNECTION; -SET AUTOCOMMIT TO TRUE; +START BATCH DDL; NEW_CONNECTION; -set autocommit to true; +start batch ddl; NEW_CONNECTION; - set autocommit to true; + start batch ddl; NEW_CONNECTION; - set autocommit to true; + start batch ddl; NEW_CONNECTION; -set autocommit to true; +start batch ddl; NEW_CONNECTION; -set autocommit to true ; +start batch ddl ; NEW_CONNECTION; -set autocommit to true ; +start batch ddl ; NEW_CONNECTION; -set autocommit to true +start batch ddl ; NEW_CONNECTION; -set autocommit to true; +start batch ddl; NEW_CONNECTION; -set autocommit to true; +start batch ddl; NEW_CONNECTION; -set -autocommit -to -true; +start +batch +ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit to true; +foo start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true bar; +start batch ddl bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit to true; +%start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true%; +start batch ddl%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to%true; +start batch%ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit to true; +_start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true_; +start batch ddl_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to_true; +start batch_ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit to true; +&start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true&; +start batch ddl&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to&true; +start batch&ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit to true; +$start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true$; +start batch ddl$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to$true; +start batch$ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit to true; +@start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true@; +start batch ddl@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to@true; +start batch@ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit to true; +!start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true!; +start batch ddl!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to!true; +start batch!ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit to true; +*start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true*; +start batch ddl*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to*true; +start batch*ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit to true; +(start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true(; +start batch ddl(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to(true; +start batch(ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit to true; +)start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true); +start batch ddl); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to)true; +start batch)ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit to true; +-start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-; +start batch ddl-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-true; +start batch-ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit to true; ++start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true+; +start batch ddl+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to+true; +start batch+ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit to true; +-#start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-#; +start batch ddl-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-#true; +start batch-#ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit to true; +/start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/; +start batch ddl/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/true; +start batch/ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit to true; +\start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true\; +start batch ddl\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to\true; +start batch\ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit to true; +?start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true?; +start batch ddl?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to?true; +start batch?ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit to true; +-/start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true-/; +start batch ddl-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-/true; +start batch-/ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit to true; +/#start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/#; +start batch ddl/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/#true; +start batch/#ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit to true; +/-start batch ddl; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to true/-; +start batch ddl/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/-true; +start batch/-ddl; NEW_CONNECTION; -set autocommit to false; +start batch dml; NEW_CONNECTION; -SET AUTOCOMMIT TO FALSE; +START BATCH DML; NEW_CONNECTION; -set autocommit to false; +start batch dml; NEW_CONNECTION; - set autocommit to false; + start batch dml; NEW_CONNECTION; - set autocommit to false; + start batch dml; NEW_CONNECTION; -set autocommit to false; +start batch dml; NEW_CONNECTION; -set autocommit to false ; +start batch dml ; NEW_CONNECTION; -set autocommit to false ; +start batch dml ; NEW_CONNECTION; -set autocommit to false +start batch dml ; NEW_CONNECTION; -set autocommit to false; +start batch dml; NEW_CONNECTION; -set autocommit to false; +start batch dml; NEW_CONNECTION; -set -autocommit -to -false; +start +batch +dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit to false; +foo start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false bar; +start batch dml bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit to false; +%start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false%; +start batch dml%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to%false; +start batch%dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit to false; +_start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false_; +start batch dml_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to_false; +start batch_dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit to false; +&start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false&; +start batch dml&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to&false; +start batch&dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit to false; +$start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false$; +start batch dml$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to$false; +start batch$dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit to false; +@start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false@; +start batch dml@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to@false; +start batch@dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit to false; +!start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false!; +start batch dml!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to!false; +start batch!dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit to false; +*start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false*; +start batch dml*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to*false; +start batch*dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit to false; +(start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false(; +start batch dml(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to(false; +start batch(dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit to false; +)start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false); +start batch dml); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to)false; +start batch)dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit to false; +-start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-; +start batch dml-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-false; +start batch-dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit to false; ++start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false+; +start batch dml+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to+false; +start batch+dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit to false; +-#start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-#; +start batch dml-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-#false; +start batch-#dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit to false; +/start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/; +start batch dml/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/false; +start batch/dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit to false; +\start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false\; +start batch dml\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to\false; +start batch\dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit to false; +?start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false?; +start batch dml?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to?false; +start batch?dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit to false; +-/start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false-/; +start batch dml-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to-/false; +start batch-/dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit to false; +/#start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/#; +start batch dml/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/#false; +start batch/#dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit to false; +/-start batch dml; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to false/-; +start batch dml/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit to/-false; +start batch/-dml; NEW_CONNECTION; -set spanner.readonly = true; +start batch ddl; +run batch; NEW_CONNECTION; -SET SPANNER.READONLY = TRUE; +start batch ddl; +RUN BATCH; NEW_CONNECTION; -set spanner.readonly = true; +start batch ddl; +run batch; NEW_CONNECTION; - set spanner.readonly = true; +start batch ddl; + run batch; NEW_CONNECTION; - set spanner.readonly = true; +start batch ddl; + run batch; NEW_CONNECTION; +start batch ddl; -set spanner.readonly = true; +run batch; NEW_CONNECTION; -set spanner.readonly = true ; +start batch ddl; +run batch ; NEW_CONNECTION; -set spanner.readonly = true ; +start batch ddl; +run batch ; NEW_CONNECTION; -set spanner.readonly = true +start batch ddl; +run batch ; NEW_CONNECTION; -set spanner.readonly = true; +start batch ddl; +run batch; NEW_CONNECTION; -set spanner.readonly = true; +start batch ddl; +run batch; NEW_CONNECTION; -set -spanner.readonly -= -true; +start batch ddl; +run +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly = true; +foo run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true bar; +run batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly = true; +%run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true%; +run batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =%true; +run%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly = true; +_run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true_; +run batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =_true; +run_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly = true; +&run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true&; +run batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =&true; +run&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly = true; +$run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true$; +run batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =$true; +run$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly = true; +@run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true@; +run batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =@true; +run@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly = true; +!run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true!; +run batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =!true; +run!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly = true; +*run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true*; +run batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =*true; +run*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly = true; +(run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true(; +run batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =(true; +run(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly = true; +)run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true); +run batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =)true; +run)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly = true; +-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-; +run batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-true; +run-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly = true; ++run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true+; +run batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =+true; +run+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly = true; +-#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-#; +run batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-#true; +run-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly = true; +/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/; +run batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/true; +run/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly = true; +\run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true\; +run batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =\true; +run\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly = true; +?run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true?; +run batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =?true; +run?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly = true; +-/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true-/; +run batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-/true; +run-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly = true; +/#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/#; +run batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/#true; +run/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly = true; +/-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = true/-; +run batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/-true; +run/-batch; NEW_CONNECTION; -set spanner.readonly = false; +start batch ddl; +abort batch; NEW_CONNECTION; -SET SPANNER.READONLY = FALSE; +start batch ddl; +ABORT BATCH; NEW_CONNECTION; -set spanner.readonly = false; +start batch ddl; +abort batch; NEW_CONNECTION; - set spanner.readonly = false; +start batch ddl; + abort batch; NEW_CONNECTION; - set spanner.readonly = false; +start batch ddl; + abort batch; NEW_CONNECTION; +start batch ddl; -set spanner.readonly = false; +abort batch; NEW_CONNECTION; -set spanner.readonly = false ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set spanner.readonly = false ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set spanner.readonly = false +start batch ddl; +abort batch ; NEW_CONNECTION; -set spanner.readonly = false; +start batch ddl; +abort batch; NEW_CONNECTION; -set spanner.readonly = false; +start batch ddl; +abort batch; NEW_CONNECTION; -set -spanner.readonly -= -false; +start batch ddl; +abort +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly = false; +foo abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false bar; +abort batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly = false; +%abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false%; +abort batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =%false; +abort%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly = false; +_abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false_; +abort batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =_false; +abort_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly = false; +&abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false&; +abort batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =&false; +abort&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly = false; +$abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false$; +abort batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =$false; +abort$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly = false; +@abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false@; +abort batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =@false; +abort@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly = false; +!abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false!; +abort batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =!false; +abort!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly = false; +*abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false*; +abort batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =*false; +abort*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly = false; +(abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false(; +abort batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =(false; +abort(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly = false; +)abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false); +abort batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =)false; +abort)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly = false; +-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-; +abort batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-false; +abort-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly = false; ++abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false+; +abort batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =+false; +abort+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly = false; +-#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-#; +abort batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-#false; +abort-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly = false; +/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/; +abort batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/false; +abort/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly = false; +\abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false\; +abort batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =\false; +abort\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly = false; +?abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false?; +abort batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =?false; +abort?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly = false; +-/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false-/; +abort batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =-/false; +abort-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly = false; +/#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/#; +abort batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/#false; +abort/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly = false; +/-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly = false/-; +abort batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly =/-false; +abort/-batch; NEW_CONNECTION; -set spanner.readonly to true; +set autocommit = true; NEW_CONNECTION; -SET SPANNER.READONLY TO TRUE; +SET AUTOCOMMIT = TRUE; NEW_CONNECTION; -set spanner.readonly to true; +set autocommit = true; NEW_CONNECTION; - set spanner.readonly to true; + set autocommit = true; NEW_CONNECTION; - set spanner.readonly to true; + set autocommit = true; NEW_CONNECTION; -set spanner.readonly to true; +set autocommit = true; NEW_CONNECTION; -set spanner.readonly to true ; +set autocommit = true ; NEW_CONNECTION; -set spanner.readonly to true ; +set autocommit = true ; NEW_CONNECTION; -set spanner.readonly to true +set autocommit = true ; NEW_CONNECTION; -set spanner.readonly to true; +set autocommit = true; NEW_CONNECTION; -set spanner.readonly to true; +set autocommit = true; NEW_CONNECTION; set -spanner.readonly -to +autocommit += true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly to true; +foo set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true bar; +set autocommit = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly to true; +%set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true%; +set autocommit = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to%true; +set autocommit =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly to true; +_set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true_; +set autocommit = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to_true; +set autocommit =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly to true; +&set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true&; +set autocommit = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to&true; +set autocommit =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly to true; +$set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true$; +set autocommit = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to$true; +set autocommit =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly to true; +@set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true@; +set autocommit = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to@true; +set autocommit =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly to true; +!set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true!; +set autocommit = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to!true; +set autocommit =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly to true; +*set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true*; +set autocommit = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to*true; +set autocommit =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly to true; +(set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true(; +set autocommit = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to(true; +set autocommit =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly to true; +)set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true); +set autocommit = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to)true; +set autocommit =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly to true; +-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-; +set autocommit = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-true; +set autocommit =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly to true; ++set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true+; +set autocommit = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to+true; +set autocommit =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly to true; +-#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-#; +set autocommit = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-#true; +set autocommit =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly to true; +/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/; +set autocommit = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/true; +set autocommit =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly to true; +\set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true\; +set autocommit = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to\true; +set autocommit =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly to true; +?set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true?; +set autocommit = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to?true; +set autocommit =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly to true; +-/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true-/; +set autocommit = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-/true; +set autocommit =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly to true; +/#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/#; +set autocommit = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/#true; +set autocommit =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly to true; +/-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to true/-; +set autocommit = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/-true; +set autocommit =/-true; NEW_CONNECTION; -set spanner.readonly to false; +set autocommit = false; NEW_CONNECTION; -SET SPANNER.READONLY TO FALSE; +SET AUTOCOMMIT = FALSE; NEW_CONNECTION; -set spanner.readonly to false; +set autocommit = false; NEW_CONNECTION; - set spanner.readonly to false; + set autocommit = false; NEW_CONNECTION; - set spanner.readonly to false; + set autocommit = false; NEW_CONNECTION; -set spanner.readonly to false; +set autocommit = false; NEW_CONNECTION; -set spanner.readonly to false ; +set autocommit = false ; NEW_CONNECTION; -set spanner.readonly to false ; +set autocommit = false ; NEW_CONNECTION; -set spanner.readonly to false +set autocommit = false ; NEW_CONNECTION; -set spanner.readonly to false; +set autocommit = false; NEW_CONNECTION; -set spanner.readonly to false; +set autocommit = false; NEW_CONNECTION; set -spanner.readonly -to +autocommit += false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.readonly to false; +foo set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false bar; +set autocommit = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.readonly to false; +%set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false%; +set autocommit = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to%false; +set autocommit =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.readonly to false; +_set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false_; +set autocommit = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to_false; +set autocommit =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.readonly to false; +&set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false&; +set autocommit = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to&false; +set autocommit =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.readonly to false; +$set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false$; +set autocommit = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to$false; +set autocommit =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.readonly to false; +@set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false@; +set autocommit = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to@false; +set autocommit =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.readonly to false; +!set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false!; +set autocommit = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to!false; +set autocommit =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.readonly to false; +*set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false*; +set autocommit = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to*false; +set autocommit =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.readonly to false; +(set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false(; +set autocommit = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to(false; +set autocommit =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.readonly to false; +)set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false); +set autocommit = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to)false; +set autocommit =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.readonly to false; +-set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-; +set autocommit = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-false; +set autocommit =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.readonly to false; ++set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false+; +set autocommit = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to+false; +set autocommit =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.readonly to false; +-#set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-#; +set autocommit = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-#false; +set autocommit =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.readonly to false; +/set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/; +set autocommit = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/false; +set autocommit =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.readonly to false; +\set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false\; +set autocommit = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to\false; +set autocommit =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.readonly to false; +?set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false?; +set autocommit = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to?false; +set autocommit =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.readonly to false; +-/set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false-/; +set autocommit = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to-/false; +set autocommit =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.readonly to false; +/#set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/#; +set autocommit = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/#false; +set autocommit =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.readonly to false; +/-set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to false/-; +set autocommit = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.readonly to/-false; +set autocommit =/-false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY = TRUE; +SET AUTOCOMMIT TO TRUE; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally = true; + set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally = true; + set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true ; +set autocommit to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true ; +set autocommit to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true +set autocommit to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = true; +set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; set -spanner.retry_aborts_internally -= +autocommit +to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally = true; +foo set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true bar; +set autocommit to true bar; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally = true; +%set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true%; +set autocommit to true%; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =%true; +set autocommit to%true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally = true; +_set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true_; +set autocommit to true_; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =_true; +set autocommit to_true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally = true; +&set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true&; +set autocommit to true&; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =&true; +set autocommit to&true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally = true; +$set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true$; +set autocommit to true$; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =$true; +set autocommit to$true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally = true; +@set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true@; +set autocommit to true@; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =@true; +set autocommit to@true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally = true; +!set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true!; +set autocommit to true!; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =!true; +set autocommit to!true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally = true; +*set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true*; +set autocommit to true*; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =*true; +set autocommit to*true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally = true; +(set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true(; +set autocommit to true(; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =(true; +set autocommit to(true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally = true; +)set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true); +set autocommit to true); NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =)true; +set autocommit to)true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally = true; +-set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-; +set autocommit to true-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-true; +set autocommit to-true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally = true; ++set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true+; +set autocommit to true+; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =+true; +set autocommit to+true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally = true; +-#set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-#; +set autocommit to true-#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-#true; +set autocommit to-#true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally = true; +/set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/; +set autocommit to true/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/true; +set autocommit to/true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally = true; +\set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true\; +set autocommit to true\; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =\true; +set autocommit to\true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally = true; +?set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true?; +set autocommit to true?; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =?true; +set autocommit to?true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally = true; +-/set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true-/; +set autocommit to true-/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-/true; +set autocommit to-/true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally = true; +/#set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/#; +set autocommit to true/#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/#true; +set autocommit to/#true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally = true; +/-set autocommit to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = true/-; +set autocommit to true/-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/-true; +set autocommit to/-true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false; +set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY = FALSE; +SET AUTOCOMMIT TO FALSE; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false; +set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally = false; + set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally = false; + set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false; +set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false ; +set autocommit to false ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false ; +set autocommit to false ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false +set autocommit to false ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false; +set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally = false; +set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; set -spanner.retry_aborts_internally -= +autocommit +to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally = false; +foo set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false bar; +set autocommit to false bar; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally = false; +%set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false%; +set autocommit to false%; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =%false; +set autocommit to%false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally = false; +_set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false_; +set autocommit to false_; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =_false; +set autocommit to_false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally = false; +&set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false&; +set autocommit to false&; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =&false; +set autocommit to&false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally = false; +$set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false$; +set autocommit to false$; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =$false; +set autocommit to$false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally = false; +@set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false@; +set autocommit to false@; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =@false; +set autocommit to@false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally = false; +!set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false!; +set autocommit to false!; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =!false; +set autocommit to!false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally = false; +*set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false*; +set autocommit to false*; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =*false; +set autocommit to*false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally = false; +(set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false(; +set autocommit to false(; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =(false; +set autocommit to(false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally = false; +)set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false); +set autocommit to false); NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =)false; +set autocommit to)false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally = false; +-set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-; +set autocommit to false-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-false; +set autocommit to-false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally = false; ++set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false+; +set autocommit to false+; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =+false; +set autocommit to+false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally = false; +-#set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-#; +set autocommit to false-#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-#false; +set autocommit to-#false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally = false; +/set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/; +set autocommit to false/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/false; +set autocommit to/false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally = false; +\set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false\; +set autocommit to false\; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =\false; +set autocommit to\false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally = false; +?set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false?; +set autocommit to false?; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =?false; +set autocommit to?false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally = false; +-/set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false-/; +set autocommit to false-/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =-/false; +set autocommit to-/false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally = false; +/#set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/#; +set autocommit to false/#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/#false; +set autocommit to/#false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally = false; +/-set autocommit to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally = false/-; +set autocommit to false/-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally =/-false; +set autocommit to/-false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true; +set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY TO TRUE; +SET SPANNER.READONLY = TRUE; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true; +set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally to true; + set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally to true; + set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true; +set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true ; +set spanner.readonly = true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true ; +set spanner.readonly = true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true +set spanner.readonly = true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true; +set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to true; +set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; set -spanner.retry_aborts_internally -to +spanner.readonly += true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally to true; +foo set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true bar; +set spanner.readonly = true bar; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally to true; +%set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true%; +set spanner.readonly = true%; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to%true; +set spanner.readonly =%true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally to true; +_set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true_; +set spanner.readonly = true_; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to_true; +set spanner.readonly =_true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally to true; +&set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true&; +set spanner.readonly = true&; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to&true; +set spanner.readonly =&true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally to true; +$set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true$; +set spanner.readonly = true$; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to$true; +set spanner.readonly =$true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally to true; +@set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true@; +set spanner.readonly = true@; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to@true; +set spanner.readonly =@true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally to true; +!set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true!; +set spanner.readonly = true!; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to!true; +set spanner.readonly =!true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally to true; +*set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true*; +set spanner.readonly = true*; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to*true; +set spanner.readonly =*true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally to true; +(set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true(; +set spanner.readonly = true(; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to(true; +set spanner.readonly =(true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally to true; +)set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true); +set spanner.readonly = true); NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to)true; +set spanner.readonly =)true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally to true; +-set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-; +set spanner.readonly = true-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-true; +set spanner.readonly =-true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally to true; ++set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true+; +set spanner.readonly = true+; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to+true; +set spanner.readonly =+true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally to true; +-#set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-#; +set spanner.readonly = true-#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-#true; +set spanner.readonly =-#true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally to true; +/set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/; +set spanner.readonly = true/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/true; +set spanner.readonly =/true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally to true; +\set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true\; +set spanner.readonly = true\; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to\true; +set spanner.readonly =\true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally to true; +?set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true?; +set spanner.readonly = true?; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to?true; +set spanner.readonly =?true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally to true; +-/set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true-/; +set spanner.readonly = true-/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-/true; +set spanner.readonly =-/true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally to true; +/#set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/#; +set spanner.readonly = true/#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/#true; +set spanner.readonly =/#true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally to true; +/-set spanner.readonly = true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to true/-; +set spanner.readonly = true/-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/-true; +set spanner.readonly =/-true; NEW_CONNECTION; set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -SET SPANNER.RETRY_ABORTS_INTERNALLY TO FALSE; +SET SPANNER.READONLY = FALSE; NEW_CONNECTION; set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally to false; + set spanner.readonly = false; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; - set spanner.retry_aborts_internally to false; + set spanner.readonly = false; NEW_CONNECTION; + + + set spanner.readonly = false; -set autocommit = false; +NEW_CONNECTION; +set spanner.readonly = false ; +NEW_CONNECTION; +set spanner.readonly = false ; +NEW_CONNECTION; +set spanner.readonly = false + +; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; +set spanner.readonly = false; +NEW_CONNECTION; +set +spanner.readonly += +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly = false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly = false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly =/-false; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; +SET SPANNER.READONLY TO TRUE; +NEW_CONNECTION; +set spanner.readonly to true; +NEW_CONNECTION; + set spanner.readonly to true; +NEW_CONNECTION; + set spanner.readonly to true; +NEW_CONNECTION; -set spanner.retry_aborts_internally to false; +set spanner.readonly to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false ; +set spanner.readonly to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false ; +set spanner.readonly to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false +set spanner.readonly to true ; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false; +set spanner.readonly to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; -set spanner.retry_aborts_internally to false; +set spanner.readonly to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; set -spanner.retry_aborts_internally +spanner.readonly to -false; +true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.retry_aborts_internally to false; +foo set spanner.readonly to true; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false bar; +set spanner.readonly to true bar; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.retry_aborts_internally to false; +%set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to%true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to_true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to&true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to$true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to@true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to!true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to*true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to(true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to)true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to+true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to\true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to?true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-/true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/#true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly to true; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to true/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/-true; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +SET SPANNER.READONLY TO FALSE; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; + set spanner.readonly to false; +NEW_CONNECTION; + set spanner.readonly to false; +NEW_CONNECTION; + + + +set spanner.readonly to false; +NEW_CONNECTION; +set spanner.readonly to false ; +NEW_CONNECTION; +set spanner.readonly to false ; +NEW_CONNECTION; +set spanner.readonly to false + +; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +set spanner.readonly to false; +NEW_CONNECTION; +set +spanner.readonly +to +false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to%false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to_false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to&false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to$false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to@false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to!false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to*false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to(false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to)false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to+false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to\false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to?false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to-/false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/#false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.readonly to false; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to false/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.readonly to/-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY = TRUE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally += +true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =%true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =_true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =&true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =$true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =@true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =!true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =*true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =(true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =)true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =+true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =\true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =?true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally = true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = true/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY = FALSE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally += +false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =%false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =_false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =&false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =$false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =@false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =!false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =*false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =(false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =)false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =+false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =\false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =?false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =-/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally = false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally = false/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally =/-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY TO TRUE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally +to +true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to%true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to_true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to&true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to$true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to@true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to!true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to*true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to(true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to)true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to+true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to\true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to?true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-/true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/#true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally to true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to true/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/-true; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +SET SPANNER.RETRY_ABORTS_INTERNALLY TO FALSE; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; + + + +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false ; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false + +; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +set +spanner.retry_aborts_internally +to +false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false bar; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false%; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to%false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false_; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to_false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false&; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to&false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false$; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to$false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false@; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to@false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false!; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to!false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false*; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to*false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false(; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to(false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false); +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to)false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false+; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to+false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false\; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to\false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false?; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to?false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false-/; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to-/false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/#; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/#false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.retry_aborts_internally to false; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to false/-; +NEW_CONNECTION; +set spanner.readonly = false; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.retry_aborts_internally to/-false; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='partitioned_non_atomic'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='transactional'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode='TRANSACTIONAL'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-spanner.autocommit_dml_mode='TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE TO 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'partitioned_non_atomic'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode +to +'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to%'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to_'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to&'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to$'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to@'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to!'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to*'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to('PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to)'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to+'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-#'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to\'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to?'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-/'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/#'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/-'PARTITIONED_NON_ATOMIC'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +SET SPANNER.AUTOCOMMIT_DML_MODE TO 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'transactional'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; + set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; + + + +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' + +; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +set +spanner.autocommit_dml_mode +to +'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to%'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to_'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to&'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to$'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to@'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to!'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to*'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to('TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to)'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to+'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-#'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to\'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to?'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to-/'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/#'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set spanner.autocommit_dml_mode to/-'TRANSACTIONAL'; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT=DEFAULT; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; + set statement_timeout=default; +NEW_CONNECTION; + set statement_timeout=default; +NEW_CONNECTION; + + + +set statement_timeout=default; +NEW_CONNECTION; +set statement_timeout=default ; +NEW_CONNECTION; +set statement_timeout=default ; +NEW_CONNECTION; +set statement_timeout=default + +; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +set statement_timeout=default; +NEW_CONNECTION; +set +statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout=default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=default/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout=default; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='1S'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + set statement_timeout='1s'; +NEW_CONNECTION; + + + +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' ; +NEW_CONNECTION; +set statement_timeout='1s' + +; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='1s'; +NEW_CONNECTION; +set +statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='1s'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='1s'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='100MS'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + set statement_timeout='100ms'; +NEW_CONNECTION; + + + +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' ; +NEW_CONNECTION; +set statement_timeout='100ms' + +; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout='100ms'; +NEW_CONNECTION; +set +statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='100ms'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='100ms'; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT=100; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; + set statement_timeout=100; +NEW_CONNECTION; + set statement_timeout=100; +NEW_CONNECTION; + + + +set statement_timeout=100; +NEW_CONNECTION; +set statement_timeout=100 ; +NEW_CONNECTION; +set statement_timeout=100 ; +NEW_CONNECTION; +set statement_timeout=100 + +; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +set statement_timeout=100; +NEW_CONNECTION; +set +statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100 bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout=100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout=100/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout=100; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='10000US'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + set statement_timeout='10000us'; +NEW_CONNECTION; + + + +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' ; +NEW_CONNECTION; +set statement_timeout='10000us' + +; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='10000us'; +NEW_CONNECTION; +set +statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='10000us'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='10000us'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT='9223372036854775807NS'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; + + + +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns' + +; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set +statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set%statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set_statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set&statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set$statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set@statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set!statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set*statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set(statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set)statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set+statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set\statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set?statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set-/statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/#statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout='9223372036854775807ns'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set/-statement_timeout='9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO DEFAULT; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; + set statement_timeout to default; +NEW_CONNECTION; + set statement_timeout to default; +NEW_CONNECTION; + + + +set statement_timeout to default; +NEW_CONNECTION; +set statement_timeout to default ; +NEW_CONNECTION; +set statement_timeout to default ; +NEW_CONNECTION; +set statement_timeout to default + +; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +set statement_timeout to default; +NEW_CONNECTION; +set +statement_timeout +to +default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to(default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to default/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-default; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '1S'; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; + set statement_timeout to '1s'; +NEW_CONNECTION; + set statement_timeout to '1s'; +NEW_CONNECTION; + + + +set statement_timeout to '1s'; +NEW_CONNECTION; +set statement_timeout to '1s' ; +NEW_CONNECTION; +set statement_timeout to '1s' ; +NEW_CONNECTION; +set statement_timeout to '1s' + +; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +set statement_timeout to '1s'; +NEW_CONNECTION; +set +statement_timeout +to +'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '1s'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '1s'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'1s'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '100MS'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; + set statement_timeout to '100ms'; +NEW_CONNECTION; + set statement_timeout to '100ms'; +NEW_CONNECTION; + + + +set statement_timeout to '100ms'; +NEW_CONNECTION; +set statement_timeout to '100ms' ; +NEW_CONNECTION; +set statement_timeout to '100ms' ; +NEW_CONNECTION; +set statement_timeout to '100ms' + +; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +set statement_timeout to '100ms'; +NEW_CONNECTION; +set +statement_timeout +to +'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '100ms'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '100ms'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'100ms'; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO 100; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; + set statement_timeout to 100; +NEW_CONNECTION; + set statement_timeout to 100; +NEW_CONNECTION; + + + +set statement_timeout to 100; +NEW_CONNECTION; +set statement_timeout to 100 ; +NEW_CONNECTION; +set statement_timeout to 100 ; +NEW_CONNECTION; +set statement_timeout to 100 + +; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +set statement_timeout to 100; +NEW_CONNECTION; +set +statement_timeout +to +100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100 bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to(100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to 100; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to 100/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-100; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '10000US'; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; + set statement_timeout to '10000us'; +NEW_CONNECTION; + set statement_timeout to '10000us'; +NEW_CONNECTION; + + + +set statement_timeout to '10000us'; +NEW_CONNECTION; +set statement_timeout to '10000us' ; +NEW_CONNECTION; +set statement_timeout to '10000us' ; +NEW_CONNECTION; +set statement_timeout to '10000us' + +; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +set statement_timeout to '10000us'; +NEW_CONNECTION; +set +statement_timeout +to +'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '10000us'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '10000us'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'10000us'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +SET STATEMENT_TIMEOUT TO '9223372036854775807NS'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; + set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; + + + +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns' ; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns' + +; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +set +statement_timeout +to +'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns' bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to%'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to_'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to&'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to$'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to@'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to!'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to*'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to('9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to)'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to+'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-#'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to\'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to?'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to-/'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/#'9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set statement_timeout to '9223372036854775807ns'; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to '9223372036854775807ns'/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set statement_timeout to/-'9223372036854775807ns'; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION READ ONLY; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; + set transaction read only; +NEW_CONNECTION; +set autocommit = false; + set transaction read only; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set transaction read only ; +NEW_CONNECTION; +set autocommit = false; +set transaction read only ; +NEW_CONNECTION; +set autocommit = false; +set transaction read only + +; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set transaction read only; +NEW_CONNECTION; +set autocommit = false; +set +transaction +read +only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read%only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read_only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read&only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read$only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read@only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read!only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read*only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read(only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read)only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read+only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-#only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read\only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read?only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-/only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/#only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction read only; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read only/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/-only; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION READ WRITE; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; + set transaction read write; +NEW_CONNECTION; +set autocommit = false; + set transaction read write; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set transaction read write ; +NEW_CONNECTION; +set autocommit = false; +set transaction read write ; +NEW_CONNECTION; +set autocommit = false; +set transaction read write + +; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set transaction read write; +NEW_CONNECTION; +set autocommit = false; +set +transaction +read +write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read%write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read_write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read&write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read$write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read@write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read!write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read*write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read(write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read)write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read+write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-#write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read\write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read?write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read-/write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/#write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction read write; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read write/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction read/-write; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION ISOLATION LEVEL DEFAULT; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; + set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; + set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default ; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default ; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default + +; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +set +transaction +isolation +level +default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level%default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level_default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level&default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level$default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level@default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level!default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level*default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level(default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level)default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level+default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-#default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level\default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level?default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-/default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/#default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction isolation level default; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level default/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/-default; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; + set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; + set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; + + + +set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable ; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable ; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable + +; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +set +transaction +isolation +level +serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable bar; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable%; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level%serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable_; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level_serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable&; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level&serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable$; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level$serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable@; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level@serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable!; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level!serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable*; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level*serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable(; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level(serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable); +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level)serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable+; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level+serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable-#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-#serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable\; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level\serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable?; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level?serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable-/; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level-/serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable/#; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/#serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set transaction isolation level serializable; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level serializable/-; +NEW_CONNECTION; +set autocommit = false; +@EXPECT EXCEPTION INVALID_ARGUMENT +set transaction isolation level/-serializable; +NEW_CONNECTION; +set session characteristics as transaction read only; +NEW_CONNECTION; +SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY; +NEW_CONNECTION; +set session characteristics as transaction read only; +NEW_CONNECTION; + set session characteristics as transaction read only; +NEW_CONNECTION; + set session characteristics as transaction read only; +NEW_CONNECTION; + + + +set session characteristics as transaction read only; +NEW_CONNECTION; +set session characteristics as transaction read only ; +NEW_CONNECTION; +set session characteristics as transaction read only ; +NEW_CONNECTION; +set session characteristics as transaction read only + +; +NEW_CONNECTION; +set session characteristics as transaction read only; +NEW_CONNECTION; +set session characteristics as transaction read only; +NEW_CONNECTION; +set +session +characteristics +as +transaction +read +only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read%only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read_only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read&only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read$only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read@only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read!only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read*only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read(only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read)only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read+only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-#only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read\only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read?only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-/only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/#only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set session characteristics as transaction read only; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read only/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/-only; +NEW_CONNECTION; +set session characteristics as transaction read write; +NEW_CONNECTION; +SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE; +NEW_CONNECTION; +set session characteristics as transaction read write; +NEW_CONNECTION; + set session characteristics as transaction read write; +NEW_CONNECTION; + set session characteristics as transaction read write; +NEW_CONNECTION; + + + +set session characteristics as transaction read write; +NEW_CONNECTION; +set session characteristics as transaction read write ; +NEW_CONNECTION; +set session characteristics as transaction read write ; +NEW_CONNECTION; +set session characteristics as transaction read write + +; +NEW_CONNECTION; +set session characteristics as transaction read write; +NEW_CONNECTION; +set session characteristics as transaction read write; +NEW_CONNECTION; +set +session +characteristics +as +transaction +read +write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read%write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read_write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read&write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read$write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read@write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read!write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read*write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read(write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read)write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read+write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-#write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read\write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read?write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read-/write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/#write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set session characteristics as transaction read write; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read write/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction read/-write; +NEW_CONNECTION; +set session characteristics as transaction isolation level default; +NEW_CONNECTION; +SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL DEFAULT; +NEW_CONNECTION; +set session characteristics as transaction isolation level default; +NEW_CONNECTION; + set session characteristics as transaction isolation level default; +NEW_CONNECTION; + set session characteristics as transaction isolation level default; +NEW_CONNECTION; + + + +set session characteristics as transaction isolation level default; +NEW_CONNECTION; +set session characteristics as transaction isolation level default ; +NEW_CONNECTION; +set session characteristics as transaction isolation level default ; +NEW_CONNECTION; +set session characteristics as transaction isolation level default + +; +NEW_CONNECTION; +set session characteristics as transaction isolation level default; +NEW_CONNECTION; +set session characteristics as transaction isolation level default; +NEW_CONNECTION; +set +session +characteristics +as +transaction +isolation +level +default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default%; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level%default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +_set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default_; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level_default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +&set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default&; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level&default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +$set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default$; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level$default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +@set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default@; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level@default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +!set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default!; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level!default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +*set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default*; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level*default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +(set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default(; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level(default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +)set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default); +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level)default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level-default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT ++set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default+; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level+default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-#set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default-#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level-#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +\set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default\; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level\default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +?set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default?; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level?default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +-/set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default-/; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level-/default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/#set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default/#; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level/#default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +/-set session characteristics as transaction isolation level default; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level default/-; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level/-default; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; +SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; + set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; + set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; + + + +set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable ; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable ; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable + +; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; +set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; +set +session +characteristics +as +transaction +isolation +level +serializable; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +foo set session characteristics as transaction isolation level serializable; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +set session characteristics as transaction isolation level serializable bar; +NEW_CONNECTION; +@EXPECT EXCEPTION INVALID_ARGUMENT +%set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false%; +set session characteristics as transaction isolation level serializable%; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to%false; +set session characteristics as transaction isolation level%serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.retry_aborts_internally to false; +_set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false_; +set session characteristics as transaction isolation level serializable_; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to_false; +set session characteristics as transaction isolation level_serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.retry_aborts_internally to false; +&set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false&; +set session characteristics as transaction isolation level serializable&; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to&false; +set session characteristics as transaction isolation level&serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.retry_aborts_internally to false; +$set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false$; +set session characteristics as transaction isolation level serializable$; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to$false; +set session characteristics as transaction isolation level$serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.retry_aborts_internally to false; +@set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false@; +set session characteristics as transaction isolation level serializable@; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to@false; +set session characteristics as transaction isolation level@serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.retry_aborts_internally to false; +!set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false!; +set session characteristics as transaction isolation level serializable!; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to!false; +set session characteristics as transaction isolation level!serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.retry_aborts_internally to false; +*set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false*; +set session characteristics as transaction isolation level serializable*; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to*false; +set session characteristics as transaction isolation level*serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.retry_aborts_internally to false; +(set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false(; +set session characteristics as transaction isolation level serializable(; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to(false; +set session characteristics as transaction isolation level(serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.retry_aborts_internally to false; +)set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false); +set session characteristics as transaction isolation level serializable); NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to)false; +set session characteristics as transaction isolation level)serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.retry_aborts_internally to false; +-set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-; +set session characteristics as transaction isolation level serializable-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-false; +set session characteristics as transaction isolation level-serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.retry_aborts_internally to false; ++set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false+; +set session characteristics as transaction isolation level serializable+; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to+false; +set session characteristics as transaction isolation level+serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.retry_aborts_internally to false; +-#set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-#; +set session characteristics as transaction isolation level serializable-#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-#false; +set session characteristics as transaction isolation level-#serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.retry_aborts_internally to false; +/set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/; +set session characteristics as transaction isolation level serializable/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/false; +set session characteristics as transaction isolation level/serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.retry_aborts_internally to false; +\set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false\; +set session characteristics as transaction isolation level serializable\; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to\false; +set session characteristics as transaction isolation level\serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.retry_aborts_internally to false; +?set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false?; +set session characteristics as transaction isolation level serializable?; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to?false; +set session characteristics as transaction isolation level?serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.retry_aborts_internally to false; +-/set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false-/; +set session characteristics as transaction isolation level serializable-/; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to-/false; +set session characteristics as transaction isolation level-/serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.retry_aborts_internally to false; +/#set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/#; +set session characteristics as transaction isolation level serializable/#; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/#false; +set session characteristics as transaction isolation level/#serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.retry_aborts_internally to false; +/-set session characteristics as transaction isolation level serializable; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to false/-; +set session characteristics as transaction isolation level serializable/-; NEW_CONNECTION; -set spanner.readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.retry_aborts_internally to/-false; +set session characteristics as transaction isolation level/-serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +SET DEFAULT_TRANSACTION_ISOLATION=SERIALIZABLE; NEW_CONNECTION; -set spanner.autocommit_dml_mode='partitioned_non_atomic'; +set default_transaction_isolation=serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set default_transaction_isolation=serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set default_transaction_isolation=serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' +set default_transaction_isolation=serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation=serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation=serializable; NEW_CONNECTION; set -spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +foo set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +set default_transaction_isolation=serializable bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +%set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +set default_transaction_isolation=serializable%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set%default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +_set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +set default_transaction_isolation=serializable_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set_default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +&set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +set default_transaction_isolation=serializable&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set&default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +$set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +set default_transaction_isolation=serializable$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set$default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +@set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +set default_transaction_isolation=serializable@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set@default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +!set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +set default_transaction_isolation=serializable!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set!default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +*set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +set default_transaction_isolation=serializable*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set*default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +(set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +set default_transaction_isolation=serializable(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set(default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +)set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +set default_transaction_isolation=serializable); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set)default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +set default_transaction_isolation=serializable-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; ++set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +set default_transaction_isolation=serializable+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set+default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-#set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +set default_transaction_isolation=serializable-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-#default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +set default_transaction_isolation=serializable/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +\set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +set default_transaction_isolation=serializable\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set\default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +?set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +set default_transaction_isolation=serializable?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set?default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-/set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +set default_transaction_isolation=serializable-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-/default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/#set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +set default_transaction_isolation=serializable/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/#default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/-set default_transaction_isolation=serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +set default_transaction_isolation=serializable/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/-default_transaction_isolation=serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +SET DEFAULT_TRANSACTION_ISOLATION TO SERIALIZABLE; NEW_CONNECTION; -set spanner.autocommit_dml_mode='transactional'; +set default_transaction_isolation to serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='TRANSACTIONAL'; + set default_transaction_isolation to serializable; NEW_CONNECTION; - set spanner.autocommit_dml_mode='TRANSACTIONAL'; + set default_transaction_isolation to serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' ; +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL' +set default_transaction_isolation to serializable ; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to serializable; NEW_CONNECTION; set -spanner.autocommit_dml_mode='TRANSACTIONAL'; +default_transaction_isolation +to +serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode='TRANSACTIONAL'; +foo set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL' bar; +set default_transaction_isolation to serializable bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode='TRANSACTIONAL'; +%set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'%; +set default_transaction_isolation to serializable%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to%serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode='TRANSACTIONAL'; +_set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'_; +set default_transaction_isolation to serializable_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to_serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode='TRANSACTIONAL'; +&set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'&; +set default_transaction_isolation to serializable&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to&serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode='TRANSACTIONAL'; +$set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'$; +set default_transaction_isolation to serializable$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to$serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode='TRANSACTIONAL'; +@set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'@; +set default_transaction_isolation to serializable@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to@serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode='TRANSACTIONAL'; +!set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'!; +set default_transaction_isolation to serializable!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to!serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode='TRANSACTIONAL'; +*set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'*; +set default_transaction_isolation to serializable*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to*serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode='TRANSACTIONAL'; +(set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'(; +set default_transaction_isolation to serializable(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to(serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode='TRANSACTIONAL'; +)set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'); +set default_transaction_isolation to serializable); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to)serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-; +set default_transaction_isolation to serializable-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to-serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode='TRANSACTIONAL'; ++set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'+; +set default_transaction_isolation to serializable+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to+serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-#set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-#; +set default_transaction_isolation to serializable-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to-#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/; +set default_transaction_isolation to serializable/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode='TRANSACTIONAL'; +\set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'\; +set default_transaction_isolation to serializable\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to\serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode='TRANSACTIONAL'; +?set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'?; +set default_transaction_isolation to serializable?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to?serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode='TRANSACTIONAL'; +-/set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'-/; +set default_transaction_isolation to serializable-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to-/serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/#set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/#; +set default_transaction_isolation to serializable/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to/#serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode='TRANSACTIONAL'; +/-set default_transaction_isolation to serializable; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode='TRANSACTIONAL'/-; +set default_transaction_isolation to serializable/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.autocommit_dml_mode='TRANSACTIONAL'; +set default_transaction_isolation to/-serializable; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE TO 'PARTITIONED_NON_ATOMIC'; +SET DEFAULT_TRANSACTION_ISOLATION TO 'SERIALIZABLE'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'partitioned_non_atomic'; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; + set default_transaction_isolation to 'serializable'; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; + set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' ; +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' +set default_transaction_isolation to 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to 'serializable'; NEW_CONNECTION; set -spanner.autocommit_dml_mode +default_transaction_isolation to -'PARTITIONED_NON_ATOMIC'; +'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +foo set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC' bar; +set default_transaction_isolation to 'serializable' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +%set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'%; +set default_transaction_isolation to 'serializable'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to%'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to%'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +_set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'_; +set default_transaction_isolation to 'serializable'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to_'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to_'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +&set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'&; +set default_transaction_isolation to 'serializable'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to&'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to&'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +$set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'$; +set default_transaction_isolation to 'serializable'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to$'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to$'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +@set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'@; +set default_transaction_isolation to 'serializable'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to@'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to@'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +!set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'!; +set default_transaction_isolation to 'serializable'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to!'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to!'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +*set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'*; +set default_transaction_isolation to 'serializable'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to*'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to*'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +(set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'(; +set default_transaction_isolation to 'serializable'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to('PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to('serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +)set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'); +set default_transaction_isolation to 'serializable'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to)'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to)'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-; +set default_transaction_isolation to 'serializable'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to-'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; ++set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'+; +set default_transaction_isolation to 'serializable'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to+'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to+'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-#set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-#; +set default_transaction_isolation to 'serializable'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-#'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to-#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/; +set default_transaction_isolation to 'serializable'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +\set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'\; +set default_transaction_isolation to 'serializable'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to\'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to\'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +?set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'?; +set default_transaction_isolation to 'serializable'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to?'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to?'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +-/set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'-/; +set default_transaction_isolation to 'serializable'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-/'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to-/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/#set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/#; +set default_transaction_isolation to 'serializable'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/#'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to/#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'; +/-set default_transaction_isolation to 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'PARTITIONED_NON_ATOMIC'/-; +set default_transaction_isolation to 'serializable'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/-'PARTITIONED_NON_ATOMIC'; +set default_transaction_isolation to/-'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -SET SPANNER.AUTOCOMMIT_DML_MODE TO 'TRANSACTIONAL'; +SET DEFAULT_TRANSACTION_ISOLATION = 'SERIALIZABLE'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'transactional'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; + set default_transaction_isolation = 'serializable'; NEW_CONNECTION; - set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; + set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' ; +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' +set default_transaction_isolation = 'serializable' ; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +set default_transaction_isolation = 'serializable'; NEW_CONNECTION; set -spanner.autocommit_dml_mode -to -'TRANSACTIONAL'; +default_transaction_isolation += +'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +foo set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL' bar; +set default_transaction_isolation = 'serializable' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +%set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'%; +set default_transaction_isolation = 'serializable'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to%'TRANSACTIONAL'; +set default_transaction_isolation =%'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +_set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'_; +set default_transaction_isolation = 'serializable'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to_'TRANSACTIONAL'; +set default_transaction_isolation =_'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +&set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'&; +set default_transaction_isolation = 'serializable'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to&'TRANSACTIONAL'; +set default_transaction_isolation =&'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +$set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'$; +set default_transaction_isolation = 'serializable'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to$'TRANSACTIONAL'; +set default_transaction_isolation =$'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +@set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'@; +set default_transaction_isolation = 'serializable'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to@'TRANSACTIONAL'; +set default_transaction_isolation =@'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +!set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'!; +set default_transaction_isolation = 'serializable'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to!'TRANSACTIONAL'; +set default_transaction_isolation =!'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +*set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'*; +set default_transaction_isolation = 'serializable'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to*'TRANSACTIONAL'; +set default_transaction_isolation =*'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +(set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'(; +set default_transaction_isolation = 'serializable'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to('TRANSACTIONAL'; +set default_transaction_isolation =('serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +)set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'); +set default_transaction_isolation = 'serializable'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to)'TRANSACTIONAL'; +set default_transaction_isolation =)'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-; +set default_transaction_isolation = 'serializable'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-'TRANSACTIONAL'; +set default_transaction_isolation =-'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; ++set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'+; +set default_transaction_isolation = 'serializable'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to+'TRANSACTIONAL'; +set default_transaction_isolation =+'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-#set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-#; +set default_transaction_isolation = 'serializable'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-#'TRANSACTIONAL'; +set default_transaction_isolation =-#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/; +set default_transaction_isolation = 'serializable'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/'TRANSACTIONAL'; +set default_transaction_isolation =/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +\set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'\; +set default_transaction_isolation = 'serializable'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to\'TRANSACTIONAL'; +set default_transaction_isolation =\'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +?set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'?; +set default_transaction_isolation = 'serializable'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to?'TRANSACTIONAL'; +set default_transaction_isolation =?'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +-/set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'-/; +set default_transaction_isolation = 'serializable'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to-/'TRANSACTIONAL'; +set default_transaction_isolation =-/'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/#set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/#; +set default_transaction_isolation = 'serializable'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/#'TRANSACTIONAL'; +set default_transaction_isolation =/#'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.autocommit_dml_mode to 'TRANSACTIONAL'; +/-set default_transaction_isolation = 'serializable'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to 'TRANSACTIONAL'/-; +set default_transaction_isolation = 'serializable'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.autocommit_dml_mode to/-'TRANSACTIONAL'; +set default_transaction_isolation =/-'serializable'; NEW_CONNECTION; -set statement_timeout=default; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=DEFAULT; +SET DEFAULT_TRANSACTION_ISOLATION = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout=default; +set default_transaction_isolation = "serializable"; NEW_CONNECTION; - set statement_timeout=default; + set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; - set statement_timeout=default; + set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout=default; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout=default ; +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout=default ; +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout=default +set default_transaction_isolation = "SERIALIZABLE" ; NEW_CONNECTION; -set statement_timeout=default; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout=default; +set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; set -statement_timeout=default; +default_transaction_isolation += +"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=default; +foo set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default bar; +set default_transaction_isolation = "SERIALIZABLE" bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=default; +%set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default%; +set default_transaction_isolation = "SERIALIZABLE"%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=default; +set default_transaction_isolation =%"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=default; +_set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default_; +set default_transaction_isolation = "SERIALIZABLE"_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=default; +set default_transaction_isolation =_"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=default; +&set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default&; +set default_transaction_isolation = "SERIALIZABLE"&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=default; +set default_transaction_isolation =&"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=default; +$set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default$; +set default_transaction_isolation = "SERIALIZABLE"$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=default; +set default_transaction_isolation =$"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=default; +@set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default@; +set default_transaction_isolation = "SERIALIZABLE"@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=default; +set default_transaction_isolation =@"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=default; +!set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default!; +set default_transaction_isolation = "SERIALIZABLE"!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=default; +set default_transaction_isolation =!"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=default; +*set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default*; +set default_transaction_isolation = "SERIALIZABLE"*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=default; +set default_transaction_isolation =*"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=default; +(set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default(; +set default_transaction_isolation = "SERIALIZABLE"(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=default; +set default_transaction_isolation =("SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=default; +)set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default); +set default_transaction_isolation = "SERIALIZABLE"); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=default; +set default_transaction_isolation =)"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=default; +-set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-; +set default_transaction_isolation = "SERIALIZABLE"-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=default; +set default_transaction_isolation =-"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=default; ++set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default+; +set default_transaction_isolation = "SERIALIZABLE"+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=default; +set default_transaction_isolation =+"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=default; +-#set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-#; +set default_transaction_isolation = "SERIALIZABLE"-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=default; +set default_transaction_isolation =-#"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=default; +/set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/; +set default_transaction_isolation = "SERIALIZABLE"/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=default; +set default_transaction_isolation =/"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=default; +\set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default\; +set default_transaction_isolation = "SERIALIZABLE"\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=default; +set default_transaction_isolation =\"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=default; +?set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default?; +set default_transaction_isolation = "SERIALIZABLE"?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=default; +set default_transaction_isolation =?"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=default; +-/set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default-/; +set default_transaction_isolation = "SERIALIZABLE"-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=default; +set default_transaction_isolation =-/"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=default; +/#set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/#; +set default_transaction_isolation = "SERIALIZABLE"/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=default; +set default_transaction_isolation =/#"SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=default; +/-set default_transaction_isolation = "SERIALIZABLE"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=default/-; +set default_transaction_isolation = "SERIALIZABLE"/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=default; +set default_transaction_isolation =/-"SERIALIZABLE"; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation = DEFAULT; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='1S'; +SET DEFAULT_TRANSACTION_ISOLATION = DEFAULT; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation = default; NEW_CONNECTION; - set statement_timeout='1s'; + set default_transaction_isolation = DEFAULT; NEW_CONNECTION; - set statement_timeout='1s'; + set default_transaction_isolation = DEFAULT; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation = DEFAULT; NEW_CONNECTION; -set statement_timeout='1s' ; +set default_transaction_isolation = DEFAULT ; NEW_CONNECTION; -set statement_timeout='1s' ; +set default_transaction_isolation = DEFAULT ; NEW_CONNECTION; -set statement_timeout='1s' +set default_transaction_isolation = DEFAULT ; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation = DEFAULT; NEW_CONNECTION; -set statement_timeout='1s'; +set default_transaction_isolation = DEFAULT; NEW_CONNECTION; set -statement_timeout='1s'; +default_transaction_isolation += +DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='1s'; +foo set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s' bar; +set default_transaction_isolation = DEFAULT bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='1s'; +%set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'%; +set default_transaction_isolation = DEFAULT%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='1s'; +set default_transaction_isolation =%DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='1s'; +_set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'_; +set default_transaction_isolation = DEFAULT_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='1s'; +set default_transaction_isolation =_DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='1s'; +&set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'&; +set default_transaction_isolation = DEFAULT&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='1s'; +set default_transaction_isolation =&DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='1s'; +$set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'$; +set default_transaction_isolation = DEFAULT$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='1s'; +set default_transaction_isolation =$DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='1s'; +@set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'@; +set default_transaction_isolation = DEFAULT@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='1s'; +set default_transaction_isolation =@DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='1s'; +!set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'!; +set default_transaction_isolation = DEFAULT!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='1s'; +set default_transaction_isolation =!DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='1s'; +*set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'*; +set default_transaction_isolation = DEFAULT*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='1s'; +set default_transaction_isolation =*DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='1s'; +(set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'(; +set default_transaction_isolation = DEFAULT(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='1s'; +set default_transaction_isolation =(DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='1s'; +)set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'); +set default_transaction_isolation = DEFAULT); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='1s'; +set default_transaction_isolation =)DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='1s'; +-set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-; +set default_transaction_isolation = DEFAULT-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='1s'; +set default_transaction_isolation =-DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='1s'; ++set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'+; +set default_transaction_isolation = DEFAULT+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='1s'; +set default_transaction_isolation =+DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='1s'; +-#set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-#; +set default_transaction_isolation = DEFAULT-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='1s'; +set default_transaction_isolation =-#DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='1s'; +/set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/; +set default_transaction_isolation = DEFAULT/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='1s'; +set default_transaction_isolation =/DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='1s'; +\set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'\; +set default_transaction_isolation = DEFAULT\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='1s'; +set default_transaction_isolation =\DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='1s'; +?set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'?; +set default_transaction_isolation = DEFAULT?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='1s'; +set default_transaction_isolation =?DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='1s'; +-/set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-/; +set default_transaction_isolation = DEFAULT-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='1s'; +set default_transaction_isolation =-/DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='1s'; +/#set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/#; +set default_transaction_isolation = DEFAULT/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='1s'; +set default_transaction_isolation =/#DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='1s'; +/-set default_transaction_isolation = DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/-; +set default_transaction_isolation = DEFAULT/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='1s'; +set default_transaction_isolation =/-DEFAULT; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to DEFAULT; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='100MS'; +SET DEFAULT_TRANSACTION_ISOLATION TO DEFAULT; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to default; NEW_CONNECTION; - set statement_timeout='100ms'; + set default_transaction_isolation to DEFAULT; NEW_CONNECTION; - set statement_timeout='100ms'; + set default_transaction_isolation to DEFAULT; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to DEFAULT; NEW_CONNECTION; -set statement_timeout='100ms' ; +set default_transaction_isolation to DEFAULT ; NEW_CONNECTION; -set statement_timeout='100ms' ; +set default_transaction_isolation to DEFAULT ; NEW_CONNECTION; -set statement_timeout='100ms' +set default_transaction_isolation to DEFAULT ; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to DEFAULT; NEW_CONNECTION; -set statement_timeout='100ms'; +set default_transaction_isolation to DEFAULT; NEW_CONNECTION; set -statement_timeout='100ms'; +default_transaction_isolation +to +DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='100ms'; +foo set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms' bar; +set default_transaction_isolation to DEFAULT bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='100ms'; +%set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'%; +set default_transaction_isolation to DEFAULT%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='100ms'; +set default_transaction_isolation to%DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='100ms'; +_set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'_; +set default_transaction_isolation to DEFAULT_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='100ms'; +set default_transaction_isolation to_DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='100ms'; +&set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'&; +set default_transaction_isolation to DEFAULT&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='100ms'; +set default_transaction_isolation to&DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='100ms'; +$set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'$; +set default_transaction_isolation to DEFAULT$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='100ms'; +set default_transaction_isolation to$DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='100ms'; +@set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'@; +set default_transaction_isolation to DEFAULT@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='100ms'; +set default_transaction_isolation to@DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='100ms'; +!set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'!; +set default_transaction_isolation to DEFAULT!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='100ms'; +set default_transaction_isolation to!DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='100ms'; +*set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'*; +set default_transaction_isolation to DEFAULT*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='100ms'; +set default_transaction_isolation to*DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='100ms'; +(set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'(; +set default_transaction_isolation to DEFAULT(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='100ms'; +set default_transaction_isolation to(DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='100ms'; +)set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'); +set default_transaction_isolation to DEFAULT); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='100ms'; +set default_transaction_isolation to)DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='100ms'; +-set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-; +set default_transaction_isolation to DEFAULT-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='100ms'; +set default_transaction_isolation to-DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='100ms'; ++set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'+; +set default_transaction_isolation to DEFAULT+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='100ms'; +set default_transaction_isolation to+DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='100ms'; +-#set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-#; +set default_transaction_isolation to DEFAULT-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='100ms'; +set default_transaction_isolation to-#DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='100ms'; +/set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/; +set default_transaction_isolation to DEFAULT/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='100ms'; +set default_transaction_isolation to/DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='100ms'; +\set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'\; +set default_transaction_isolation to DEFAULT\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='100ms'; +set default_transaction_isolation to\DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='100ms'; +?set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'?; +set default_transaction_isolation to DEFAULT?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='100ms'; +set default_transaction_isolation to?DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='100ms'; +-/set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-/; +set default_transaction_isolation to DEFAULT-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='100ms'; +set default_transaction_isolation to-/DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='100ms'; +/#set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/#; +set default_transaction_isolation to DEFAULT/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='100ms'; +set default_transaction_isolation to/#DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='100ms'; +/-set default_transaction_isolation to DEFAULT; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/-; +set default_transaction_isolation to DEFAULT/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='100ms'; +set default_transaction_isolation to/-DEFAULT; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_read_only = true; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=100; +SET DEFAULT_TRANSACTION_READ_ONLY = TRUE; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_read_only = true; NEW_CONNECTION; - set statement_timeout=100; + set default_transaction_read_only = true; NEW_CONNECTION; - set statement_timeout=100; + set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout=100 ; +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout=100 ; +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout=100 +set default_transaction_read_only = true ; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_read_only = true; NEW_CONNECTION; -set statement_timeout=100; +set default_transaction_read_only = true; NEW_CONNECTION; set -statement_timeout=100; +default_transaction_read_only += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=100; +foo set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100 bar; +set default_transaction_read_only = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=100; +%set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100%; +set default_transaction_read_only = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=100; +set default_transaction_read_only =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=100; +_set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100_; +set default_transaction_read_only = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=100; +set default_transaction_read_only =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=100; +&set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100&; +set default_transaction_read_only = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=100; +set default_transaction_read_only =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=100; +$set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100$; +set default_transaction_read_only = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=100; +set default_transaction_read_only =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=100; +@set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100@; +set default_transaction_read_only = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=100; +set default_transaction_read_only =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=100; +!set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100!; +set default_transaction_read_only = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=100; +set default_transaction_read_only =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=100; +*set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100*; +set default_transaction_read_only = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=100; +set default_transaction_read_only =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=100; +(set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100(; +set default_transaction_read_only = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=100; +set default_transaction_read_only =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=100; +)set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100); +set default_transaction_read_only = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=100; +set default_transaction_read_only =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=100; +-set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-; +set default_transaction_read_only = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=100; +set default_transaction_read_only =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=100; ++set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100+; +set default_transaction_read_only = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=100; +set default_transaction_read_only =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=100; +-#set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-#; +set default_transaction_read_only = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=100; +set default_transaction_read_only =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=100; +/set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/; +set default_transaction_read_only = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=100; +set default_transaction_read_only =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=100; +\set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100\; +set default_transaction_read_only = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=100; +set default_transaction_read_only =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=100; +?set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100?; +set default_transaction_read_only = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=100; +set default_transaction_read_only =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=100; +-/set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100-/; +set default_transaction_read_only = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=100; +set default_transaction_read_only =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=100; +/#set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/#; +set default_transaction_read_only = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=100; +set default_transaction_read_only =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=100; +/-set default_transaction_read_only = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=100/-; +set default_transaction_read_only = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=100; +set default_transaction_read_only =/-true; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_read_only = false; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='10000US'; +SET DEFAULT_TRANSACTION_READ_ONLY = FALSE; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_read_only = false; NEW_CONNECTION; - set statement_timeout='10000us'; + set default_transaction_read_only = false; NEW_CONNECTION; - set statement_timeout='10000us'; + set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout='10000us' ; +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout='10000us' ; +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout='10000us' +set default_transaction_read_only = false ; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_read_only = false; NEW_CONNECTION; -set statement_timeout='10000us'; +set default_transaction_read_only = false; NEW_CONNECTION; set -statement_timeout='10000us'; +default_transaction_read_only += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='10000us'; +foo set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us' bar; +set default_transaction_read_only = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='10000us'; +%set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'%; +set default_transaction_read_only = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='10000us'; +set default_transaction_read_only =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='10000us'; +_set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'_; +set default_transaction_read_only = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='10000us'; +set default_transaction_read_only =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='10000us'; +&set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'&; +set default_transaction_read_only = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='10000us'; +set default_transaction_read_only =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='10000us'; +$set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'$; +set default_transaction_read_only = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='10000us'; +set default_transaction_read_only =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='10000us'; +@set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'@; +set default_transaction_read_only = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='10000us'; +set default_transaction_read_only =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='10000us'; +!set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'!; +set default_transaction_read_only = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='10000us'; +set default_transaction_read_only =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='10000us'; +*set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'*; +set default_transaction_read_only = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='10000us'; +set default_transaction_read_only =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='10000us'; +(set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'(; +set default_transaction_read_only = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='10000us'; +set default_transaction_read_only =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='10000us'; +)set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'); +set default_transaction_read_only = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='10000us'; +set default_transaction_read_only =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='10000us'; +-set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-; +set default_transaction_read_only = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='10000us'; +set default_transaction_read_only =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='10000us'; ++set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'+; +set default_transaction_read_only = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='10000us'; +set default_transaction_read_only =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='10000us'; +-#set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-#; +set default_transaction_read_only = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='10000us'; +set default_transaction_read_only =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='10000us'; +/set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/; +set default_transaction_read_only = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='10000us'; +set default_transaction_read_only =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='10000us'; +\set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'\; +set default_transaction_read_only = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='10000us'; +set default_transaction_read_only =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='10000us'; +?set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'?; +set default_transaction_read_only = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='10000us'; +set default_transaction_read_only =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='10000us'; +-/set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-/; +set default_transaction_read_only = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='10000us'; +set default_transaction_read_only =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='10000us'; +/#set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/#; +set default_transaction_read_only = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='10000us'; +set default_transaction_read_only =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='10000us'; +/-set default_transaction_read_only = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/-; +set default_transaction_read_only = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='10000us'; +set default_transaction_read_only =/-false; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_read_only = t; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='9223372036854775807NS'; +SET DEFAULT_TRANSACTION_READ_ONLY = T; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_read_only = t; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set default_transaction_read_only = t; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' +set default_transaction_read_only = t ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_read_only = t; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set default_transaction_read_only = t; NEW_CONNECTION; set -statement_timeout='9223372036854775807ns'; +default_transaction_read_only += +t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='9223372036854775807ns'; +foo set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns' bar; +set default_transaction_read_only = t bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='9223372036854775807ns'; +%set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'%; +set default_transaction_read_only = t%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =%t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='9223372036854775807ns'; +_set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'_; +set default_transaction_read_only = t_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =_t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='9223372036854775807ns'; +&set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'&; +set default_transaction_read_only = t&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =&t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='9223372036854775807ns'; +$set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'$; +set default_transaction_read_only = t$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =$t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='9223372036854775807ns'; +@set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'@; +set default_transaction_read_only = t@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =@t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='9223372036854775807ns'; +!set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'!; +set default_transaction_read_only = t!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =!t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='9223372036854775807ns'; +*set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'*; +set default_transaction_read_only = t*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =*t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='9223372036854775807ns'; +(set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'(; +set default_transaction_read_only = t(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =(t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='9223372036854775807ns'; +)set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'); +set default_transaction_read_only = t); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =)t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='9223372036854775807ns'; +-set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-; +set default_transaction_read_only = t-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =-t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='9223372036854775807ns'; ++set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'+; +set default_transaction_read_only = t+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =+t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='9223372036854775807ns'; +-#set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-#; +set default_transaction_read_only = t-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =-#t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='9223372036854775807ns'; +/set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/; +set default_transaction_read_only = t/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =/t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='9223372036854775807ns'; +\set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'\; +set default_transaction_read_only = t\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =\t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='9223372036854775807ns'; +?set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'?; +set default_transaction_read_only = t?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =?t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='9223372036854775807ns'; +-/set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-/; +set default_transaction_read_only = t-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =-/t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='9223372036854775807ns'; +/#set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/#; +set default_transaction_read_only = t/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =/#t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='9223372036854775807ns'; +/-set default_transaction_read_only = t; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/-; +set default_transaction_read_only = t/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='9223372036854775807ns'; +set default_transaction_read_only =/-t; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = f; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO DEFAULT; +SET DEFAULT_TRANSACTION_READ_ONLY = F; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = f; NEW_CONNECTION; - set statement_timeout to default; + set default_transaction_read_only = f; NEW_CONNECTION; - set statement_timeout to default; + set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to default ; +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to default ; +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to default +set default_transaction_read_only = f ; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = f; NEW_CONNECTION; -set statement_timeout to default; +set default_transaction_read_only = f; NEW_CONNECTION; set -statement_timeout -to -default; +default_transaction_read_only += +f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to default; +foo set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default bar; +set default_transaction_read_only = f bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to default; +%set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default%; +set default_transaction_read_only = f%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%default; +set default_transaction_read_only =%f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to default; +_set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default_; +set default_transaction_read_only = f_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_default; +set default_transaction_read_only =_f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to default; +&set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default&; +set default_transaction_read_only = f&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&default; +set default_transaction_read_only =&f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to default; +$set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default$; +set default_transaction_read_only = f$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$default; +set default_transaction_read_only =$f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to default; +@set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default@; +set default_transaction_read_only = f@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@default; +set default_transaction_read_only =@f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to default; +!set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default!; +set default_transaction_read_only = f!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!default; +set default_transaction_read_only =!f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to default; +*set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default*; +set default_transaction_read_only = f*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*default; +set default_transaction_read_only =*f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to default; +(set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default(; +set default_transaction_read_only = f(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to(default; +set default_transaction_read_only =(f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to default; +)set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default); +set default_transaction_read_only = f); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)default; +set default_transaction_read_only =)f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to default; +-set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-; +set default_transaction_read_only = f-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-default; +set default_transaction_read_only =-f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to default; ++set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default+; +set default_transaction_read_only = f+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+default; +set default_transaction_read_only =+f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to default; +-#set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-#; +set default_transaction_read_only = f-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#default; +set default_transaction_read_only =-#f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to default; +/set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/; +set default_transaction_read_only = f/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/default; +set default_transaction_read_only =/f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to default; +\set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default\; +set default_transaction_read_only = f\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\default; +set default_transaction_read_only =\f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to default; +?set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default?; +set default_transaction_read_only = f?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?default; +set default_transaction_read_only =?f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to default; +-/set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default-/; +set default_transaction_read_only = f-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/default; +set default_transaction_read_only =-/f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to default; +/#set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/#; +set default_transaction_read_only = f/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#default; +set default_transaction_read_only =/#f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to default; +/-set default_transaction_read_only = f; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to default/-; +set default_transaction_read_only = f/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-default; +set default_transaction_read_only =/-f; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '1S'; +SET DEFAULT_TRANSACTION_READ_ONLY TO 'T'; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only to 't'; NEW_CONNECTION; - set statement_timeout to '1s'; + set default_transaction_read_only to 't'; NEW_CONNECTION; - set statement_timeout to '1s'; + set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '1s' ; +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '1s' ; +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '1s' +set default_transaction_read_only to 't' ; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only to 't'; NEW_CONNECTION; -set statement_timeout to '1s'; +set default_transaction_read_only to 't'; NEW_CONNECTION; set -statement_timeout +default_transaction_read_only to -'1s'; +'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '1s'; +foo set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s' bar; +set default_transaction_read_only to 't' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '1s'; +%set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'%; +set default_transaction_read_only to 't'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'1s'; +set default_transaction_read_only to%'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '1s'; +_set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'_; +set default_transaction_read_only to 't'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'1s'; +set default_transaction_read_only to_'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '1s'; +&set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'&; +set default_transaction_read_only to 't'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'1s'; +set default_transaction_read_only to&'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '1s'; +$set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'$; +set default_transaction_read_only to 't'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'1s'; +set default_transaction_read_only to$'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '1s'; +@set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'@; +set default_transaction_read_only to 't'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'1s'; +set default_transaction_read_only to@'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '1s'; +!set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'!; +set default_transaction_read_only to 't'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'1s'; +set default_transaction_read_only to!'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '1s'; +*set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'*; +set default_transaction_read_only to 't'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'1s'; +set default_transaction_read_only to*'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '1s'; +(set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'(; +set default_transaction_read_only to 't'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('1s'; +set default_transaction_read_only to('t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '1s'; +)set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'); +set default_transaction_read_only to 't'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'1s'; +set default_transaction_read_only to)'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '1s'; +-set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-; +set default_transaction_read_only to 't'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'1s'; +set default_transaction_read_only to-'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '1s'; ++set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'+; +set default_transaction_read_only to 't'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'1s'; +set default_transaction_read_only to+'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '1s'; +-#set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-#; +set default_transaction_read_only to 't'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'1s'; +set default_transaction_read_only to-#'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '1s'; +/set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/; +set default_transaction_read_only to 't'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'1s'; +set default_transaction_read_only to/'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '1s'; +\set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'\; +set default_transaction_read_only to 't'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'1s'; +set default_transaction_read_only to\'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '1s'; +?set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'?; +set default_transaction_read_only to 't'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'1s'; +set default_transaction_read_only to?'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '1s'; +-/set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'-/; +set default_transaction_read_only to 't'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'1s'; +set default_transaction_read_only to-/'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '1s'; +/#set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/#; +set default_transaction_read_only to 't'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'1s'; +set default_transaction_read_only to/#'t'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '1s'; +/-set default_transaction_read_only to 't'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '1s'/-; +set default_transaction_read_only to 't'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'1s'; +set default_transaction_read_only to/-'t'; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '100MS'; +SET DEFAULT_TRANSACTION_READ_ONLY TO "F"; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only to "f"; NEW_CONNECTION; - set statement_timeout to '100ms'; + set default_transaction_read_only to "f"; NEW_CONNECTION; - set statement_timeout to '100ms'; + set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '100ms' ; +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '100ms' ; +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '100ms' +set default_transaction_read_only to "f" ; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only to "f"; NEW_CONNECTION; -set statement_timeout to '100ms'; +set default_transaction_read_only to "f"; NEW_CONNECTION; set -statement_timeout +default_transaction_read_only to -'100ms'; +"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '100ms'; +foo set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms' bar; +set default_transaction_read_only to "f" bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '100ms'; +%set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'%; +set default_transaction_read_only to "f"%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'100ms'; +set default_transaction_read_only to%"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '100ms'; +_set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'_; +set default_transaction_read_only to "f"_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'100ms'; +set default_transaction_read_only to_"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '100ms'; +&set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'&; +set default_transaction_read_only to "f"&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'100ms'; +set default_transaction_read_only to&"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '100ms'; +$set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'$; +set default_transaction_read_only to "f"$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'100ms'; +set default_transaction_read_only to$"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '100ms'; +@set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'@; +set default_transaction_read_only to "f"@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'100ms'; +set default_transaction_read_only to@"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '100ms'; +!set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'!; +set default_transaction_read_only to "f"!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'100ms'; +set default_transaction_read_only to!"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '100ms'; +*set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'*; +set default_transaction_read_only to "f"*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'100ms'; +set default_transaction_read_only to*"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '100ms'; +(set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'(; +set default_transaction_read_only to "f"(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('100ms'; +set default_transaction_read_only to("f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '100ms'; +)set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'); +set default_transaction_read_only to "f"); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'100ms'; +set default_transaction_read_only to)"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '100ms'; +-set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-; +set default_transaction_read_only to "f"-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'100ms'; +set default_transaction_read_only to-"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '100ms'; ++set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'+; +set default_transaction_read_only to "f"+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'100ms'; +set default_transaction_read_only to+"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '100ms'; +-#set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-#; +set default_transaction_read_only to "f"-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'100ms'; +set default_transaction_read_only to-#"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '100ms'; +/set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/; +set default_transaction_read_only to "f"/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'100ms'; +set default_transaction_read_only to/"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '100ms'; +\set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'\; +set default_transaction_read_only to "f"\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'100ms'; +set default_transaction_read_only to\"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '100ms'; +?set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'?; +set default_transaction_read_only to "f"?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'100ms'; +set default_transaction_read_only to?"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '100ms'; +-/set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'-/; +set default_transaction_read_only to "f"-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'100ms'; +set default_transaction_read_only to-/"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '100ms'; +/#set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/#; +set default_transaction_read_only to "f"/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'100ms'; +set default_transaction_read_only to/#"f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '100ms'; +/-set default_transaction_read_only to "f"; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '100ms'/-; +set default_transaction_read_only to "f"/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'100ms'; +set default_transaction_read_only to/-"f"; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = on; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO 100; +SET DEFAULT_TRANSACTION_READ_ONLY = ON; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = on; NEW_CONNECTION; - set statement_timeout to 100; + set default_transaction_read_only = on; NEW_CONNECTION; - set statement_timeout to 100; + set default_transaction_read_only = on; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = on; NEW_CONNECTION; -set statement_timeout to 100 ; +set default_transaction_read_only = on ; NEW_CONNECTION; -set statement_timeout to 100 ; +set default_transaction_read_only = on ; NEW_CONNECTION; -set statement_timeout to 100 +set default_transaction_read_only = on ; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = on; NEW_CONNECTION; -set statement_timeout to 100; +set default_transaction_read_only = on; NEW_CONNECTION; set -statement_timeout -to -100; +default_transaction_read_only += +on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to 100; +foo set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100 bar; +set default_transaction_read_only = on bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to 100; +%set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100%; +set default_transaction_read_only = on%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%100; +set default_transaction_read_only =%on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to 100; +_set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100_; +set default_transaction_read_only = on_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_100; +set default_transaction_read_only =_on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to 100; +&set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100&; +set default_transaction_read_only = on&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&100; +set default_transaction_read_only =&on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to 100; +$set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100$; +set default_transaction_read_only = on$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$100; +set default_transaction_read_only =$on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to 100; +@set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100@; +set default_transaction_read_only = on@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@100; +set default_transaction_read_only =@on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to 100; +!set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100!; +set default_transaction_read_only = on!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!100; +set default_transaction_read_only =!on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to 100; +*set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100*; +set default_transaction_read_only = on*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*100; +set default_transaction_read_only =*on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to 100; +(set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100(; +set default_transaction_read_only = on(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to(100; +set default_transaction_read_only =(on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to 100; +)set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100); +set default_transaction_read_only = on); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)100; +set default_transaction_read_only =)on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to 100; +-set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-; +set default_transaction_read_only = on-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-100; +set default_transaction_read_only =-on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to 100; ++set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100+; +set default_transaction_read_only = on+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+100; +set default_transaction_read_only =+on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to 100; +-#set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-#; +set default_transaction_read_only = on-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#100; +set default_transaction_read_only =-#on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to 100; +/set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/; +set default_transaction_read_only = on/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/100; +set default_transaction_read_only =/on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to 100; +\set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100\; +set default_transaction_read_only = on\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\100; +set default_transaction_read_only =\on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to 100; +?set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100?; +set default_transaction_read_only = on?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?100; +set default_transaction_read_only =?on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to 100; +-/set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100-/; +set default_transaction_read_only = on-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/100; +set default_transaction_read_only =-/on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to 100; +/#set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/#; +set default_transaction_read_only = on/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#100; +set default_transaction_read_only =/#on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to 100; +/-set default_transaction_read_only = on; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to 100/-; +set default_transaction_read_only = on/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-100; +set default_transaction_read_only =/-on; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only = off; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '10000US'; +SET DEFAULT_TRANSACTION_READ_ONLY = OFF; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only = off; NEW_CONNECTION; - set statement_timeout to '10000us'; + set default_transaction_read_only = off; NEW_CONNECTION; - set statement_timeout to '10000us'; + set default_transaction_read_only = off; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only = off; NEW_CONNECTION; -set statement_timeout to '10000us' ; +set default_transaction_read_only = off ; NEW_CONNECTION; -set statement_timeout to '10000us' ; +set default_transaction_read_only = off ; NEW_CONNECTION; -set statement_timeout to '10000us' +set default_transaction_read_only = off ; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only = off; NEW_CONNECTION; -set statement_timeout to '10000us'; +set default_transaction_read_only = off; NEW_CONNECTION; set -statement_timeout -to -'10000us'; +default_transaction_read_only += +off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '10000us'; +foo set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us' bar; +set default_transaction_read_only = off bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '10000us'; +%set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'%; +set default_transaction_read_only = off%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'10000us'; +set default_transaction_read_only =%off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '10000us'; +_set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'_; +set default_transaction_read_only = off_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'10000us'; +set default_transaction_read_only =_off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '10000us'; +&set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'&; +set default_transaction_read_only = off&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'10000us'; +set default_transaction_read_only =&off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '10000us'; +$set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'$; +set default_transaction_read_only = off$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'10000us'; +set default_transaction_read_only =$off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '10000us'; +@set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'@; +set default_transaction_read_only = off@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'10000us'; +set default_transaction_read_only =@off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '10000us'; +!set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'!; +set default_transaction_read_only = off!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'10000us'; +set default_transaction_read_only =!off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '10000us'; +*set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'*; +set default_transaction_read_only = off*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'10000us'; +set default_transaction_read_only =*off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '10000us'; +(set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'(; +set default_transaction_read_only = off(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('10000us'; +set default_transaction_read_only =(off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '10000us'; +)set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'); +set default_transaction_read_only = off); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'10000us'; +set default_transaction_read_only =)off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '10000us'; +-set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-; +set default_transaction_read_only = off-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'10000us'; +set default_transaction_read_only =-off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '10000us'; ++set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'+; +set default_transaction_read_only = off+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'10000us'; +set default_transaction_read_only =+off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '10000us'; +-#set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-#; +set default_transaction_read_only = off-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'10000us'; +set default_transaction_read_only =-#off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '10000us'; +/set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/; +set default_transaction_read_only = off/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'10000us'; +set default_transaction_read_only =/off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '10000us'; +\set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'\; +set default_transaction_read_only = off\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'10000us'; +set default_transaction_read_only =\off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '10000us'; +?set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'?; +set default_transaction_read_only = off?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'10000us'; +set default_transaction_read_only =?off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '10000us'; +-/set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'-/; +set default_transaction_read_only = off-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'10000us'; +set default_transaction_read_only =-/off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '10000us'; +/#set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/#; +set default_transaction_read_only = off/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'10000us'; +set default_transaction_read_only =/#off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '10000us'; +/-set default_transaction_read_only = off; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '10000us'/-; +set default_transaction_read_only = off/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'10000us'; +set default_transaction_read_only =/-off; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only = 1; NEW_CONNECTION; -SET STATEMENT_TIMEOUT TO '9223372036854775807NS'; +SET DEFAULT_TRANSACTION_READ_ONLY = 1; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only = 1; NEW_CONNECTION; - set statement_timeout to '9223372036854775807ns'; + set default_transaction_read_only = 1; NEW_CONNECTION; - set statement_timeout to '9223372036854775807ns'; + set default_transaction_read_only = 1; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only = 1; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' ; +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' ; +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns' +set default_transaction_read_only = 1 ; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only = 1; NEW_CONNECTION; -set statement_timeout to '9223372036854775807ns'; +set default_transaction_read_only = 1; NEW_CONNECTION; set -statement_timeout -to -'9223372036854775807ns'; +default_transaction_read_only += +1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout to '9223372036854775807ns'; +foo set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns' bar; +set default_transaction_read_only = 1 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout to '9223372036854775807ns'; +%set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'%; +set default_transaction_read_only = 1%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to%'9223372036854775807ns'; +set default_transaction_read_only =%1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout to '9223372036854775807ns'; +_set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'_; +set default_transaction_read_only = 1_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to_'9223372036854775807ns'; +set default_transaction_read_only =_1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout to '9223372036854775807ns'; +&set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'&; +set default_transaction_read_only = 1&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to&'9223372036854775807ns'; +set default_transaction_read_only =&1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout to '9223372036854775807ns'; +$set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'$; +set default_transaction_read_only = 1$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to$'9223372036854775807ns'; +set default_transaction_read_only =$1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout to '9223372036854775807ns'; +@set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'@; +set default_transaction_read_only = 1@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to@'9223372036854775807ns'; +set default_transaction_read_only =@1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout to '9223372036854775807ns'; +!set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'!; +set default_transaction_read_only = 1!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to!'9223372036854775807ns'; +set default_transaction_read_only =!1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout to '9223372036854775807ns'; +*set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'*; +set default_transaction_read_only = 1*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to*'9223372036854775807ns'; +set default_transaction_read_only =*1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout to '9223372036854775807ns'; +(set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'(; +set default_transaction_read_only = 1(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to('9223372036854775807ns'; +set default_transaction_read_only =(1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout to '9223372036854775807ns'; +)set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'); +set default_transaction_read_only = 1); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to)'9223372036854775807ns'; +set default_transaction_read_only =)1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout to '9223372036854775807ns'; +-set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-; +set default_transaction_read_only = 1-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-'9223372036854775807ns'; +set default_transaction_read_only =-1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout to '9223372036854775807ns'; ++set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'+; +set default_transaction_read_only = 1+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to+'9223372036854775807ns'; +set default_transaction_read_only =+1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout to '9223372036854775807ns'; +-#set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-#; +set default_transaction_read_only = 1-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-#'9223372036854775807ns'; +set default_transaction_read_only =-#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout to '9223372036854775807ns'; +/set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/; +set default_transaction_read_only = 1/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/'9223372036854775807ns'; +set default_transaction_read_only =/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout to '9223372036854775807ns'; +\set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'\; +set default_transaction_read_only = 1\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to\'9223372036854775807ns'; +set default_transaction_read_only =\1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout to '9223372036854775807ns'; +?set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'?; +set default_transaction_read_only = 1?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to?'9223372036854775807ns'; +set default_transaction_read_only =?1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout to '9223372036854775807ns'; +-/set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'-/; +set default_transaction_read_only = 1-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to-/'9223372036854775807ns'; +set default_transaction_read_only =-/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout to '9223372036854775807ns'; +/#set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/#; +set default_transaction_read_only = 1/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/#'9223372036854775807ns'; +set default_transaction_read_only =/#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout to '9223372036854775807ns'; +/-set default_transaction_read_only = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to '9223372036854775807ns'/-; +set default_transaction_read_only = 1/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout to/-'9223372036854775807ns'; +set default_transaction_read_only =/-1; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ ONLY; +SET DEFAULT_TRANSACTION_READ_ONLY = 0; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction read only +set default_transaction_read_only = 0 ; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; set -transaction -read -only; +default_transaction_read_only += +0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read only; +foo set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only bar; +set default_transaction_read_only = 0 bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read only; +%set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only%; +set default_transaction_read_only = 0%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%only; +set default_transaction_read_only =%0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read only; +_set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only_; +set default_transaction_read_only = 0_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_only; +set default_transaction_read_only =_0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read only; +&set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only&; +set default_transaction_read_only = 0&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&only; +set default_transaction_read_only =&0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read only; +$set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only$; +set default_transaction_read_only = 0$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$only; +set default_transaction_read_only =$0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read only; +@set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only@; +set default_transaction_read_only = 0@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@only; +set default_transaction_read_only =@0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read only; +!set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only!; +set default_transaction_read_only = 0!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!only; +set default_transaction_read_only =!0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read only; +*set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only*; +set default_transaction_read_only = 0*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*only; +set default_transaction_read_only =*0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read only; +(set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only(; +set default_transaction_read_only = 0(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(only; +set default_transaction_read_only =(0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read only; +)set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only); +set default_transaction_read_only = 0); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)only; +set default_transaction_read_only =)0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read only; +-set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-; +set default_transaction_read_only = 0-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-only; +set default_transaction_read_only =-0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read only; ++set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only+; +set default_transaction_read_only = 0+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+only; +set default_transaction_read_only =+0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read only; +-#set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-#; +set default_transaction_read_only = 0-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#only; +set default_transaction_read_only =-#0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read only; +/set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/; +set default_transaction_read_only = 0/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/only; +set default_transaction_read_only =/0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read only; +\set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only\; +set default_transaction_read_only = 0\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\only; +set default_transaction_read_only =\0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read only; +?set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only?; +set default_transaction_read_only = 0?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?only; +set default_transaction_read_only =?0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read only; +-/set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-/; +set default_transaction_read_only = 0-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/only; +set default_transaction_read_only =-/0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read only; +/#set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/#; +set default_transaction_read_only = 0/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#only; +set default_transaction_read_only =/#0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read only; +/-set default_transaction_read_only = 0; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/-; +set default_transaction_read_only = 0/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-only; +set default_transaction_read_only =/-0; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ WRITE; +SET DEFAULT_TRANSACTION_READ_ONLY = YES; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set default_transaction_read_only = yes ; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set default_transaction_read_only = yes ; NEW_CONNECTION; -set autocommit = false; -set transaction read write +set default_transaction_read_only = yes ; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; set -transaction -read -write; +default_transaction_read_only += +yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read write; +foo set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write bar; +set default_transaction_read_only = yes bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read write; +%set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write%; +set default_transaction_read_only = yes%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%write; +set default_transaction_read_only =%yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read write; +_set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write_; +set default_transaction_read_only = yes_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_write; +set default_transaction_read_only =_yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read write; +&set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write&; +set default_transaction_read_only = yes&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&write; +set default_transaction_read_only =&yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read write; +$set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write$; +set default_transaction_read_only = yes$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$write; +set default_transaction_read_only =$yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read write; +@set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write@; +set default_transaction_read_only = yes@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@write; +set default_transaction_read_only =@yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read write; +!set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write!; +set default_transaction_read_only = yes!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!write; +set default_transaction_read_only =!yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read write; +*set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write*; +set default_transaction_read_only = yes*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*write; +set default_transaction_read_only =*yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read write; +(set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write(; +set default_transaction_read_only = yes(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(write; +set default_transaction_read_only =(yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read write; +)set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write); +set default_transaction_read_only = yes); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)write; +set default_transaction_read_only =)yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read write; +-set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-; +set default_transaction_read_only = yes-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-write; +set default_transaction_read_only =-yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read write; ++set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write+; +set default_transaction_read_only = yes+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+write; +set default_transaction_read_only =+yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read write; +-#set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-#; +set default_transaction_read_only = yes-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#write; +set default_transaction_read_only =-#yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read write; +/set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/; +set default_transaction_read_only = yes/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/write; +set default_transaction_read_only =/yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read write; +\set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write\; +set default_transaction_read_only = yes\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\write; +set default_transaction_read_only =\yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read write; +?set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write?; +set default_transaction_read_only = yes?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?write; +set default_transaction_read_only =?yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read write; +-/set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-/; +set default_transaction_read_only = yes-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/write; +set default_transaction_read_only =-/yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read write; +/#set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/#; +set default_transaction_read_only = yes/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#write; +set default_transaction_read_only =/#yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read write; +/-set default_transaction_read_only = yes; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/-; +set default_transaction_read_only = yes/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-write; +set default_transaction_read_only =/-yes; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION ISOLATION LEVEL DEFAULT; +SET DEFAULT_TRANSACTION_READ_ONLY = NO; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level default; + set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level default; + set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default ; +set default_transaction_read_only = no ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default ; +set default_transaction_read_only = no ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default +set default_transaction_read_only = no ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level default; +set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; set -transaction -isolation -level -default; +default_transaction_read_only += +no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction isolation level default; +foo set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default bar; +set default_transaction_read_only = no bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction isolation level default; +%set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default%; +set default_transaction_read_only = no%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level%default; +set default_transaction_read_only =%no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction isolation level default; +_set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default_; +set default_transaction_read_only = no_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level_default; +set default_transaction_read_only =_no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction isolation level default; +&set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default&; +set default_transaction_read_only = no&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level&default; +set default_transaction_read_only =&no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction isolation level default; +$set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default$; +set default_transaction_read_only = no$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level$default; +set default_transaction_read_only =$no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction isolation level default; +@set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default@; +set default_transaction_read_only = no@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level@default; +set default_transaction_read_only =@no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction isolation level default; +!set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default!; +set default_transaction_read_only = no!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level!default; +set default_transaction_read_only =!no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction isolation level default; +*set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default*; +set default_transaction_read_only = no*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level*default; +set default_transaction_read_only =*no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction isolation level default; +(set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default(; +set default_transaction_read_only = no(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level(default; +set default_transaction_read_only =(no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction isolation level default; +)set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default); +set default_transaction_read_only = no); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level)default; +set default_transaction_read_only =)no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction isolation level default; +-set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-; +set default_transaction_read_only = no-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-default; +set default_transaction_read_only =-no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction isolation level default; ++set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default+; +set default_transaction_read_only = no+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level+default; +set default_transaction_read_only =+no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction isolation level default; +-#set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-#; +set default_transaction_read_only = no-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-#default; +set default_transaction_read_only =-#no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction isolation level default; +/set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/; +set default_transaction_read_only = no/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/default; +set default_transaction_read_only =/no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction isolation level default; +\set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default\; +set default_transaction_read_only = no\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level\default; +set default_transaction_read_only =\no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction isolation level default; +?set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default?; +set default_transaction_read_only = no?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level?default; +set default_transaction_read_only =?no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction isolation level default; +-/set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default-/; +set default_transaction_read_only = no-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-/default; +set default_transaction_read_only =-/no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction isolation level default; +/#set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/#; +set default_transaction_read_only = no/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/#default; +set default_transaction_read_only =/#no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction isolation level default; +/-set default_transaction_read_only = no; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level default/-; +set default_transaction_read_only = no/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/-default; +set default_transaction_read_only =/-no; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SET DEFAULT_TRANSACTION_READ_ONLY = Y; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level serializable; + set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; - set transaction isolation level serializable; + set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable ; +set default_transaction_read_only = y ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable ; +set default_transaction_read_only = y ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable +set default_transaction_read_only = y ; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; -set transaction isolation level serializable; +set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; set -transaction -isolation -level -serializable; +default_transaction_read_only += +y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction isolation level serializable; +foo set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable bar; +set default_transaction_read_only = y bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction isolation level serializable; +%set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable%; +set default_transaction_read_only = y%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level%serializable; +set default_transaction_read_only =%y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction isolation level serializable; +_set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable_; +set default_transaction_read_only = y_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level_serializable; +set default_transaction_read_only =_y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction isolation level serializable; +&set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable&; +set default_transaction_read_only = y&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level&serializable; +set default_transaction_read_only =&y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction isolation level serializable; +$set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable$; +set default_transaction_read_only = y$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level$serializable; +set default_transaction_read_only =$y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction isolation level serializable; +@set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable@; +set default_transaction_read_only = y@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level@serializable; +set default_transaction_read_only =@y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction isolation level serializable; +!set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable!; +set default_transaction_read_only = y!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level!serializable; +set default_transaction_read_only =!y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction isolation level serializable; +*set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable*; +set default_transaction_read_only = y*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level*serializable; +set default_transaction_read_only =*y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction isolation level serializable; +(set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable(; +set default_transaction_read_only = y(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level(serializable; +set default_transaction_read_only =(y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction isolation level serializable; +)set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable); +set default_transaction_read_only = y); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level)serializable; +set default_transaction_read_only =)y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction isolation level serializable; +-set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-; +set default_transaction_read_only = y-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-serializable; +set default_transaction_read_only =-y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction isolation level serializable; ++set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable+; +set default_transaction_read_only = y+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level+serializable; +set default_transaction_read_only =+y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction isolation level serializable; +-#set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-#; +set default_transaction_read_only = y-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-#serializable; +set default_transaction_read_only =-#y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction isolation level serializable; +/set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/; +set default_transaction_read_only = y/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/serializable; +set default_transaction_read_only =/y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction isolation level serializable; +\set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable\; +set default_transaction_read_only = y\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level\serializable; +set default_transaction_read_only =\y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction isolation level serializable; +?set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable?; +set default_transaction_read_only = y?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level?serializable; +set default_transaction_read_only =?y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction isolation level serializable; +-/set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable-/; +set default_transaction_read_only = y-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level-/serializable; +set default_transaction_read_only =-/y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction isolation level serializable; +/#set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/#; +set default_transaction_read_only = y/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/#serializable; +set default_transaction_read_only =/#y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction isolation level serializable; +/-set default_transaction_read_only = y; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level serializable/-; +set default_transaction_read_only = y/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction isolation level/-serializable; +set default_transaction_read_only =/-y; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = n; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY; +SET DEFAULT_TRANSACTION_READ_ONLY = N; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = n; NEW_CONNECTION; - set session characteristics as transaction read only; + set default_transaction_read_only = n; NEW_CONNECTION; - set session characteristics as transaction read only; + set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction read only ; +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction read only ; +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction read only +set default_transaction_read_only = n ; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = n; NEW_CONNECTION; -set session characteristics as transaction read only; +set default_transaction_read_only = n; NEW_CONNECTION; set -session -characteristics -as -transaction -read -only; +default_transaction_read_only += +n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction read only; +foo set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only bar; +set default_transaction_read_only = n bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction read only; +%set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only%; +set default_transaction_read_only = n%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read%only; +set default_transaction_read_only =%n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction read only; +_set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only_; +set default_transaction_read_only = n_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read_only; +set default_transaction_read_only =_n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction read only; +&set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only&; +set default_transaction_read_only = n&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read&only; +set default_transaction_read_only =&n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction read only; +$set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only$; +set default_transaction_read_only = n$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read$only; +set default_transaction_read_only =$n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction read only; +@set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only@; +set default_transaction_read_only = n@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read@only; +set default_transaction_read_only =@n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction read only; +!set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only!; +set default_transaction_read_only = n!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read!only; +set default_transaction_read_only =!n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction read only; +*set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only*; +set default_transaction_read_only = n*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read*only; +set default_transaction_read_only =*n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction read only; +(set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only(; +set default_transaction_read_only = n(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read(only; +set default_transaction_read_only =(n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction read only; +)set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only); +set default_transaction_read_only = n); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read)only; +set default_transaction_read_only =)n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction read only; +-set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-; +set default_transaction_read_only = n-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-only; +set default_transaction_read_only =-n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction read only; ++set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only+; +set default_transaction_read_only = n+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read+only; +set default_transaction_read_only =+n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction read only; +-#set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-#; +set default_transaction_read_only = n-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-#only; +set default_transaction_read_only =-#n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction read only; +/set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/; +set default_transaction_read_only = n/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/only; +set default_transaction_read_only =/n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction read only; +\set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only\; +set default_transaction_read_only = n\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read\only; +set default_transaction_read_only =\n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction read only; +?set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only?; +set default_transaction_read_only = n?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read?only; +set default_transaction_read_only =?n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction read only; +-/set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only-/; +set default_transaction_read_only = n-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-/only; +set default_transaction_read_only =-/n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction read only; +/#set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/#; +set default_transaction_read_only = n/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/#only; +set default_transaction_read_only =/#n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction read only; +/-set default_transaction_read_only = n; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read only/-; +set default_transaction_read_only = n/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/-only; +set default_transaction_read_only =/-n; NEW_CONNECTION; -set session characteristics as transaction read write; +set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE; +SET SPANNER.READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -set session characteristics as transaction read write; +set spanner.read_only_staleness='strong'; NEW_CONNECTION; - set session characteristics as transaction read write; + set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; - set session characteristics as transaction read write; + set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; -set session characteristics as transaction read write; +set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; -set session characteristics as transaction read write ; +set spanner.read_only_staleness='STRONG' ; NEW_CONNECTION; -set session characteristics as transaction read write ; +set spanner.read_only_staleness='STRONG' ; NEW_CONNECTION; -set session characteristics as transaction read write +set spanner.read_only_staleness='STRONG' ; NEW_CONNECTION; -set session characteristics as transaction read write; +set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; -set session characteristics as transaction read write; +set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; set -session -characteristics -as -transaction -read -write; +spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction read write; +foo set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write bar; +set spanner.read_only_staleness='STRONG' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction read write; +%set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write%; +set spanner.read_only_staleness='STRONG'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read%write; +set%spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction read write; +_set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write_; +set spanner.read_only_staleness='STRONG'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read_write; +set_spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction read write; +&set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write&; +set spanner.read_only_staleness='STRONG'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read&write; +set&spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction read write; +$set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write$; +set spanner.read_only_staleness='STRONG'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read$write; +set$spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction read write; +@set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write@; +set spanner.read_only_staleness='STRONG'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read@write; +set@spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction read write; +!set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write!; +set spanner.read_only_staleness='STRONG'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read!write; +set!spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction read write; +*set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write*; +set spanner.read_only_staleness='STRONG'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read*write; +set*spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction read write; +(set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write(; +set spanner.read_only_staleness='STRONG'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read(write; +set(spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction read write; +)set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write); +set spanner.read_only_staleness='STRONG'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read)write; +set)spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction read write; +-set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-; +set spanner.read_only_staleness='STRONG'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-write; +set-spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction read write; ++set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write+; +set spanner.read_only_staleness='STRONG'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read+write; +set+spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction read write; +-#set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-#; +set spanner.read_only_staleness='STRONG'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-#write; +set-#spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction read write; +/set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/; +set spanner.read_only_staleness='STRONG'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/write; +set/spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction read write; +\set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write\; +set spanner.read_only_staleness='STRONG'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read\write; +set\spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction read write; +?set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write?; +set spanner.read_only_staleness='STRONG'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read?write; +set?spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction read write; +-/set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write-/; +set spanner.read_only_staleness='STRONG'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read-/write; +set-/spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction read write; +/#set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/#; +set spanner.read_only_staleness='STRONG'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/#write; +set/#spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction read write; +/-set spanner.read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read write/-; +set spanner.read_only_staleness='STRONG'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction read/-write; +set/-spanner.read_only_staleness='STRONG'; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL DEFAULT; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; NEW_CONNECTION; - set session characteristics as transaction isolation level default; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; - set session characteristics as transaction isolation level default; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set session characteristics as transaction isolation level default ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set session characteristics as transaction isolation level default ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set session characteristics as transaction isolation level default +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set session characteristics as transaction isolation level default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; set -session -characteristics -as -transaction -isolation -level -default; +spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction isolation level default; +foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default bar; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction isolation level default; +%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default%; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level%default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction isolation level default; +_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default_; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level_default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction isolation level default; +&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default&; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level&default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction isolation level default; +$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default$; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level$default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction isolation level default; +@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default@; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level@default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction isolation level default; +!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default!; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level!default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction isolation level default; +*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default*; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level*default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction isolation level default; +(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default(; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level(default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction isolation level default; +)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default); +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level)default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction isolation level default; +-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction isolation level default; ++set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default+; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level+default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction isolation level default; +-#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-#default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction isolation level default; +/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction isolation level default; +\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default\; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level\default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction isolation level default; +?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default?; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level?default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction isolation level default; +-/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default-/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-/default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction isolation level default; +/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/#default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction isolation level default; +/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level default/-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/-default; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; NEW_CONNECTION; - set session characteristics as transaction isolation level serializable; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; - set session characteristics as transaction isolation level serializable; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set session characteristics as transaction isolation level serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; set -session -characteristics -as -transaction -isolation -level -serializable; +spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set session characteristics as transaction isolation level serializable; +foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable bar; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set session characteristics as transaction isolation level serializable; +%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable%; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level%serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set session characteristics as transaction isolation level serializable; +_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable_; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level_serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set session characteristics as transaction isolation level serializable; +&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable&; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level&serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set session characteristics as transaction isolation level serializable; +$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable$; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level$serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set session characteristics as transaction isolation level serializable; +@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable@; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level@serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set session characteristics as transaction isolation level serializable; +!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable!; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level!serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set session characteristics as transaction isolation level serializable; +*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable*; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level*serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set session characteristics as transaction isolation level serializable; +(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable(; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level(serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set session characteristics as transaction isolation level serializable; +)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable); +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level)serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set session characteristics as transaction isolation level serializable; +-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set session characteristics as transaction isolation level serializable; ++set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable+; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level+serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set session characteristics as transaction isolation level serializable; +-#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-#serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set session characteristics as transaction isolation level serializable; +/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set session characteristics as transaction isolation level serializable; +\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable\; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level\serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set session characteristics as transaction isolation level serializable; +?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable?; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level?serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set session characteristics as transaction isolation level serializable; +-/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable-/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level-/serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set session characteristics as transaction isolation level serializable; +/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/#serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set session characteristics as transaction isolation level serializable; +/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level serializable/-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set session characteristics as transaction isolation level/-serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION=SERIALIZABLE; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_isolation=serializable; +set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; NEW_CONNECTION; - set default_transaction_isolation=serializable; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; - set default_transaction_isolation=serializable; + set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_isolation=serializable ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_isolation=serializable ; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_isolation=serializable +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; set -default_transaction_isolation=serializable; +spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation=serializable; +foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable bar; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation=serializable; +%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable%; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation=serializable; +_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable_; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation=serializable; +&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable&; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation=serializable; +$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable$; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation=serializable; +@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable@; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation=serializable; +!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable!; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation=serializable; +*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable*; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation=serializable; +(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable(; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation=serializable; +)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable); +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation=serializable; +-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation=serializable; ++set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable+; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation=serializable; +-#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable-#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation=serializable; +/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation=serializable; +\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable\; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation=serializable; +?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable?; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation=serializable; +-/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable-/; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation=serializable; +/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable/#; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation=serializable; +/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation=serializable/-; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-default_transaction_isolation=serializable; +set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_isolation to serializable; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION TO SERIALIZABLE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_isolation to serializable; +set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; NEW_CONNECTION; - set default_transaction_isolation to serializable; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; - set default_transaction_isolation to serializable; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_isolation to serializable; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_isolation to serializable ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_isolation to serializable ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_isolation to serializable +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_isolation to serializable; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_isolation to serializable; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; set -default_transaction_isolation -to -serializable; +spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation to serializable; +foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable bar; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation to serializable; +%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable%; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to%serializable; +set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation to serializable; +_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable_; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to_serializable; +set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation to serializable; +&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable&; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to&serializable; +set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation to serializable; +$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable$; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to$serializable; +set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation to serializable; +@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable@; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to@serializable; +set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation to serializable; +!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable!; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to!serializable; +set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation to serializable; +*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable*; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to*serializable; +set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation to serializable; +(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable(; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to(serializable; +set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation to serializable; +)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable); +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to)serializable; +set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation to serializable; +-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-serializable; +set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation to serializable; ++set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable+; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to+serializable; +set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation to serializable; +-#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable-#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-#serializable; +set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation to serializable; +/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/serializable; +set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation to serializable; +\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable\; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to\serializable; +set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation to serializable; +?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable?; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to?serializable; +set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation to serializable; +-/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable-/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-/serializable; +set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation to serializable; +/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable/#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/#serializable; +set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation to serializable; +/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to serializable/-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/-serializable; +set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_isolation to 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION TO 'SERIALIZABLE'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_isolation to 'serializable'; +set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; NEW_CONNECTION; - set default_transaction_isolation to 'serializable'; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; - set default_transaction_isolation to 'serializable'; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_isolation to 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_isolation to 'serializable' ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_isolation to 'serializable' ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_isolation to 'serializable' +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_isolation to 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_isolation to 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; set -default_transaction_isolation -to -'serializable'; +spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation to 'serializable'; +foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable' bar; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation to 'serializable'; +%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'%; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to%'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation to 'serializable'; +_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'_; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to_'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation to 'serializable'; +&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'&; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to&'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation to 'serializable'; +$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'$; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to$'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation to 'serializable'; +@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'@; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to@'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation to 'serializable'; +!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'!; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to!'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation to 'serializable'; +*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'*; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to*'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation to 'serializable'; +(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'(; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to('serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation to 'serializable'; +)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'); +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to)'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation to 'serializable'; +-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation to 'serializable'; ++set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'+; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to+'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation to 'serializable'; +-#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'-#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-#'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation to 'serializable'; +/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation to 'serializable'; +\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'\; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to\'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation to 'serializable'; +?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'?; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to?'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation to 'serializable'; +-/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'-/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-/'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation to 'serializable'; +/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'/#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/#'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation to 'serializable'; +/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to 'serializable'/-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/-'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_isolation = 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION = 'SERIALIZABLE'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_isolation = 'serializable'; +set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; NEW_CONNECTION; - set default_transaction_isolation = 'serializable'; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; - set default_transaction_isolation = 'serializable'; + set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_isolation = 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_isolation = 'serializable' ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_isolation = 'serializable' ; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_isolation = 'serializable' +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_isolation = 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_isolation = 'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; set -default_transaction_isolation -= -'serializable'; +spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation = 'serializable'; +foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable' bar; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation = 'serializable'; +%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'%; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =%'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation = 'serializable'; +_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'_; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =_'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation = 'serializable'; +&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'&; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =&'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation = 'serializable'; +$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'$; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =$'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation = 'serializable'; +@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'@; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =@'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation = 'serializable'; +!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'!; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =!'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation = 'serializable'; +*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'*; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =*'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation = 'serializable'; +(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'(; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =('serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation = 'serializable'; +)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'); +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =)'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation = 'serializable'; +-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation = 'serializable'; ++set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'+; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =+'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation = 'serializable'; +-#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'-#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-#'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation = 'serializable'; +/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation = 'serializable'; +\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'\; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =\'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation = 'serializable'; +?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'?; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =?'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation = 'serializable'; +-/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'-/; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-/'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation = 'serializable'; +/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'/#; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/#'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation = 'serializable'; +/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = 'serializable'/-; +set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/-'serializable'; +set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION = "SERIALIZABLE"; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 12S'; NEW_CONNECTION; -set default_transaction_isolation = "serializable"; +set spanner.read_only_staleness='max_staleness 12s'; NEW_CONNECTION; - set default_transaction_isolation = "SERIALIZABLE"; + set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; - set default_transaction_isolation = "SERIALIZABLE"; + set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE" ; +set spanner.read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE" ; +set spanner.read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE" +set spanner.read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_isolation = "SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; set -default_transaction_isolation -= -"SERIALIZABLE"; +spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation = "SERIALIZABLE"; +foo set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE" bar; +set spanner.read_only_staleness='MAX_STALENESS 12s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation = "SERIALIZABLE"; +%set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"%; +set spanner.read_only_staleness='MAX_STALENESS 12s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =%"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS%12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation = "SERIALIZABLE"; +_set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"_; +set spanner.read_only_staleness='MAX_STALENESS 12s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =_"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS_12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation = "SERIALIZABLE"; +&set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"&; +set spanner.read_only_staleness='MAX_STALENESS 12s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =&"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS&12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation = "SERIALIZABLE"; +$set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"$; +set spanner.read_only_staleness='MAX_STALENESS 12s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =$"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS$12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation = "SERIALIZABLE"; +@set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"@; +set spanner.read_only_staleness='MAX_STALENESS 12s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =@"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS@12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation = "SERIALIZABLE"; +!set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"!; +set spanner.read_only_staleness='MAX_STALENESS 12s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =!"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS!12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation = "SERIALIZABLE"; +*set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"*; +set spanner.read_only_staleness='MAX_STALENESS 12s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =*"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS*12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation = "SERIALIZABLE"; +(set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"(; +set spanner.read_only_staleness='MAX_STALENESS 12s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =("SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS(12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation = "SERIALIZABLE"; +)set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"); +set spanner.read_only_staleness='MAX_STALENESS 12s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =)"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS)12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation = "SERIALIZABLE"; +-set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"-; +set spanner.read_only_staleness='MAX_STALENESS 12s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS-12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation = "SERIALIZABLE"; ++set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"+; +set spanner.read_only_staleness='MAX_STALENESS 12s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =+"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS+12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation = "SERIALIZABLE"; +-#set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"-#; +set spanner.read_only_staleness='MAX_STALENESS 12s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-#"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS-#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation = "SERIALIZABLE"; +/set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"/; +set spanner.read_only_staleness='MAX_STALENESS 12s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation = "SERIALIZABLE"; +\set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"\; +set spanner.read_only_staleness='MAX_STALENESS 12s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =\"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS\12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation = "SERIALIZABLE"; +?set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"?; +set spanner.read_only_staleness='MAX_STALENESS 12s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =?"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS?12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation = "SERIALIZABLE"; +-/set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"-/; +set spanner.read_only_staleness='MAX_STALENESS 12s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-/"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS-/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation = "SERIALIZABLE"; +/#set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"/#; +set spanner.read_only_staleness='MAX_STALENESS 12s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/#"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS/#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation = "SERIALIZABLE"; +/-set spanner.read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = "SERIALIZABLE"/-; +set spanner.read_only_staleness='MAX_STALENESS 12s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/-"SERIALIZABLE"; +set spanner.read_only_staleness='MAX_STALENESS/-12s'; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION = DEFAULT; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100MS'; NEW_CONNECTION; -set default_transaction_isolation = default; +set spanner.read_only_staleness='max_staleness 100ms'; NEW_CONNECTION; - set default_transaction_isolation = DEFAULT; + set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; - set default_transaction_isolation = DEFAULT; + set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT ; +set spanner.read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT ; +set spanner.read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT +set spanner.read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_isolation = DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; set -default_transaction_isolation -= -DEFAULT; +spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation = DEFAULT; +foo set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT bar; +set spanner.read_only_staleness='MAX_STALENESS 100ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation = DEFAULT; +%set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT%; +set spanner.read_only_staleness='MAX_STALENESS 100ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =%DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS%100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation = DEFAULT; +_set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT_; +set spanner.read_only_staleness='MAX_STALENESS 100ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =_DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS_100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation = DEFAULT; +&set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT&; +set spanner.read_only_staleness='MAX_STALENESS 100ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =&DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS&100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation = DEFAULT; +$set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT$; +set spanner.read_only_staleness='MAX_STALENESS 100ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =$DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS$100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation = DEFAULT; +@set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT@; +set spanner.read_only_staleness='MAX_STALENESS 100ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =@DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS@100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation = DEFAULT; +!set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT!; +set spanner.read_only_staleness='MAX_STALENESS 100ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =!DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS!100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation = DEFAULT; +*set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT*; +set spanner.read_only_staleness='MAX_STALENESS 100ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =*DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS*100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation = DEFAULT; +(set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT(; +set spanner.read_only_staleness='MAX_STALENESS 100ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =(DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS(100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation = DEFAULT; +)set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT); +set spanner.read_only_staleness='MAX_STALENESS 100ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =)DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS)100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation = DEFAULT; +-set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT-; +set spanner.read_only_staleness='MAX_STALENESS 100ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation = DEFAULT; ++set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT+; +set spanner.read_only_staleness='MAX_STALENESS 100ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =+DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS+100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation = DEFAULT; +-#set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT-#; +set spanner.read_only_staleness='MAX_STALENESS 100ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-#DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation = DEFAULT; +/set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT/; +set spanner.read_only_staleness='MAX_STALENESS 100ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation = DEFAULT; +\set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT\; +set spanner.read_only_staleness='MAX_STALENESS 100ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =\DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS\100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation = DEFAULT; +?set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT?; +set spanner.read_only_staleness='MAX_STALENESS 100ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =?DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS?100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation = DEFAULT; +-/set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT-/; +set spanner.read_only_staleness='MAX_STALENESS 100ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =-/DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation = DEFAULT; +/#set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT/#; +set spanner.read_only_staleness='MAX_STALENESS 100ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/#DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation = DEFAULT; +/-set spanner.read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation = DEFAULT/-; +set spanner.read_only_staleness='MAX_STALENESS 100ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation =/-DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/-100ms'; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_ISOLATION TO DEFAULT; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 99999US'; NEW_CONNECTION; -set default_transaction_isolation to default; +set spanner.read_only_staleness='max_staleness 99999us'; NEW_CONNECTION; - set default_transaction_isolation to DEFAULT; + set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; - set default_transaction_isolation to DEFAULT; + set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT ; +set spanner.read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT ; +set spanner.read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT +set spanner.read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set default_transaction_isolation to DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; set -default_transaction_isolation -to -DEFAULT; +spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_isolation to DEFAULT; +foo set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT bar; +set spanner.read_only_staleness='MAX_STALENESS 99999us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_isolation to DEFAULT; +%set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT%; +set spanner.read_only_staleness='MAX_STALENESS 99999us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to%DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS%99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_isolation to DEFAULT; +_set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT_; +set spanner.read_only_staleness='MAX_STALENESS 99999us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to_DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS_99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_isolation to DEFAULT; +&set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT&; +set spanner.read_only_staleness='MAX_STALENESS 99999us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to&DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS&99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_isolation to DEFAULT; +$set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT$; +set spanner.read_only_staleness='MAX_STALENESS 99999us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to$DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS$99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_isolation to DEFAULT; +@set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT@; +set spanner.read_only_staleness='MAX_STALENESS 99999us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to@DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS@99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_isolation to DEFAULT; +!set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT!; +set spanner.read_only_staleness='MAX_STALENESS 99999us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to!DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS!99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_isolation to DEFAULT; +*set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT*; +set spanner.read_only_staleness='MAX_STALENESS 99999us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to*DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS*99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_isolation to DEFAULT; +(set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT(; +set spanner.read_only_staleness='MAX_STALENESS 99999us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to(DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS(99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_isolation to DEFAULT; +)set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT); +set spanner.read_only_staleness='MAX_STALENESS 99999us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to)DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS)99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_isolation to DEFAULT; +-set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT-; +set spanner.read_only_staleness='MAX_STALENESS 99999us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_isolation to DEFAULT; ++set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT+; +set spanner.read_only_staleness='MAX_STALENESS 99999us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to+DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS+99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_isolation to DEFAULT; +-#set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT-#; +set spanner.read_only_staleness='MAX_STALENESS 99999us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-#DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_isolation to DEFAULT; +/set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT/; +set spanner.read_only_staleness='MAX_STALENESS 99999us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_isolation to DEFAULT; +\set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT\; +set spanner.read_only_staleness='MAX_STALENESS 99999us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to\DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS\99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_isolation to DEFAULT; +?set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT?; +set spanner.read_only_staleness='MAX_STALENESS 99999us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to?DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS?99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_isolation to DEFAULT; +-/set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT-/; +set spanner.read_only_staleness='MAX_STALENESS 99999us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to-/DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS-/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_isolation to DEFAULT; +/#set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT/#; +set spanner.read_only_staleness='MAX_STALENESS 99999us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/#DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_isolation to DEFAULT; +/-set spanner.read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to DEFAULT/-; +set spanner.read_only_staleness='MAX_STALENESS 99999us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_isolation to/-DEFAULT; +set spanner.read_only_staleness='MAX_STALENESS/-99999us'; NEW_CONNECTION; -set default_transaction_read_only = true; +set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10NS'; NEW_CONNECTION; -set default_transaction_read_only = true; +set spanner.read_only_staleness='max_staleness 10ns'; NEW_CONNECTION; - set default_transaction_read_only = true; + set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; - set default_transaction_read_only = true; + set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set default_transaction_read_only = true; +set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set default_transaction_read_only = true ; +set spanner.read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set default_transaction_read_only = true ; +set spanner.read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set default_transaction_read_only = true +set spanner.read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set default_transaction_read_only = true; +set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set default_transaction_read_only = true; +set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; set -default_transaction_read_only -= -true; +spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = true; +foo set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true bar; +set spanner.read_only_staleness='MAX_STALENESS 10ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = true; +%set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true%; +set spanner.read_only_staleness='MAX_STALENESS 10ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%true; +set spanner.read_only_staleness='MAX_STALENESS%10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = true; +_set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true_; +set spanner.read_only_staleness='MAX_STALENESS 10ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_true; +set spanner.read_only_staleness='MAX_STALENESS_10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = true; +&set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true&; +set spanner.read_only_staleness='MAX_STALENESS 10ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&true; +set spanner.read_only_staleness='MAX_STALENESS&10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = true; +$set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true$; +set spanner.read_only_staleness='MAX_STALENESS 10ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$true; +set spanner.read_only_staleness='MAX_STALENESS$10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = true; +@set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true@; +set spanner.read_only_staleness='MAX_STALENESS 10ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@true; +set spanner.read_only_staleness='MAX_STALENESS@10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = true; +!set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true!; +set spanner.read_only_staleness='MAX_STALENESS 10ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!true; +set spanner.read_only_staleness='MAX_STALENESS!10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = true; +*set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true*; +set spanner.read_only_staleness='MAX_STALENESS 10ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*true; +set spanner.read_only_staleness='MAX_STALENESS*10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = true; +(set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true(; +set spanner.read_only_staleness='MAX_STALENESS 10ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(true; +set spanner.read_only_staleness='MAX_STALENESS(10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = true; +)set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true); +set spanner.read_only_staleness='MAX_STALENESS 10ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)true; +set spanner.read_only_staleness='MAX_STALENESS)10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = true; +-set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true-; +set spanner.read_only_staleness='MAX_STALENESS 10ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-true; +set spanner.read_only_staleness='MAX_STALENESS-10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = true; ++set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true+; +set spanner.read_only_staleness='MAX_STALENESS 10ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+true; +set spanner.read_only_staleness='MAX_STALENESS+10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = true; +-#set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true-#; +set spanner.read_only_staleness='MAX_STALENESS 10ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#true; +set spanner.read_only_staleness='MAX_STALENESS-#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = true; +/set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true/; +set spanner.read_only_staleness='MAX_STALENESS 10ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/true; +set spanner.read_only_staleness='MAX_STALENESS/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = true; +\set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true\; +set spanner.read_only_staleness='MAX_STALENESS 10ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\true; +set spanner.read_only_staleness='MAX_STALENESS\10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = true; +?set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true?; +set spanner.read_only_staleness='MAX_STALENESS 10ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?true; +set spanner.read_only_staleness='MAX_STALENESS?10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = true; +-/set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true-/; +set spanner.read_only_staleness='MAX_STALENESS 10ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/true; +set spanner.read_only_staleness='MAX_STALENESS-/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = true; +/#set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true/#; +set spanner.read_only_staleness='MAX_STALENESS 10ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#true; +set spanner.read_only_staleness='MAX_STALENESS/#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = true; +/-set spanner.read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = true/-; +set spanner.read_only_staleness='MAX_STALENESS 10ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-true; +set spanner.read_only_staleness='MAX_STALENESS/-10ns'; NEW_CONNECTION; -set default_transaction_read_only = false; +set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 15S'; NEW_CONNECTION; -set default_transaction_read_only = false; +set spanner.read_only_staleness='exact_staleness 15s'; NEW_CONNECTION; - set default_transaction_read_only = false; + set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; - set default_transaction_read_only = false; + set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set default_transaction_read_only = false; +set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set default_transaction_read_only = false ; +set spanner.read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set default_transaction_read_only = false ; +set spanner.read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set default_transaction_read_only = false +set spanner.read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set default_transaction_read_only = false; +set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set default_transaction_read_only = false; +set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; set -default_transaction_read_only -= -false; +spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = false; +foo set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false bar; +set spanner.read_only_staleness='EXACT_STALENESS 15s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = false; +%set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false%; +set spanner.read_only_staleness='EXACT_STALENESS 15s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%false; +set spanner.read_only_staleness='EXACT_STALENESS%15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = false; +_set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false_; +set spanner.read_only_staleness='EXACT_STALENESS 15s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_false; +set spanner.read_only_staleness='EXACT_STALENESS_15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = false; +&set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false&; +set spanner.read_only_staleness='EXACT_STALENESS 15s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&false; +set spanner.read_only_staleness='EXACT_STALENESS&15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = false; +$set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false$; +set spanner.read_only_staleness='EXACT_STALENESS 15s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$false; +set spanner.read_only_staleness='EXACT_STALENESS$15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = false; +@set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false@; +set spanner.read_only_staleness='EXACT_STALENESS 15s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@false; +set spanner.read_only_staleness='EXACT_STALENESS@15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = false; +!set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false!; +set spanner.read_only_staleness='EXACT_STALENESS 15s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!false; +set spanner.read_only_staleness='EXACT_STALENESS!15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = false; +*set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false*; +set spanner.read_only_staleness='EXACT_STALENESS 15s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*false; +set spanner.read_only_staleness='EXACT_STALENESS*15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = false; +(set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false(; +set spanner.read_only_staleness='EXACT_STALENESS 15s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(false; +set spanner.read_only_staleness='EXACT_STALENESS(15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = false; +)set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false); +set spanner.read_only_staleness='EXACT_STALENESS 15s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)false; +set spanner.read_only_staleness='EXACT_STALENESS)15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = false; +-set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false-; +set spanner.read_only_staleness='EXACT_STALENESS 15s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-false; +set spanner.read_only_staleness='EXACT_STALENESS-15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = false; ++set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false+; +set spanner.read_only_staleness='EXACT_STALENESS 15s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+false; +set spanner.read_only_staleness='EXACT_STALENESS+15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = false; +-#set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false-#; +set spanner.read_only_staleness='EXACT_STALENESS 15s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#false; +set spanner.read_only_staleness='EXACT_STALENESS-#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = false; +/set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false/; +set spanner.read_only_staleness='EXACT_STALENESS 15s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/false; +set spanner.read_only_staleness='EXACT_STALENESS/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = false; +\set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false\; +set spanner.read_only_staleness='EXACT_STALENESS 15s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\false; +set spanner.read_only_staleness='EXACT_STALENESS\15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = false; +?set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false?; +set spanner.read_only_staleness='EXACT_STALENESS 15s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?false; +set spanner.read_only_staleness='EXACT_STALENESS?15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = false; +-/set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false-/; +set spanner.read_only_staleness='EXACT_STALENESS 15s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/false; +set spanner.read_only_staleness='EXACT_STALENESS-/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = false; +/#set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false/#; +set spanner.read_only_staleness='EXACT_STALENESS 15s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#false; +set spanner.read_only_staleness='EXACT_STALENESS/#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = false; +/-set spanner.read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = false/-; +set spanner.read_only_staleness='EXACT_STALENESS 15s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-false; +set spanner.read_only_staleness='EXACT_STALENESS/-15s'; NEW_CONNECTION; -set default_transaction_read_only = t; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = T; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; NEW_CONNECTION; -set default_transaction_read_only = t; +set spanner.read_only_staleness='exact_staleness 1500ms'; NEW_CONNECTION; - set default_transaction_read_only = t; + set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; - set default_transaction_read_only = t; + set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set default_transaction_read_only = t; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set default_transaction_read_only = t ; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set default_transaction_read_only = t ; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set default_transaction_read_only = t +set spanner.read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set default_transaction_read_only = t; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set default_transaction_read_only = t; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; set -default_transaction_read_only -= -t; +spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = t; +foo set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t bar; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = t; +%set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t%; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%t; +set spanner.read_only_staleness='EXACT_STALENESS%1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = t; +_set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t_; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_t; +set spanner.read_only_staleness='EXACT_STALENESS_1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = t; +&set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t&; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&t; +set spanner.read_only_staleness='EXACT_STALENESS&1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = t; +$set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t$; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$t; +set spanner.read_only_staleness='EXACT_STALENESS$1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = t; +@set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t@; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@t; +set spanner.read_only_staleness='EXACT_STALENESS@1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = t; +!set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t!; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!t; +set spanner.read_only_staleness='EXACT_STALENESS!1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = t; +*set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t*; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*t; +set spanner.read_only_staleness='EXACT_STALENESS*1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = t; +(set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t(; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(t; +set spanner.read_only_staleness='EXACT_STALENESS(1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = t; +)set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t); +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)t; +set spanner.read_only_staleness='EXACT_STALENESS)1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = t; +-set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t-; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-t; +set spanner.read_only_staleness='EXACT_STALENESS-1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = t; ++set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t+; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+t; +set spanner.read_only_staleness='EXACT_STALENESS+1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = t; +-#set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t-#; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#t; +set spanner.read_only_staleness='EXACT_STALENESS-#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = t; +/set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t/; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/t; +set spanner.read_only_staleness='EXACT_STALENESS/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = t; +\set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t\; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\t; +set spanner.read_only_staleness='EXACT_STALENESS\1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = t; +?set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t?; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?t; +set spanner.read_only_staleness='EXACT_STALENESS?1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = t; +-/set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t-/; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/t; +set spanner.read_only_staleness='EXACT_STALENESS-/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = t; +/#set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t/#; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#t; +set spanner.read_only_staleness='EXACT_STALENESS/#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = t; +/-set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = t/-; +set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-t; +set spanner.read_only_staleness='EXACT_STALENESS/-1500ms'; NEW_CONNECTION; -set default_transaction_read_only = f; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = F; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; NEW_CONNECTION; -set default_transaction_read_only = f; +set spanner.read_only_staleness='exact_staleness 15000000us'; NEW_CONNECTION; - set default_transaction_read_only = f; + set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; - set default_transaction_read_only = f; + set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set default_transaction_read_only = f; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set default_transaction_read_only = f ; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set default_transaction_read_only = f ; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set default_transaction_read_only = f +set spanner.read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set default_transaction_read_only = f; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set default_transaction_read_only = f; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; set -default_transaction_read_only -= -f; +spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = f; +foo set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f bar; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = f; +%set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f%; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%f; +set spanner.read_only_staleness='EXACT_STALENESS%15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = f; +_set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f_; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_f; +set spanner.read_only_staleness='EXACT_STALENESS_15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = f; +&set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f&; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&f; +set spanner.read_only_staleness='EXACT_STALENESS&15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = f; +$set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f$; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$f; +set spanner.read_only_staleness='EXACT_STALENESS$15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = f; +@set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f@; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@f; +set spanner.read_only_staleness='EXACT_STALENESS@15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = f; +!set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f!; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!f; +set spanner.read_only_staleness='EXACT_STALENESS!15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = f; +*set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f*; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*f; +set spanner.read_only_staleness='EXACT_STALENESS*15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = f; +(set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f(; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(f; +set spanner.read_only_staleness='EXACT_STALENESS(15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = f; +)set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f); +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)f; +set spanner.read_only_staleness='EXACT_STALENESS)15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = f; +-set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f-; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-f; +set spanner.read_only_staleness='EXACT_STALENESS-15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = f; ++set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f+; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+f; +set spanner.read_only_staleness='EXACT_STALENESS+15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = f; +-#set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f-#; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#f; +set spanner.read_only_staleness='EXACT_STALENESS-#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = f; +/set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f/; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/f; +set spanner.read_only_staleness='EXACT_STALENESS/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = f; +\set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f\; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\f; +set spanner.read_only_staleness='EXACT_STALENESS\15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = f; +?set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f?; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?f; +set spanner.read_only_staleness='EXACT_STALENESS?15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = f; +-/set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f-/; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/f; +set spanner.read_only_staleness='EXACT_STALENESS-/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = f; +/#set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f/#; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#f; +set spanner.read_only_staleness='EXACT_STALENESS/#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = f; +/-set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = f/-; +set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-f; +set spanner.read_only_staleness='EXACT_STALENESS/-15000000us'; NEW_CONNECTION; -set default_transaction_read_only to 't'; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY TO 'T'; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; NEW_CONNECTION; -set default_transaction_read_only to 't'; +set spanner.read_only_staleness='exact_staleness 9999ns'; NEW_CONNECTION; - set default_transaction_read_only to 't'; + set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; - set default_transaction_read_only to 't'; + set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set default_transaction_read_only to 't'; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set default_transaction_read_only to 't' ; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set default_transaction_read_only to 't' ; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set default_transaction_read_only to 't' +set spanner.read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set default_transaction_read_only to 't'; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set default_transaction_read_only to 't'; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; set -default_transaction_read_only -to -'t'; +spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only to 't'; +foo set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't' bar; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only to 't'; +%set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'%; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to%'t'; +set spanner.read_only_staleness='EXACT_STALENESS%9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only to 't'; +_set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'_; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to_'t'; +set spanner.read_only_staleness='EXACT_STALENESS_9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only to 't'; +&set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'&; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to&'t'; +set spanner.read_only_staleness='EXACT_STALENESS&9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only to 't'; +$set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'$; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to$'t'; +set spanner.read_only_staleness='EXACT_STALENESS$9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only to 't'; +@set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'@; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to@'t'; +set spanner.read_only_staleness='EXACT_STALENESS@9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only to 't'; +!set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'!; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to!'t'; +set spanner.read_only_staleness='EXACT_STALENESS!9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only to 't'; +*set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'*; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to*'t'; +set spanner.read_only_staleness='EXACT_STALENESS*9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only to 't'; +(set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'(; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to('t'; +set spanner.read_only_staleness='EXACT_STALENESS(9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only to 't'; +)set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'); +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to)'t'; +set spanner.read_only_staleness='EXACT_STALENESS)9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only to 't'; +-set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'-; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-'t'; +set spanner.read_only_staleness='EXACT_STALENESS-9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only to 't'; ++set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'+; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to+'t'; +set spanner.read_only_staleness='EXACT_STALENESS+9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only to 't'; +-#set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'-#; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-#'t'; +set spanner.read_only_staleness='EXACT_STALENESS-#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only to 't'; +/set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'/; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/'t'; +set spanner.read_only_staleness='EXACT_STALENESS/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only to 't'; +\set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'\; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to\'t'; +set spanner.read_only_staleness='EXACT_STALENESS\9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only to 't'; +?set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'?; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to?'t'; +set spanner.read_only_staleness='EXACT_STALENESS?9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only to 't'; +-/set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'-/; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-/'t'; +set spanner.read_only_staleness='EXACT_STALENESS-/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only to 't'; +/#set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'/#; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/#'t'; +set spanner.read_only_staleness='EXACT_STALENESS/#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only to 't'; +/-set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to 't'/-; +set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/-'t'; +set spanner.read_only_staleness='EXACT_STALENESS/-9999ns'; NEW_CONNECTION; -set default_transaction_read_only to "f"; +set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY TO "F"; +SET SPANNER.READ_ONLY_STALENESS TO 'STRONG'; NEW_CONNECTION; -set default_transaction_read_only to "f"; +set spanner.read_only_staleness to 'strong'; NEW_CONNECTION; - set default_transaction_read_only to "f"; + set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; - set default_transaction_read_only to "f"; + set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; -set default_transaction_read_only to "f"; +set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; -set default_transaction_read_only to "f" ; +set spanner.read_only_staleness to 'STRONG' ; NEW_CONNECTION; -set default_transaction_read_only to "f" ; +set spanner.read_only_staleness to 'STRONG' ; NEW_CONNECTION; -set default_transaction_read_only to "f" +set spanner.read_only_staleness to 'STRONG' ; NEW_CONNECTION; -set default_transaction_read_only to "f"; +set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; -set default_transaction_read_only to "f"; +set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; set -default_transaction_read_only +spanner.read_only_staleness to -"f"; +'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only to "f"; +foo set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f" bar; +set spanner.read_only_staleness to 'STRONG' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only to "f"; +%set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"%; +set spanner.read_only_staleness to 'STRONG'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to%"f"; +set spanner.read_only_staleness to%'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only to "f"; +_set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"_; +set spanner.read_only_staleness to 'STRONG'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to_"f"; +set spanner.read_only_staleness to_'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only to "f"; +&set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"&; +set spanner.read_only_staleness to 'STRONG'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to&"f"; +set spanner.read_only_staleness to&'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only to "f"; +$set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"$; +set spanner.read_only_staleness to 'STRONG'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to$"f"; +set spanner.read_only_staleness to$'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only to "f"; +@set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"@; +set spanner.read_only_staleness to 'STRONG'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to@"f"; +set spanner.read_only_staleness to@'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only to "f"; +!set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"!; +set spanner.read_only_staleness to 'STRONG'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to!"f"; +set spanner.read_only_staleness to!'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only to "f"; +*set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"*; +set spanner.read_only_staleness to 'STRONG'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to*"f"; +set spanner.read_only_staleness to*'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only to "f"; +(set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"(; +set spanner.read_only_staleness to 'STRONG'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to("f"; +set spanner.read_only_staleness to('STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only to "f"; +)set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"); +set spanner.read_only_staleness to 'STRONG'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to)"f"; +set spanner.read_only_staleness to)'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only to "f"; +-set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"-; +set spanner.read_only_staleness to 'STRONG'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-"f"; +set spanner.read_only_staleness to-'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only to "f"; ++set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"+; +set spanner.read_only_staleness to 'STRONG'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to+"f"; +set spanner.read_only_staleness to+'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only to "f"; +-#set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"-#; +set spanner.read_only_staleness to 'STRONG'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-#"f"; +set spanner.read_only_staleness to-#'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only to "f"; +/set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"/; +set spanner.read_only_staleness to 'STRONG'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/"f"; +set spanner.read_only_staleness to/'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only to "f"; +\set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"\; +set spanner.read_only_staleness to 'STRONG'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to\"f"; +set spanner.read_only_staleness to\'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only to "f"; +?set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"?; +set spanner.read_only_staleness to 'STRONG'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to?"f"; +set spanner.read_only_staleness to?'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only to "f"; +-/set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"-/; +set spanner.read_only_staleness to 'STRONG'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to-/"f"; +set spanner.read_only_staleness to-/'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only to "f"; +/#set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"/#; +set spanner.read_only_staleness to 'STRONG'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/#"f"; +set spanner.read_only_staleness to/#'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only to "f"; +/-set spanner.read_only_staleness to 'STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to "f"/-; +set spanner.read_only_staleness to 'STRONG'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only to/-"f"; +set spanner.read_only_staleness to/-'STRONG'; NEW_CONNECTION; -set default_transaction_read_only = on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = ON; +SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set default_transaction_read_only = on; +set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123-08:00'; NEW_CONNECTION; - set default_transaction_read_only = on; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; - set default_transaction_read_only = on; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set default_transaction_read_only = on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set default_transaction_read_only = on ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set default_transaction_read_only = on ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set default_transaction_read_only = on +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set default_transaction_read_only = on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set default_transaction_read_only = on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; set -default_transaction_read_only -= -on; +spanner.read_only_staleness +to +'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = on; +foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on bar; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = on; +%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on%; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = on; +_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on_; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = on; +&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on&; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = on; +$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on$; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = on; +@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on@; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = on; +!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on!; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = on; +*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on*; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = on; +(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on(; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = on; +)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on); +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = on; +-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = on; ++set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on+; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = on; +-#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on-#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = on; +/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = on; +\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on\; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = on; +?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on?; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = on; +-/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on-/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = on; +/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on/#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = on; +/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = on/-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-on; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set default_transaction_read_only = off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = OFF; +SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_read_only = off; +set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123z'; NEW_CONNECTION; - set default_transaction_read_only = off; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; - set default_transaction_read_only = off; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_read_only = off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_read_only = off ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set default_transaction_read_only = off ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set default_transaction_read_only = off +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set default_transaction_read_only = off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_read_only = off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; set -default_transaction_read_only -= -off; +spanner.read_only_staleness +to +'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = off; +foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off bar; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = off; +%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off%; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = off; +_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off_; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = off; +&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off&; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = off; +$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off$; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = off; +@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off@; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = off; +!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off!; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = off; +*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off*; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = off; +(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off(; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = off; +)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off); +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = off; +-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = off; ++set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off+; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = off; +-#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off-#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = off; +/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = off; +\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off\; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = off; +?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off?; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = off; +-/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off-/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = off; +/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off/#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = off; +/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = off/-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-off; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set default_transaction_read_only = 1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = 1; +SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_read_only = 1; +set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123+07:45'; NEW_CONNECTION; - set default_transaction_read_only = 1; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; - set default_transaction_read_only = 1; + set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_read_only = 1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_read_only = 1 ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_read_only = 1 ; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_read_only = 1 +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set default_transaction_read_only = 1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_read_only = 1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; set -default_transaction_read_only -= -1; +spanner.read_only_staleness +to +'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = 1; +foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1 bar; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = 1; +%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1%; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = 1; +_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1_; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = 1; +&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1&; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = 1; +$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1$; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = 1; +@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1@; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = 1; +!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1!; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = 1; +*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1*; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = 1; +(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1(; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = 1; +)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1); +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = 1; +-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = 1; ++set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1+; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = 1; +-#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1-#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = 1; +/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = 1; +\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1\; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = 1; +?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1?; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = 1; +-/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1-/; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = 1; +/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1/#; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = 1; +/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 1/-; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-1; +set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set default_transaction_read_only = 0; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = 0; +SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_read_only = 0; +set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321-07:00'; NEW_CONNECTION; - set default_transaction_read_only = 0; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; - set default_transaction_read_only = 0; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_read_only = 0; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_read_only = 0 ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_read_only = 0 ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_read_only = 0 +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set default_transaction_read_only = 0; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_read_only = 0; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; set -default_transaction_read_only -= -0; +spanner.read_only_staleness +to +'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = 0; +foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0 bar; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = 0; +%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0%; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%0; +set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = 0; +_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0_; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_0; +set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = 0; +&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0&; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&0; +set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = 0; +$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0$; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$0; +set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = 0; +@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0@; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@0; +set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = 0; +!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0!; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!0; +set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = 0; +*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0*; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*0; +set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = 0; +(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0(; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(0; +set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = 0; +)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0); +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)0; +set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = 0; +-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-0; +set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = 0; ++set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0+; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+0; +set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = 0; +-#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0-#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#0; +set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = 0; +/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/0; +set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = 0; +\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0\; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\0; +set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = 0; +?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0?; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?0; +set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = 0; +-/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0-/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/0; +set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = 0; +/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0/#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#0; +set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = 0; +/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = 0/-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-0; +set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set default_transaction_read_only = yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = YES; +SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_read_only = yes; +set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321z'; NEW_CONNECTION; - set default_transaction_read_only = yes; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; - set default_transaction_read_only = yes; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_read_only = yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_read_only = yes ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_read_only = yes ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_read_only = yes +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set default_transaction_read_only = yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_read_only = yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; set -default_transaction_read_only -= -yes; +spanner.read_only_staleness +to +'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = yes; +foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes bar; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = yes; +%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes%; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = yes; +_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes_; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = yes; +&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes&; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = yes; +$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes$; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = yes; +@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes@; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = yes; +!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes!; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = yes; +*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes*; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = yes; +(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes(; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = yes; +)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes); +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = yes; +-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = yes; ++set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes+; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = yes; +-#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes-#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = yes; +/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = yes; +\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes\; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = yes; +?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes?; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = yes; +-/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes-/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = yes; +/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes/#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = yes; +/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = yes/-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-yes; +set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set default_transaction_read_only = no; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = NO; +SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_read_only = no; +set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321+05:30'; NEW_CONNECTION; - set default_transaction_read_only = no; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; - set default_transaction_read_only = no; + set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_read_only = no; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_read_only = no ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_read_only = no ; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_read_only = no +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set default_transaction_read_only = no; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_read_only = no; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; set -default_transaction_read_only -= -no; +spanner.read_only_staleness +to +'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = no; +foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no bar; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = no; +%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no%; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%no; +set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = no; +_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no_; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_no; +set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = no; +&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no&; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&no; +set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = no; +$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no$; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$no; +set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = no; +@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no@; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@no; +set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = no; +!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no!; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!no; +set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = no; +*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no*; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*no; +set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = no; +(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no(; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(no; +set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = no; +)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no); +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)no; +set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = no; +-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-no; +set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = no; ++set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no+; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+no; +set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = no; +-#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no-#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#no; +set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = no; +/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/no; +set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = no; +\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no\; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\no; +set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = no; +?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no?; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?no; +set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = no; +-/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no-/; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/no; +set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = no; +/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no/#; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#no; +set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = no; +/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = no/-; +set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-no; +set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set default_transaction_read_only = y; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = Y; +SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 12S'; NEW_CONNECTION; -set default_transaction_read_only = y; +set spanner.read_only_staleness to 'max_staleness 12s'; NEW_CONNECTION; - set default_transaction_read_only = y; + set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; - set default_transaction_read_only = y; + set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_read_only = y; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_read_only = y ; +set spanner.read_only_staleness to 'MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_read_only = y ; +set spanner.read_only_staleness to 'MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_read_only = y +set spanner.read_only_staleness to 'MAX_STALENESS 12s' ; NEW_CONNECTION; -set default_transaction_read_only = y; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; -set default_transaction_read_only = y; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; set -default_transaction_read_only -= -y; +spanner.read_only_staleness +to +'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = y; +foo set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y bar; +set spanner.read_only_staleness to 'MAX_STALENESS 12s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = y; +%set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y%; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%y; +set spanner.read_only_staleness to 'MAX_STALENESS%12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = y; +_set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y_; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_y; +set spanner.read_only_staleness to 'MAX_STALENESS_12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = y; +&set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y&; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&y; +set spanner.read_only_staleness to 'MAX_STALENESS&12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = y; +$set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y$; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$y; +set spanner.read_only_staleness to 'MAX_STALENESS$12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = y; +@set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y@; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@y; +set spanner.read_only_staleness to 'MAX_STALENESS@12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = y; +!set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y!; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!y; +set spanner.read_only_staleness to 'MAX_STALENESS!12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = y; +*set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y*; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*y; +set spanner.read_only_staleness to 'MAX_STALENESS*12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = y; +(set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y(; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(y; +set spanner.read_only_staleness to 'MAX_STALENESS(12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = y; +)set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y); +set spanner.read_only_staleness to 'MAX_STALENESS 12s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)y; +set spanner.read_only_staleness to 'MAX_STALENESS)12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = y; +-set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y-; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-y; +set spanner.read_only_staleness to 'MAX_STALENESS-12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = y; ++set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y+; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+y; +set spanner.read_only_staleness to 'MAX_STALENESS+12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = y; +-#set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y-#; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#y; +set spanner.read_only_staleness to 'MAX_STALENESS-#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = y; +/set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y/; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/y; +set spanner.read_only_staleness to 'MAX_STALENESS/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = y; +\set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y\; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\y; +set spanner.read_only_staleness to 'MAX_STALENESS\12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = y; +?set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y?; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?y; +set spanner.read_only_staleness to 'MAX_STALENESS?12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = y; +-/set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y-/; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/y; +set spanner.read_only_staleness to 'MAX_STALENESS-/12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = y; +/#set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y/#; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#y; +set spanner.read_only_staleness to 'MAX_STALENESS/#12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = y; +/-set spanner.read_only_staleness to 'MAX_STALENESS 12s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = y/-; +set spanner.read_only_staleness to 'MAX_STALENESS 12s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-y; +set spanner.read_only_staleness to 'MAX_STALENESS/-12s'; NEW_CONNECTION; -set default_transaction_read_only = n; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; -SET DEFAULT_TRANSACTION_READ_ONLY = N; +SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 100MS'; NEW_CONNECTION; -set default_transaction_read_only = n; +set spanner.read_only_staleness to 'max_staleness 100ms'; NEW_CONNECTION; - set default_transaction_read_only = n; + set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; - set default_transaction_read_only = n; + set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_read_only = n; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_read_only = n ; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_read_only = n ; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_read_only = n +set spanner.read_only_staleness to 'MAX_STALENESS 100ms' ; NEW_CONNECTION; -set default_transaction_read_only = n; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; -set default_transaction_read_only = n; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; set -default_transaction_read_only -= -n; +spanner.read_only_staleness +to +'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set default_transaction_read_only = n; +foo set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n bar; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set default_transaction_read_only = n; +%set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n%; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =%n; +set spanner.read_only_staleness to 'MAX_STALENESS%100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set default_transaction_read_only = n; +_set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n_; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =_n; +set spanner.read_only_staleness to 'MAX_STALENESS_100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set default_transaction_read_only = n; +&set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n&; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =&n; +set spanner.read_only_staleness to 'MAX_STALENESS&100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set default_transaction_read_only = n; +$set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n$; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =$n; +set spanner.read_only_staleness to 'MAX_STALENESS$100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set default_transaction_read_only = n; +@set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n@; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =@n; +set spanner.read_only_staleness to 'MAX_STALENESS@100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set default_transaction_read_only = n; +!set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n!; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =!n; +set spanner.read_only_staleness to 'MAX_STALENESS!100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set default_transaction_read_only = n; +*set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n*; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =*n; +set spanner.read_only_staleness to 'MAX_STALENESS*100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set default_transaction_read_only = n; +(set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n(; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =(n; +set spanner.read_only_staleness to 'MAX_STALENESS(100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set default_transaction_read_only = n; +)set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n); +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =)n; +set spanner.read_only_staleness to 'MAX_STALENESS)100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set default_transaction_read_only = n; +-set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n-; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-n; +set spanner.read_only_staleness to 'MAX_STALENESS-100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set default_transaction_read_only = n; ++set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n+; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =+n; +set spanner.read_only_staleness to 'MAX_STALENESS+100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set default_transaction_read_only = n; +-#set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n-#; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-#n; +set spanner.read_only_staleness to 'MAX_STALENESS-#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set default_transaction_read_only = n; +/set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n/; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/n; +set spanner.read_only_staleness to 'MAX_STALENESS/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set default_transaction_read_only = n; +\set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n\; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =\n; +set spanner.read_only_staleness to 'MAX_STALENESS\100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set default_transaction_read_only = n; +?set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n?; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =?n; +set spanner.read_only_staleness to 'MAX_STALENESS?100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set default_transaction_read_only = n; +-/set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n-/; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =-/n; +set spanner.read_only_staleness to 'MAX_STALENESS-/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set default_transaction_read_only = n; +/#set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n/#; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/#n; +set spanner.read_only_staleness to 'MAX_STALENESS/#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set default_transaction_read_only = n; +/-set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only = n/-; +set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set default_transaction_read_only =/-n; +set spanner.read_only_staleness to 'MAX_STALENESS/-100ms'; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='STRONG'; +SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 99999US'; NEW_CONNECTION; -set spanner.read_only_staleness='strong'; +set spanner.read_only_staleness to 'max_staleness 99999us'; NEW_CONNECTION; - set spanner.read_only_staleness='STRONG'; + set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; - set spanner.read_only_staleness='STRONG'; + set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG' ; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us' ; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG' ; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us' ; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG' +set spanner.read_only_staleness to 'MAX_STALENESS 99999us' ; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; -set spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; set -spanner.read_only_staleness='STRONG'; +spanner.read_only_staleness +to +'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='STRONG'; +foo set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG' bar; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='STRONG'; +%set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'%; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS%99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='STRONG'; +_set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'_; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS_99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='STRONG'; +&set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'&; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS&99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='STRONG'; +$set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'$; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS$99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='STRONG'; +@set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'@; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS@99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='STRONG'; +!set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'!; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS!99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='STRONG'; +*set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'*; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS*99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='STRONG'; +(set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'(; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS(99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='STRONG'; +)set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'); +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS)99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='STRONG'; +-set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'-; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS-99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='STRONG'; ++set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'+; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS+99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='STRONG'; +-#set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'-#; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS-#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='STRONG'; +/set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'/; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='STRONG'; +\set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'\; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS\99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='STRONG'; +?set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'?; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS?99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='STRONG'; +-/set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'-/; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS-/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='STRONG'; +/#set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'/#; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS/#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='STRONG'; +/-set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='STRONG'/-; +set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.read_only_staleness='STRONG'; +set spanner.read_only_staleness to 'MAX_STALENESS/-99999us'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 10NS'; NEW_CONNECTION; -set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; +set spanner.read_only_staleness to 'max_staleness 10ns'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' +set spanner.read_only_staleness to 'MAX_STALENESS 10ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; set -spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +spanner.read_only_staleness +to +'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +foo set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +%set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS%10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +_set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS_10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +&set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS&10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +$set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS$10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +@set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS@10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +!set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS!10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +*set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS*10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +(set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS(10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +)set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS)10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS-10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; ++set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS+10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-#set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS-#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +\set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS\10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +?set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS?10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-/set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS-/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/#set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS/#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/-set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; +set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; +set spanner.read_only_staleness to 'MAX_STALENESS/-10ns'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 15S'; NEW_CONNECTION; -set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; +set spanner.read_only_staleness to 'exact_staleness 15s'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' +set spanner.read_only_staleness to 'EXACT_STALENESS 15s' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; set -spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +spanner.read_only_staleness +to +'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +foo set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +%set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS%15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +_set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS_15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +&set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS&15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +$set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS$15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +@set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS@15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +!set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS!15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +*set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS*15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +(set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS(15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +)set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS)15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; ++set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS+15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-#set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +\set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS\15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +?set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS?15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-/set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/#set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/-set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; +set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/-15s'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 1500MS'; NEW_CONNECTION; -set spanner.read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; +set spanner.read_only_staleness to 'exact_staleness 1500ms'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; - set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; set -spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +spanner.read_only_staleness +to +'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +foo set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +%set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS%1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +_set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS_1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +&set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS&1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +$set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS$1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +@set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS@1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +!set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS!1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +*set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS*1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +(set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS(1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +)set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS)1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS-1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; ++set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS+1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-#set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS-#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +\set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS\1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +?set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS?1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-/set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS-/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/#set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS/#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/-set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; +set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; +set spanner.read_only_staleness to 'EXACT_STALENESS/-1500ms'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 15000000US'; NEW_CONNECTION; -set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'exact_staleness 15000000us'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; set -spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +spanner.read_only_staleness +to +'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +foo set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +%set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS%15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +_set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS_15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +&set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS&15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +$set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS$15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +@set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS@15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +!set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS!15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +*set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS*15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +(set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS(15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +)set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS)15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS-15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; ++set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS+15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-#set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS-#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +\set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS\15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +?set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS?15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-/set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS-/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/#set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS/#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/-set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; +set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; +set spanner.read_only_staleness to 'EXACT_STALENESS/-15000000us'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 9999NS'; NEW_CONNECTION; -set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; +set spanner.read_only_staleness to 'exact_staleness 9999ns'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; set -spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +spanner.read_only_staleness +to +'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +foo set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +%set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS%9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +_set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS_9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +&set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS&9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +$set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS$9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +@set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS@9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +!set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS!9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +*set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS*9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +(set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS(9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +)set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS)9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; ++set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS+9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-#set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +\set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS\9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +?set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS?9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-/set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS-/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/#set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/-set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; +set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; +set spanner.read_only_staleness to 'EXACT_STALENESS/-9999ns'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.optimizer_version='1'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +SET SPANNER.OPTIMIZER_VERSION='1'; NEW_CONNECTION; -set spanner.read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; +set spanner.optimizer_version='1'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set spanner.optimizer_version='1'; NEW_CONNECTION; - set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set spanner.optimizer_version='1'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.optimizer_version='1'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set spanner.optimizer_version='1' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set spanner.optimizer_version='1' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' +set spanner.optimizer_version='1' ; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.optimizer_version='1'; NEW_CONNECTION; -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.optimizer_version='1'; NEW_CONNECTION; set -spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +foo set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; +set spanner.optimizer_version='1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +%set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; +set spanner.optimizer_version='1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; +set%spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +_set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; +set spanner.optimizer_version='1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; +set_spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +&set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; +set spanner.optimizer_version='1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; +set&spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +$set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; +set spanner.optimizer_version='1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; +set$spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +@set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; +set spanner.optimizer_version='1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; +set@spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +!set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; +set spanner.optimizer_version='1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; +set!spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +*set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; +set spanner.optimizer_version='1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; +set*spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +(set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; +set spanner.optimizer_version='1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; +set(spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +)set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); +set spanner.optimizer_version='1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; +set)spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; +set spanner.optimizer_version='1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; +set-spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; ++set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; +set spanner.optimizer_version='1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; +set+spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-#set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; +set spanner.optimizer_version='1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; +set-#spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; +set spanner.optimizer_version='1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; +set/spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +\set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; +set spanner.optimizer_version='1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; +set\spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +?set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; +set spanner.optimizer_version='1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; +set?spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-/set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; +set spanner.optimizer_version='1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; +set-/spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/#set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; +set spanner.optimizer_version='1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; +set/#spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/-set spanner.optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; +set spanner.optimizer_version='1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; +set/-spanner.optimizer_version='1'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s'; +set spanner.optimizer_version='200'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 12S'; +SET SPANNER.OPTIMIZER_VERSION='200'; NEW_CONNECTION; -set spanner.read_only_staleness='max_staleness 12s'; +set spanner.optimizer_version='200'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 12s'; + set spanner.optimizer_version='200'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 12s'; + set spanner.optimizer_version='200'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s'; +set spanner.optimizer_version='200'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s' ; +set spanner.optimizer_version='200' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s' ; +set spanner.optimizer_version='200' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s' +set spanner.optimizer_version='200' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s'; +set spanner.optimizer_version='200'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 12s'; +set spanner.optimizer_version='200'; NEW_CONNECTION; set -spanner.read_only_staleness='MAX_STALENESS 12s'; +spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MAX_STALENESS 12s'; +foo set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s' bar; +set spanner.optimizer_version='200' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MAX_STALENESS 12s'; +%set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'%; +set spanner.optimizer_version='200'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS%12s'; +set%spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MAX_STALENESS 12s'; +_set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'_; +set spanner.optimizer_version='200'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS_12s'; +set_spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MAX_STALENESS 12s'; +&set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'&; +set spanner.optimizer_version='200'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS&12s'; +set&spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MAX_STALENESS 12s'; +$set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'$; +set spanner.optimizer_version='200'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS$12s'; +set$spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MAX_STALENESS 12s'; +@set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'@; +set spanner.optimizer_version='200'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS@12s'; +set@spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MAX_STALENESS 12s'; +!set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'!; +set spanner.optimizer_version='200'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS!12s'; +set!spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MAX_STALENESS 12s'; +*set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'*; +set spanner.optimizer_version='200'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS*12s'; +set*spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MAX_STALENESS 12s'; +(set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'(; +set spanner.optimizer_version='200'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS(12s'; +set(spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MAX_STALENESS 12s'; +)set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'); +set spanner.optimizer_version='200'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS)12s'; +set)spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MAX_STALENESS 12s'; +-set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'-; +set spanner.optimizer_version='200'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-12s'; +set-spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MAX_STALENESS 12s'; ++set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'+; +set spanner.optimizer_version='200'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS+12s'; +set+spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MAX_STALENESS 12s'; +-#set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'-#; +set spanner.optimizer_version='200'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-#12s'; +set-#spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MAX_STALENESS 12s'; +/set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'/; +set spanner.optimizer_version='200'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/12s'; +set/spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MAX_STALENESS 12s'; +\set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'\; +set spanner.optimizer_version='200'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS\12s'; +set\spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MAX_STALENESS 12s'; +?set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'?; +set spanner.optimizer_version='200'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS?12s'; +set?spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MAX_STALENESS 12s'; +-/set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'-/; +set spanner.optimizer_version='200'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-/12s'; +set-/spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MAX_STALENESS 12s'; +/#set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'/#; +set spanner.optimizer_version='200'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/#12s'; +set/#spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MAX_STALENESS 12s'; +/-set spanner.optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 12s'/-; +set spanner.optimizer_version='200'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/-12s'; +set/-spanner.optimizer_version='200'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms'; +set spanner.optimizer_version='LATEST'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100MS'; +SET SPANNER.OPTIMIZER_VERSION='LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='max_staleness 100ms'; +set spanner.optimizer_version='latest'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 100ms'; + set spanner.optimizer_version='LATEST'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 100ms'; + set spanner.optimizer_version='LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms'; +set spanner.optimizer_version='LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms' ; +set spanner.optimizer_version='LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms' ; +set spanner.optimizer_version='LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms' +set spanner.optimizer_version='LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms'; +set spanner.optimizer_version='LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 100ms'; +set spanner.optimizer_version='LATEST'; NEW_CONNECTION; set -spanner.read_only_staleness='MAX_STALENESS 100ms'; +spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MAX_STALENESS 100ms'; +foo set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms' bar; +set spanner.optimizer_version='LATEST' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MAX_STALENESS 100ms'; +%set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'%; +set spanner.optimizer_version='LATEST'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS%100ms'; +set%spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MAX_STALENESS 100ms'; +_set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'_; +set spanner.optimizer_version='LATEST'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS_100ms'; +set_spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MAX_STALENESS 100ms'; +&set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'&; +set spanner.optimizer_version='LATEST'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS&100ms'; +set&spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MAX_STALENESS 100ms'; +$set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'$; +set spanner.optimizer_version='LATEST'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS$100ms'; +set$spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MAX_STALENESS 100ms'; +@set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'@; +set spanner.optimizer_version='LATEST'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS@100ms'; +set@spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MAX_STALENESS 100ms'; +!set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'!; +set spanner.optimizer_version='LATEST'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS!100ms'; +set!spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MAX_STALENESS 100ms'; +*set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'*; +set spanner.optimizer_version='LATEST'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS*100ms'; +set*spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MAX_STALENESS 100ms'; +(set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'(; +set spanner.optimizer_version='LATEST'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS(100ms'; +set(spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MAX_STALENESS 100ms'; +)set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'); +set spanner.optimizer_version='LATEST'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS)100ms'; +set)spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MAX_STALENESS 100ms'; +-set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'-; +set spanner.optimizer_version='LATEST'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-100ms'; +set-spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MAX_STALENESS 100ms'; ++set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'+; +set spanner.optimizer_version='LATEST'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS+100ms'; +set+spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MAX_STALENESS 100ms'; +-#set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'-#; +set spanner.optimizer_version='LATEST'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-#100ms'; +set-#spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MAX_STALENESS 100ms'; +/set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'/; +set spanner.optimizer_version='LATEST'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/100ms'; +set/spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MAX_STALENESS 100ms'; +\set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'\; +set spanner.optimizer_version='LATEST'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS\100ms'; +set\spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MAX_STALENESS 100ms'; +?set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'?; +set spanner.optimizer_version='LATEST'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS?100ms'; +set?spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MAX_STALENESS 100ms'; +-/set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'-/; +set spanner.optimizer_version='LATEST'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-/100ms'; +set-/spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MAX_STALENESS 100ms'; +/#set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'/#; +set spanner.optimizer_version='LATEST'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/#100ms'; +set/#spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MAX_STALENESS 100ms'; +/-set spanner.optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 100ms'/-; +set spanner.optimizer_version='LATEST'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/-100ms'; +set/-spanner.optimizer_version='LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us'; +set spanner.optimizer_version=''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 99999US'; +SET SPANNER.OPTIMIZER_VERSION=''; NEW_CONNECTION; -set spanner.read_only_staleness='max_staleness 99999us'; +set spanner.optimizer_version=''; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 99999us'; + set spanner.optimizer_version=''; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 99999us'; + set spanner.optimizer_version=''; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us'; +set spanner.optimizer_version=''; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us' ; +set spanner.optimizer_version='' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us' ; +set spanner.optimizer_version='' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us' +set spanner.optimizer_version='' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us'; +set spanner.optimizer_version=''; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 99999us'; +set spanner.optimizer_version=''; NEW_CONNECTION; set -spanner.read_only_staleness='MAX_STALENESS 99999us'; +spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MAX_STALENESS 99999us'; +foo set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us' bar; +set spanner.optimizer_version='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MAX_STALENESS 99999us'; +%set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'%; +set spanner.optimizer_version=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS%99999us'; +set%spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MAX_STALENESS 99999us'; +_set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'_; +set spanner.optimizer_version=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS_99999us'; +set_spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MAX_STALENESS 99999us'; +&set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'&; +set spanner.optimizer_version=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS&99999us'; +set&spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MAX_STALENESS 99999us'; +$set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'$; +set spanner.optimizer_version=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS$99999us'; +set$spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MAX_STALENESS 99999us'; +@set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'@; +set spanner.optimizer_version=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS@99999us'; +set@spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MAX_STALENESS 99999us'; +!set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'!; +set spanner.optimizer_version=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS!99999us'; +set!spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MAX_STALENESS 99999us'; +*set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'*; +set spanner.optimizer_version=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS*99999us'; +set*spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MAX_STALENESS 99999us'; +(set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'(; +set spanner.optimizer_version=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS(99999us'; +set(spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MAX_STALENESS 99999us'; +)set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'); +set spanner.optimizer_version=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS)99999us'; +set)spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MAX_STALENESS 99999us'; +-set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'-; +set spanner.optimizer_version=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-99999us'; +set-spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MAX_STALENESS 99999us'; ++set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'+; +set spanner.optimizer_version=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS+99999us'; +set+spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MAX_STALENESS 99999us'; +-#set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'-#; +set spanner.optimizer_version=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-#99999us'; +set-#spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MAX_STALENESS 99999us'; +/set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'/; +set spanner.optimizer_version=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/99999us'; +set/spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MAX_STALENESS 99999us'; +\set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'\; +set spanner.optimizer_version=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS\99999us'; +set\spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MAX_STALENESS 99999us'; +?set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'?; +set spanner.optimizer_version=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS?99999us'; +set?spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MAX_STALENESS 99999us'; +-/set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'-/; +set spanner.optimizer_version=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-/99999us'; +set-/spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MAX_STALENESS 99999us'; +/#set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'/#; +set spanner.optimizer_version=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/#99999us'; +set/#spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MAX_STALENESS 99999us'; +/-set spanner.optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 99999us'/-; +set spanner.optimizer_version=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/-99999us'; +set/-spanner.optimizer_version=''; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns'; +set spanner.optimizer_version to '1'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10NS'; +SET SPANNER.OPTIMIZER_VERSION TO '1'; NEW_CONNECTION; -set spanner.read_only_staleness='max_staleness 10ns'; +set spanner.optimizer_version to '1'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 10ns'; + set spanner.optimizer_version to '1'; NEW_CONNECTION; - set spanner.read_only_staleness='MAX_STALENESS 10ns'; + set spanner.optimizer_version to '1'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns'; +set spanner.optimizer_version to '1'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns' ; +set spanner.optimizer_version to '1' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns' ; +set spanner.optimizer_version to '1' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns' +set spanner.optimizer_version to '1' ; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns'; +set spanner.optimizer_version to '1'; NEW_CONNECTION; -set spanner.read_only_staleness='MAX_STALENESS 10ns'; +set spanner.optimizer_version to '1'; NEW_CONNECTION; set -spanner.read_only_staleness='MAX_STALENESS 10ns'; +spanner.optimizer_version +to +'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='MAX_STALENESS 10ns'; +foo set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns' bar; +set spanner.optimizer_version to '1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='MAX_STALENESS 10ns'; +%set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'%; +set spanner.optimizer_version to '1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS%10ns'; +set spanner.optimizer_version to%'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='MAX_STALENESS 10ns'; +_set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'_; +set spanner.optimizer_version to '1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS_10ns'; +set spanner.optimizer_version to_'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='MAX_STALENESS 10ns'; +&set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'&; +set spanner.optimizer_version to '1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS&10ns'; +set spanner.optimizer_version to&'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='MAX_STALENESS 10ns'; +$set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'$; +set spanner.optimizer_version to '1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS$10ns'; +set spanner.optimizer_version to$'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='MAX_STALENESS 10ns'; +@set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'@; +set spanner.optimizer_version to '1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS@10ns'; +set spanner.optimizer_version to@'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='MAX_STALENESS 10ns'; +!set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'!; +set spanner.optimizer_version to '1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS!10ns'; +set spanner.optimizer_version to!'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='MAX_STALENESS 10ns'; +*set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'*; +set spanner.optimizer_version to '1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS*10ns'; +set spanner.optimizer_version to*'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='MAX_STALENESS 10ns'; +(set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'(; +set spanner.optimizer_version to '1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS(10ns'; +set spanner.optimizer_version to('1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='MAX_STALENESS 10ns'; +)set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'); +set spanner.optimizer_version to '1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS)10ns'; +set spanner.optimizer_version to)'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='MAX_STALENESS 10ns'; +-set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'-; +set spanner.optimizer_version to '1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-10ns'; +set spanner.optimizer_version to-'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='MAX_STALENESS 10ns'; ++set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'+; +set spanner.optimizer_version to '1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS+10ns'; +set spanner.optimizer_version to+'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='MAX_STALENESS 10ns'; +-#set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'-#; +set spanner.optimizer_version to '1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-#10ns'; +set spanner.optimizer_version to-#'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='MAX_STALENESS 10ns'; +/set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'/; +set spanner.optimizer_version to '1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/10ns'; +set spanner.optimizer_version to/'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='MAX_STALENESS 10ns'; +\set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'\; +set spanner.optimizer_version to '1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS\10ns'; +set spanner.optimizer_version to\'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='MAX_STALENESS 10ns'; +?set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'?; +set spanner.optimizer_version to '1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS?10ns'; +set spanner.optimizer_version to?'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='MAX_STALENESS 10ns'; +-/set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'-/; +set spanner.optimizer_version to '1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS-/10ns'; +set spanner.optimizer_version to-/'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='MAX_STALENESS 10ns'; +/#set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'/#; +set spanner.optimizer_version to '1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/#10ns'; +set spanner.optimizer_version to/#'1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='MAX_STALENESS 10ns'; +/-set spanner.optimizer_version to '1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS 10ns'/-; +set spanner.optimizer_version to '1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='MAX_STALENESS/-10ns'; +set spanner.optimizer_version to/-'1'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s'; +set spanner.optimizer_version to '200'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 15S'; +SET SPANNER.OPTIMIZER_VERSION TO '200'; NEW_CONNECTION; -set spanner.read_only_staleness='exact_staleness 15s'; +set spanner.optimizer_version to '200'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 15s'; + set spanner.optimizer_version to '200'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 15s'; + set spanner.optimizer_version to '200'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s'; +set spanner.optimizer_version to '200'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s' ; +set spanner.optimizer_version to '200' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s' ; +set spanner.optimizer_version to '200' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s' +set spanner.optimizer_version to '200' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s'; +set spanner.optimizer_version to '200'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15s'; +set spanner.optimizer_version to '200'; NEW_CONNECTION; set -spanner.read_only_staleness='EXACT_STALENESS 15s'; +spanner.optimizer_version +to +'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='EXACT_STALENESS 15s'; +foo set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s' bar; +set spanner.optimizer_version to '200' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='EXACT_STALENESS 15s'; +%set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'%; +set spanner.optimizer_version to '200'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS%15s'; +set spanner.optimizer_version to%'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='EXACT_STALENESS 15s'; +_set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'_; +set spanner.optimizer_version to '200'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS_15s'; +set spanner.optimizer_version to_'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='EXACT_STALENESS 15s'; +&set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'&; +set spanner.optimizer_version to '200'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS&15s'; +set spanner.optimizer_version to&'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='EXACT_STALENESS 15s'; +$set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'$; +set spanner.optimizer_version to '200'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS$15s'; +set spanner.optimizer_version to$'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='EXACT_STALENESS 15s'; +@set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'@; +set spanner.optimizer_version to '200'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS@15s'; +set spanner.optimizer_version to@'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='EXACT_STALENESS 15s'; +!set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'!; +set spanner.optimizer_version to '200'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS!15s'; +set spanner.optimizer_version to!'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='EXACT_STALENESS 15s'; +*set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'*; +set spanner.optimizer_version to '200'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS*15s'; +set spanner.optimizer_version to*'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='EXACT_STALENESS 15s'; +(set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'(; +set spanner.optimizer_version to '200'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS(15s'; +set spanner.optimizer_version to('200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='EXACT_STALENESS 15s'; +)set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'); +set spanner.optimizer_version to '200'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS)15s'; +set spanner.optimizer_version to)'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='EXACT_STALENESS 15s'; +-set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'-; +set spanner.optimizer_version to '200'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-15s'; +set spanner.optimizer_version to-'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='EXACT_STALENESS 15s'; ++set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'+; +set spanner.optimizer_version to '200'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS+15s'; +set spanner.optimizer_version to+'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='EXACT_STALENESS 15s'; +-#set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'-#; +set spanner.optimizer_version to '200'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-#15s'; +set spanner.optimizer_version to-#'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='EXACT_STALENESS 15s'; +/set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'/; +set spanner.optimizer_version to '200'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/15s'; +set spanner.optimizer_version to/'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='EXACT_STALENESS 15s'; +\set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'\; +set spanner.optimizer_version to '200'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS\15s'; +set spanner.optimizer_version to\'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='EXACT_STALENESS 15s'; +?set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'?; +set spanner.optimizer_version to '200'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS?15s'; +set spanner.optimizer_version to?'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='EXACT_STALENESS 15s'; +-/set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'-/; +set spanner.optimizer_version to '200'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-/15s'; +set spanner.optimizer_version to-/'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='EXACT_STALENESS 15s'; +/#set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'/#; +set spanner.optimizer_version to '200'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/#15s'; +set spanner.optimizer_version to/#'200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='EXACT_STALENESS 15s'; +/-set spanner.optimizer_version to '200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15s'/-; +set spanner.optimizer_version to '200'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/-15s'; +set spanner.optimizer_version to/-'200'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; +SET SPANNER.OPTIMIZER_VERSION TO 'LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='exact_staleness 1500ms'; +set spanner.optimizer_version to 'latest'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; + set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; + set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms' ; +set spanner.optimizer_version to 'LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms' ; +set spanner.optimizer_version to 'LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms' +set spanner.optimizer_version to 'LATEST' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; set -spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +spanner.optimizer_version +to +'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +foo set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms' bar; +set spanner.optimizer_version to 'LATEST' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +%set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'%; +set spanner.optimizer_version to 'LATEST'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS%1500ms'; +set spanner.optimizer_version to%'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +_set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'_; +set spanner.optimizer_version to 'LATEST'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS_1500ms'; +set spanner.optimizer_version to_'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +&set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'&; +set spanner.optimizer_version to 'LATEST'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS&1500ms'; +set spanner.optimizer_version to&'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +$set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'$; +set spanner.optimizer_version to 'LATEST'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS$1500ms'; +set spanner.optimizer_version to$'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +@set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'@; +set spanner.optimizer_version to 'LATEST'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS@1500ms'; +set spanner.optimizer_version to@'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +!set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'!; +set spanner.optimizer_version to 'LATEST'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS!1500ms'; +set spanner.optimizer_version to!'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +*set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'*; +set spanner.optimizer_version to 'LATEST'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS*1500ms'; +set spanner.optimizer_version to*'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +(set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'(; +set spanner.optimizer_version to 'LATEST'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS(1500ms'; +set spanner.optimizer_version to('LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +)set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'); +set spanner.optimizer_version to 'LATEST'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS)1500ms'; +set spanner.optimizer_version to)'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +-set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-; +set spanner.optimizer_version to 'LATEST'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-1500ms'; +set spanner.optimizer_version to-'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; ++set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'+; +set spanner.optimizer_version to 'LATEST'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS+1500ms'; +set spanner.optimizer_version to+'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +-#set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-#; +set spanner.optimizer_version to 'LATEST'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-#1500ms'; +set spanner.optimizer_version to-#'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +/set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/; +set spanner.optimizer_version to 'LATEST'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/1500ms'; +set spanner.optimizer_version to/'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +\set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'\; +set spanner.optimizer_version to 'LATEST'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS\1500ms'; +set spanner.optimizer_version to\'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +?set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'?; +set spanner.optimizer_version to 'LATEST'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS?1500ms'; +set spanner.optimizer_version to?'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +-/set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'-/; +set spanner.optimizer_version to 'LATEST'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-/1500ms'; +set spanner.optimizer_version to-/'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +/#set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/#; +set spanner.optimizer_version to 'LATEST'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/#1500ms'; +set spanner.optimizer_version to/#'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='EXACT_STALENESS 1500ms'; +/-set spanner.optimizer_version to 'LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 1500ms'/-; +set spanner.optimizer_version to 'LATEST'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/-1500ms'; +set spanner.optimizer_version to/-'LATEST'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +set spanner.optimizer_version to ''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; +SET SPANNER.OPTIMIZER_VERSION TO ''; NEW_CONNECTION; -set spanner.read_only_staleness='exact_staleness 15000000us'; +set spanner.optimizer_version to ''; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; + set spanner.optimizer_version to ''; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; + set spanner.optimizer_version to ''; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +set spanner.optimizer_version to ''; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us' ; +set spanner.optimizer_version to '' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us' ; +set spanner.optimizer_version to '' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us' +set spanner.optimizer_version to '' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +set spanner.optimizer_version to ''; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +set spanner.optimizer_version to ''; NEW_CONNECTION; set -spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +spanner.optimizer_version +to +''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +foo set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us' bar; +set spanner.optimizer_version to '' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +%set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'%; +set spanner.optimizer_version to ''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS%15000000us'; +set spanner.optimizer_version to%''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +_set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'_; +set spanner.optimizer_version to ''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS_15000000us'; +set spanner.optimizer_version to_''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +&set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'&; +set spanner.optimizer_version to ''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS&15000000us'; +set spanner.optimizer_version to&''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +$set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'$; +set spanner.optimizer_version to ''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS$15000000us'; +set spanner.optimizer_version to$''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +@set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'@; +set spanner.optimizer_version to ''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS@15000000us'; +set spanner.optimizer_version to@''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +!set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'!; +set spanner.optimizer_version to ''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS!15000000us'; +set spanner.optimizer_version to!''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +*set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'*; +set spanner.optimizer_version to ''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS*15000000us'; +set spanner.optimizer_version to*''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +(set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'(; +set spanner.optimizer_version to ''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS(15000000us'; +set spanner.optimizer_version to(''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +)set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'); +set spanner.optimizer_version to ''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS)15000000us'; +set spanner.optimizer_version to)''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +-set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-; +set spanner.optimizer_version to ''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-15000000us'; +set spanner.optimizer_version to-''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; ++set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'+; +set spanner.optimizer_version to ''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS+15000000us'; +set spanner.optimizer_version to+''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +-#set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-#; +set spanner.optimizer_version to ''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-#15000000us'; +set spanner.optimizer_version to-#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +/set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/; +set spanner.optimizer_version to ''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/15000000us'; +set spanner.optimizer_version to/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +\set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'\; +set spanner.optimizer_version to ''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS\15000000us'; +set spanner.optimizer_version to\''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +?set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'?; +set spanner.optimizer_version to ''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS?15000000us'; +set spanner.optimizer_version to?''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +-/set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'-/; +set spanner.optimizer_version to ''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-/15000000us'; +set spanner.optimizer_version to-/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +/#set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/#; +set spanner.optimizer_version to ''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/#15000000us'; +set spanner.optimizer_version to/#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='EXACT_STALENESS 15000000us'; +/-set spanner.optimizer_version to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 15000000us'/-; +set spanner.optimizer_version to ''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/-15000000us'; +set spanner.optimizer_version to/-''; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; +SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='AUTO_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness='exact_staleness 9999ns'; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22utc'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; + set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; - set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; + set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns' ; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns' ; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns' +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; set -spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +foo set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns' bar; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +%set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'%; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS%9999ns'; +set%spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +_set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'_; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS_9999ns'; +set_spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +&set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'&; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS&9999ns'; +set&spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +$set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'$; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS$9999ns'; +set$spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +@set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'@; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS@9999ns'; +set@spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +!set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'!; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS!9999ns'; +set!spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +*set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'*; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS*9999ns'; +set*spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +(set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'(; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS(9999ns'; +set(spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +)set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'); +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS)9999ns'; +set)spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +-set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-9999ns'; +set-spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; ++set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'+; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS+9999ns'; +set+spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +-#set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-#; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-#9999ns'; +set-#spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +/set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/9999ns'; +set/spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +\set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'\; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS\9999ns'; +set\spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +?set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'?; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS?9999ns'; +set?spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +-/set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'-/; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS-/9999ns'; +set-/spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +/#set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/#; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/#9999ns'; +set/#spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness='EXACT_STALENESS 9999ns'; +/-set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS 9999ns'/-; +set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness='EXACT_STALENESS/-9999ns'; +set/-spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG'; +set spanner.optimizer_statistics_package=''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'STRONG'; +SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'strong'; +set spanner.optimizer_statistics_package=''; NEW_CONNECTION; - set spanner.read_only_staleness to 'STRONG'; + set spanner.optimizer_statistics_package=''; NEW_CONNECTION; - set spanner.read_only_staleness to 'STRONG'; + set spanner.optimizer_statistics_package=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG'; +set spanner.optimizer_statistics_package=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG' ; +set spanner.optimizer_statistics_package='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG' ; +set spanner.optimizer_statistics_package='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG' +set spanner.optimizer_statistics_package='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG'; +set spanner.optimizer_statistics_package=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'STRONG'; +set spanner.optimizer_statistics_package=''; NEW_CONNECTION; set -spanner.read_only_staleness -to -'STRONG'; +spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'STRONG'; +foo set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG' bar; +set spanner.optimizer_statistics_package='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'STRONG'; +%set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'%; +set spanner.optimizer_statistics_package=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to%'STRONG'; +set%spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'STRONG'; +_set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'_; +set spanner.optimizer_statistics_package=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to_'STRONG'; +set_spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'STRONG'; +&set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'&; +set spanner.optimizer_statistics_package=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to&'STRONG'; +set&spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'STRONG'; +$set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'$; +set spanner.optimizer_statistics_package=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to$'STRONG'; +set$spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'STRONG'; +@set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'@; +set spanner.optimizer_statistics_package=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to@'STRONG'; +set@spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'STRONG'; +!set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'!; +set spanner.optimizer_statistics_package=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to!'STRONG'; +set!spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'STRONG'; +*set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'*; +set spanner.optimizer_statistics_package=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to*'STRONG'; +set*spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'STRONG'; +(set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'(; +set spanner.optimizer_statistics_package=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to('STRONG'; +set(spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'STRONG'; +)set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'); +set spanner.optimizer_statistics_package=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to)'STRONG'; +set)spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'STRONG'; +-set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'-; +set spanner.optimizer_statistics_package=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to-'STRONG'; +set-spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'STRONG'; ++set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'+; +set spanner.optimizer_statistics_package=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to+'STRONG'; +set+spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'STRONG'; +-#set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'-#; +set spanner.optimizer_statistics_package=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to-#'STRONG'; +set-#spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'STRONG'; +/set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'/; +set spanner.optimizer_statistics_package=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to/'STRONG'; +set/spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'STRONG'; +\set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'\; +set spanner.optimizer_statistics_package=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to\'STRONG'; +set\spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'STRONG'; +?set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'?; +set spanner.optimizer_statistics_package=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to?'STRONG'; +set?spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'STRONG'; +-/set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'-/; +set spanner.optimizer_statistics_package=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to-/'STRONG'; +set-/spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'STRONG'; +/#set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'/#; +set spanner.optimizer_statistics_package=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to/#'STRONG'; +set/#spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'STRONG'; +/-set spanner.optimizer_statistics_package=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'STRONG'/-; +set spanner.optimizer_statistics_package=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to/-'STRONG'; +set/-spanner.optimizer_statistics_package=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE TO 'AUTO_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22utc'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.optimizer_statistics_package to -'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +foo set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +%set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to%'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +_set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to_'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +&set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to&'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +$set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to$'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +@set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to@'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +!set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to!'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +*set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to*'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +(set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to('auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +)set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to)'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to-'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; ++set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to+'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-#set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to-#'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to/'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +\set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to\'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +?set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to?'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +-/set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to-/'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/#set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to/#'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +/-set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; +set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; +set spanner.optimizer_statistics_package to/-'auto_20191128_14_47_22UTC'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE TO ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123z'; +set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set spanner.optimizer_statistics_package to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set spanner.optimizer_statistics_package to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' +set spanner.optimizer_statistics_package to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.optimizer_statistics_package to -'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +foo set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; +set spanner.optimizer_statistics_package to '' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +%set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; +set spanner.optimizer_statistics_package to ''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to%''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +_set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; +set spanner.optimizer_statistics_package to ''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to_''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +&set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; +set spanner.optimizer_statistics_package to ''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to&''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +$set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; +set spanner.optimizer_statistics_package to ''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to$''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +@set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; +set spanner.optimizer_statistics_package to ''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to@''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +!set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; +set spanner.optimizer_statistics_package to ''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to!''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +*set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; +set spanner.optimizer_statistics_package to ''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to*''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +(set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; +set spanner.optimizer_statistics_package to ''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to(''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +)set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); +set spanner.optimizer_statistics_package to ''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to)''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; +set spanner.optimizer_statistics_package to ''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to-''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; ++set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; +set spanner.optimizer_statistics_package to ''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to+''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-#set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; +set spanner.optimizer_statistics_package to ''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to-#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; +set spanner.optimizer_statistics_package to ''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +\set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; +set spanner.optimizer_statistics_package to ''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to\''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +?set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; +set spanner.optimizer_statistics_package to ''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to?''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-/set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; +set spanner.optimizer_statistics_package to ''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to-/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/#set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; +set spanner.optimizer_statistics_package to ''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to/#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/-set spanner.optimizer_statistics_package to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; +set spanner.optimizer_statistics_package to ''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; +set spanner.optimizer_statistics_package to/-''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats = true; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +SET SPANNER.RETURN_COMMIT_STATS = TRUE; NEW_CONNECTION; -set spanner.read_only_staleness to 'min_read_timestamp 2018-01-02t03:04:05.123+07:45'; +set spanner.return_commit_stats = true; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set spanner.return_commit_stats = true; NEW_CONNECTION; - set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set spanner.return_commit_stats = true; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats = true; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set spanner.return_commit_stats = true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set spanner.return_commit_stats = true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' +set spanner.return_commit_stats = true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats = true; NEW_CONNECTION; -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats = true; NEW_CONNECTION; set -spanner.read_only_staleness -to -'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +spanner.return_commit_stats += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +foo set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; +set spanner.return_commit_stats = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +%set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; +set spanner.return_commit_stats = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +_set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; +set spanner.return_commit_stats = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +&set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; +set spanner.return_commit_stats = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +$set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; +set spanner.return_commit_stats = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +@set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; +set spanner.return_commit_stats = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +!set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; +set spanner.return_commit_stats = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +*set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; +set spanner.return_commit_stats = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +(set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; +set spanner.return_commit_stats = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +)set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); +set spanner.return_commit_stats = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; +set spanner.return_commit_stats = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; ++set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; +set spanner.return_commit_stats = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-#set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; +set spanner.return_commit_stats = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; +set spanner.return_commit_stats = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +\set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; +set spanner.return_commit_stats = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +?set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; +set spanner.return_commit_stats = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-/set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; +set spanner.return_commit_stats = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/#set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; +set spanner.return_commit_stats = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/-set spanner.return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; +set spanner.return_commit_stats = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; +set spanner.return_commit_stats =/-true; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats = false; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +SET SPANNER.RETURN_COMMIT_STATS = FALSE; NEW_CONNECTION; -set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321-07:00'; +set spanner.return_commit_stats = false; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set spanner.return_commit_stats = false; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set spanner.return_commit_stats = false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats = false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set spanner.return_commit_stats = false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set spanner.return_commit_stats = false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' +set spanner.return_commit_stats = false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats = false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats = false; NEW_CONNECTION; set -spanner.read_only_staleness -to -'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +spanner.return_commit_stats += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +foo set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; +set spanner.return_commit_stats = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +%set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; +set spanner.return_commit_stats = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +_set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; +set spanner.return_commit_stats = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +&set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; +set spanner.return_commit_stats = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +$set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; +set spanner.return_commit_stats = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +@set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; +set spanner.return_commit_stats = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +!set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; +set spanner.return_commit_stats = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +*set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; +set spanner.return_commit_stats = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +(set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; +set spanner.return_commit_stats = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +)set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); +set spanner.return_commit_stats = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; +set spanner.return_commit_stats = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; ++set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; +set spanner.return_commit_stats = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-#set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; +set spanner.return_commit_stats = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; +set spanner.return_commit_stats = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +\set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; +set spanner.return_commit_stats = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +?set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; +set spanner.return_commit_stats = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-/set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; +set spanner.return_commit_stats = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/#set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; +set spanner.return_commit_stats = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/-set spanner.return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; +set spanner.return_commit_stats = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; +set spanner.return_commit_stats =/-false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to true; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +SET SPANNER.RETURN_COMMIT_STATS TO TRUE; NEW_CONNECTION; -set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321z'; +set spanner.return_commit_stats to true; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set spanner.return_commit_stats to true; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set spanner.return_commit_stats to true; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to true; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set spanner.return_commit_stats to true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set spanner.return_commit_stats to true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' +set spanner.return_commit_stats to true ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to true; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to true; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.return_commit_stats to -'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +foo set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; +set spanner.return_commit_stats to true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +%set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; +set spanner.return_commit_stats to true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +_set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; +set spanner.return_commit_stats to true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +&set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; +set spanner.return_commit_stats to true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +$set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; +set spanner.return_commit_stats to true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +@set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; +set spanner.return_commit_stats to true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +!set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; +set spanner.return_commit_stats to true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +*set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; +set spanner.return_commit_stats to true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +(set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; +set spanner.return_commit_stats to true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +)set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); +set spanner.return_commit_stats to true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; +set spanner.return_commit_stats to true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; ++set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; +set spanner.return_commit_stats to true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-#set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; +set spanner.return_commit_stats to true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; +set spanner.return_commit_stats to true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +\set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; +set spanner.return_commit_stats to true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +?set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; +set spanner.return_commit_stats to true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-/set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; +set spanner.return_commit_stats to true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/#set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; +set spanner.return_commit_stats to true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/-set spanner.return_commit_stats to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; +set spanner.return_commit_stats to true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; +set spanner.return_commit_stats to/-true; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to false; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +SET SPANNER.RETURN_COMMIT_STATS TO FALSE; NEW_CONNECTION; -set spanner.read_only_staleness to 'read_timestamp 2018-01-02t03:04:05.54321+05:30'; +set spanner.return_commit_stats to false; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set spanner.return_commit_stats to false; NEW_CONNECTION; - set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set spanner.return_commit_stats to false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set spanner.return_commit_stats to false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set spanner.return_commit_stats to false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' +set spanner.return_commit_stats to false ; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to false; NEW_CONNECTION; -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to false; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.return_commit_stats to -'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +foo set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; +set spanner.return_commit_stats to false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +%set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; +set spanner.return_commit_stats to false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +_set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; +set spanner.return_commit_stats to false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +&set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; +set spanner.return_commit_stats to false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +$set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; +set spanner.return_commit_stats to false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +@set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; +set spanner.return_commit_stats to false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +!set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; +set spanner.return_commit_stats to false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +*set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; +set spanner.return_commit_stats to false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +(set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; +set spanner.return_commit_stats to false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +)set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); +set spanner.return_commit_stats to false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; +set spanner.return_commit_stats to false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; ++set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; +set spanner.return_commit_stats to false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-#set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; +set spanner.return_commit_stats to false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; +set spanner.return_commit_stats to false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +\set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; +set spanner.return_commit_stats to false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +?set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; +set spanner.return_commit_stats to false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-/set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; +set spanner.return_commit_stats to false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/#set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; +set spanner.return_commit_stats to false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/-set spanner.return_commit_stats to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; +set spanner.return_commit_stats to false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; +set spanner.return_commit_stats to/-false; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +set spanner.statement_tag='tag1'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 12S'; +SET SPANNER.STATEMENT_TAG='TAG1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'max_staleness 12s'; +set spanner.statement_tag='tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 12s'; + set spanner.statement_tag='tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 12s'; + set spanner.statement_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +set spanner.statement_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s' ; +set spanner.statement_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s' ; +set spanner.statement_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s' +set spanner.statement_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +set spanner.statement_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +set spanner.statement_tag='tag1'; NEW_CONNECTION; set -spanner.read_only_staleness -to -'MAX_STALENESS 12s'; +spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +foo set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s' bar; +set spanner.statement_tag='tag1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +%set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'%; +set spanner.statement_tag='tag1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS%12s'; +set%spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +_set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'_; +set spanner.statement_tag='tag1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS_12s'; +set_spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +&set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'&; +set spanner.statement_tag='tag1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS&12s'; +set&spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +$set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'$; +set spanner.statement_tag='tag1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS$12s'; +set$spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +@set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'@; +set spanner.statement_tag='tag1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS@12s'; +set@spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +!set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'!; +set spanner.statement_tag='tag1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS!12s'; +set!spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +*set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'*; +set spanner.statement_tag='tag1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS*12s'; +set*spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +(set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'(; +set spanner.statement_tag='tag1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS(12s'; +set(spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +)set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'); +set spanner.statement_tag='tag1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS)12s'; +set)spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +-set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'-; +set spanner.statement_tag='tag1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-12s'; +set-spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MAX_STALENESS 12s'; ++set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'+; +set spanner.statement_tag='tag1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS+12s'; +set+spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +-#set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'-#; +set spanner.statement_tag='tag1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-#12s'; +set-#spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +/set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'/; +set spanner.statement_tag='tag1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/12s'; +set/spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +\set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'\; +set spanner.statement_tag='tag1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS\12s'; +set\spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +?set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'?; +set spanner.statement_tag='tag1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS?12s'; +set?spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +-/set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'-/; +set spanner.statement_tag='tag1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-/12s'; +set-/spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +/#set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'/#; +set spanner.statement_tag='tag1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/#12s'; +set/#spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MAX_STALENESS 12s'; +/-set spanner.statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 12s'/-; +set spanner.statement_tag='tag1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/-12s'; +set/-spanner.statement_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +set spanner.statement_tag='tag2'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 100MS'; +SET SPANNER.STATEMENT_TAG='TAG2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'max_staleness 100ms'; +set spanner.statement_tag='tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; + set spanner.statement_tag='tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; + set spanner.statement_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +set spanner.statement_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms' ; +set spanner.statement_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms' ; +set spanner.statement_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms' +set spanner.statement_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +set spanner.statement_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +set spanner.statement_tag='tag2'; NEW_CONNECTION; set -spanner.read_only_staleness -to -'MAX_STALENESS 100ms'; +spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +foo set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms' bar; +set spanner.statement_tag='tag2' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +%set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'%; +set spanner.statement_tag='tag2'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS%100ms'; +set%spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +_set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'_; +set spanner.statement_tag='tag2'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS_100ms'; +set_spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +&set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'&; +set spanner.statement_tag='tag2'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS&100ms'; +set&spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +$set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'$; +set spanner.statement_tag='tag2'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS$100ms'; +set$spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +@set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'@; +set spanner.statement_tag='tag2'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS@100ms'; +set@spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +!set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'!; +set spanner.statement_tag='tag2'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS!100ms'; +set!spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +*set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'*; +set spanner.statement_tag='tag2'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS*100ms'; +set*spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +(set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'(; +set spanner.statement_tag='tag2'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS(100ms'; +set(spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +)set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'); +set spanner.statement_tag='tag2'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS)100ms'; +set)spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +-set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-; +set spanner.statement_tag='tag2'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-100ms'; +set-spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; ++set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'+; +set spanner.statement_tag='tag2'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS+100ms'; +set+spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +-#set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-#; +set spanner.statement_tag='tag2'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-#100ms'; +set-#spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +/set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/; +set spanner.statement_tag='tag2'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/100ms'; +set/spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +\set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'\; +set spanner.statement_tag='tag2'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS\100ms'; +set\spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +?set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'?; +set spanner.statement_tag='tag2'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS?100ms'; +set?spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +-/set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'-/; +set spanner.statement_tag='tag2'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-/100ms'; +set-/spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +/#set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/#; +set spanner.statement_tag='tag2'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/#100ms'; +set/#spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MAX_STALENESS 100ms'; +/-set spanner.statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 100ms'/-; +set spanner.statement_tag='tag2'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/-100ms'; +set/-spanner.statement_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +set spanner.statement_tag=''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 99999US'; +SET SPANNER.STATEMENT_TAG=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'max_staleness 99999us'; +set spanner.statement_tag=''; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; + set spanner.statement_tag=''; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; + set spanner.statement_tag=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +set spanner.statement_tag=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us' ; +set spanner.statement_tag='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us' ; +set spanner.statement_tag='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us' +set spanner.statement_tag='' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +set spanner.statement_tag=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +set spanner.statement_tag=''; NEW_CONNECTION; set -spanner.read_only_staleness -to -'MAX_STALENESS 99999us'; +spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +foo set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us' bar; +set spanner.statement_tag='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +%set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'%; +set spanner.statement_tag=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS%99999us'; +set%spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +_set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'_; +set spanner.statement_tag=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS_99999us'; +set_spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +&set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'&; +set spanner.statement_tag=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS&99999us'; +set&spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +$set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'$; +set spanner.statement_tag=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS$99999us'; +set$spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +@set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'@; +set spanner.statement_tag=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS@99999us'; +set@spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +!set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'!; +set spanner.statement_tag=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS!99999us'; +set!spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +*set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'*; +set spanner.statement_tag=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS*99999us'; +set*spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +(set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'(; +set spanner.statement_tag=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS(99999us'; +set(spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +)set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'); +set spanner.statement_tag=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS)99999us'; +set)spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +-set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-; +set spanner.statement_tag=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-99999us'; +set-spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; ++set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'+; +set spanner.statement_tag=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS+99999us'; +set+spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +-#set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-#; +set spanner.statement_tag=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-#99999us'; +set-#spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +/set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/; +set spanner.statement_tag=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/99999us'; +set/spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +\set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'\; +set spanner.statement_tag=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS\99999us'; +set\spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +?set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'?; +set spanner.statement_tag=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS?99999us'; +set?spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +-/set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'-/; +set spanner.statement_tag=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-/99999us'; +set-/spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +/#set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/#; +set spanner.statement_tag=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/#99999us'; +set/#spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MAX_STALENESS 99999us'; +/-set spanner.statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 99999us'/-; +set spanner.statement_tag=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/-99999us'; +set/-spanner.statement_tag=''; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +set spanner.statement_tag to 'tag1'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'MAX_STALENESS 10NS'; +SET SPANNER.STATEMENT_TAG TO 'TAG1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'max_staleness 10ns'; +set spanner.statement_tag to 'tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; + set spanner.statement_tag to 'tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; + set spanner.statement_tag to 'tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +set spanner.statement_tag to 'tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns' ; +set spanner.statement_tag to 'tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns' ; +set spanner.statement_tag to 'tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns' +set spanner.statement_tag to 'tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +set spanner.statement_tag to 'tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +set spanner.statement_tag to 'tag1'; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.statement_tag to -'MAX_STALENESS 10ns'; +'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +foo set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns' bar; +set spanner.statement_tag to 'tag1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +%set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'%; +set spanner.statement_tag to 'tag1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS%10ns'; +set spanner.statement_tag to%'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +_set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'_; +set spanner.statement_tag to 'tag1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS_10ns'; +set spanner.statement_tag to_'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +&set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'&; +set spanner.statement_tag to 'tag1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS&10ns'; +set spanner.statement_tag to&'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +$set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'$; +set spanner.statement_tag to 'tag1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS$10ns'; +set spanner.statement_tag to$'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +@set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'@; +set spanner.statement_tag to 'tag1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS@10ns'; +set spanner.statement_tag to@'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +!set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'!; +set spanner.statement_tag to 'tag1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS!10ns'; +set spanner.statement_tag to!'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +*set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'*; +set spanner.statement_tag to 'tag1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS*10ns'; +set spanner.statement_tag to*'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +(set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'(; +set spanner.statement_tag to 'tag1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS(10ns'; +set spanner.statement_tag to('tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +)set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'); +set spanner.statement_tag to 'tag1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS)10ns'; +set spanner.statement_tag to)'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +-set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-; +set spanner.statement_tag to 'tag1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-10ns'; +set spanner.statement_tag to-'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; ++set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'+; +set spanner.statement_tag to 'tag1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS+10ns'; +set spanner.statement_tag to+'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +-#set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-#; +set spanner.statement_tag to 'tag1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-#10ns'; +set spanner.statement_tag to-#'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +/set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/; +set spanner.statement_tag to 'tag1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/10ns'; +set spanner.statement_tag to/'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +\set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'\; +set spanner.statement_tag to 'tag1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS\10ns'; +set spanner.statement_tag to\'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +?set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'?; +set spanner.statement_tag to 'tag1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS?10ns'; +set spanner.statement_tag to?'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +-/set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'-/; +set spanner.statement_tag to 'tag1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS-/10ns'; +set spanner.statement_tag to-/'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +/#set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/#; +set spanner.statement_tag to 'tag1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/#10ns'; +set spanner.statement_tag to/#'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'MAX_STALENESS 10ns'; +/-set spanner.statement_tag to 'tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS 10ns'/-; +set spanner.statement_tag to 'tag1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'MAX_STALENESS/-10ns'; +set spanner.statement_tag to/-'tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +set spanner.statement_tag to 'tag2'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 15S'; +SET SPANNER.STATEMENT_TAG TO 'TAG2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'exact_staleness 15s'; +set spanner.statement_tag to 'tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; + set spanner.statement_tag to 'tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; + set spanner.statement_tag to 'tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +set spanner.statement_tag to 'tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s' ; +set spanner.statement_tag to 'tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s' ; +set spanner.statement_tag to 'tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s' +set spanner.statement_tag to 'tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +set spanner.statement_tag to 'tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +set spanner.statement_tag to 'tag2'; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.statement_tag to -'EXACT_STALENESS 15s'; +'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +foo set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s' bar; +set spanner.statement_tag to 'tag2' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +%set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'%; +set spanner.statement_tag to 'tag2'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS%15s'; +set spanner.statement_tag to%'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +_set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'_; +set spanner.statement_tag to 'tag2'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS_15s'; +set spanner.statement_tag to_'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +&set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'&; +set spanner.statement_tag to 'tag2'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS&15s'; +set spanner.statement_tag to&'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +$set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'$; +set spanner.statement_tag to 'tag2'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS$15s'; +set spanner.statement_tag to$'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +@set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'@; +set spanner.statement_tag to 'tag2'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS@15s'; +set spanner.statement_tag to@'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +!set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'!; +set spanner.statement_tag to 'tag2'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS!15s'; +set spanner.statement_tag to!'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +*set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'*; +set spanner.statement_tag to 'tag2'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS*15s'; +set spanner.statement_tag to*'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +(set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'(; +set spanner.statement_tag to 'tag2'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS(15s'; +set spanner.statement_tag to('tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +)set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'); +set spanner.statement_tag to 'tag2'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS)15s'; +set spanner.statement_tag to)'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +-set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-; +set spanner.statement_tag to 'tag2'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-15s'; +set spanner.statement_tag to-'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; ++set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'+; +set spanner.statement_tag to 'tag2'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS+15s'; +set spanner.statement_tag to+'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +-#set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-#; +set spanner.statement_tag to 'tag2'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-#15s'; +set spanner.statement_tag to-#'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +/set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/; +set spanner.statement_tag to 'tag2'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/15s'; +set spanner.statement_tag to/'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +\set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'\; +set spanner.statement_tag to 'tag2'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS\15s'; +set spanner.statement_tag to\'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +?set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'?; +set spanner.statement_tag to 'tag2'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS?15s'; +set spanner.statement_tag to?'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +-/set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'-/; +set spanner.statement_tag to 'tag2'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-/15s'; +set spanner.statement_tag to-/'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +/#set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/#; +set spanner.statement_tag to 'tag2'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/#15s'; +set spanner.statement_tag to/#'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'EXACT_STALENESS 15s'; +/-set spanner.statement_tag to 'tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15s'/-; +set spanner.statement_tag to 'tag2'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/-15s'; +set spanner.statement_tag to/-'tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +set spanner.statement_tag to ''; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 1500MS'; +SET SPANNER.STATEMENT_TAG TO ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'exact_staleness 1500ms'; +set spanner.statement_tag to ''; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; + set spanner.statement_tag to ''; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; + set spanner.statement_tag to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +set spanner.statement_tag to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' ; +set spanner.statement_tag to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' ; +set spanner.statement_tag to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' +set spanner.statement_tag to '' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +set spanner.statement_tag to ''; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +set spanner.statement_tag to ''; NEW_CONNECTION; set -spanner.read_only_staleness +spanner.statement_tag to -'EXACT_STALENESS 1500ms'; +''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +foo set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms' bar; +set spanner.statement_tag to '' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +%set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'%; +set spanner.statement_tag to ''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS%1500ms'; +set spanner.statement_tag to%''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +_set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'_; +set spanner.statement_tag to ''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS_1500ms'; +set spanner.statement_tag to_''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +&set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'&; +set spanner.statement_tag to ''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS&1500ms'; +set spanner.statement_tag to&''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +$set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'$; +set spanner.statement_tag to ''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS$1500ms'; +set spanner.statement_tag to$''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +@set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'@; +set spanner.statement_tag to ''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS@1500ms'; +set spanner.statement_tag to@''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +!set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'!; +set spanner.statement_tag to ''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS!1500ms'; +set spanner.statement_tag to!''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +*set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'*; +set spanner.statement_tag to ''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS*1500ms'; +set spanner.statement_tag to*''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +(set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'(; +set spanner.statement_tag to ''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS(1500ms'; +set spanner.statement_tag to(''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +)set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'); +set spanner.statement_tag to ''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS)1500ms'; +set spanner.statement_tag to)''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +-set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-; +set spanner.statement_tag to ''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-1500ms'; +set spanner.statement_tag to-''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; ++set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'+; +set spanner.statement_tag to ''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS+1500ms'; +set spanner.statement_tag to+''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +-#set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-#; +set spanner.statement_tag to ''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-#1500ms'; +set spanner.statement_tag to-#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +/set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/; +set spanner.statement_tag to ''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/1500ms'; +set spanner.statement_tag to/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +\set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'\; +set spanner.statement_tag to ''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS\1500ms'; +set spanner.statement_tag to\''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +?set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'?; +set spanner.statement_tag to ''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS?1500ms'; +set spanner.statement_tag to?''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +-/set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'-/; +set spanner.statement_tag to ''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-/1500ms'; +set spanner.statement_tag to-/''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +/#set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/#; +set spanner.statement_tag to ''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/#1500ms'; +set spanner.statement_tag to/#''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'; +/-set spanner.statement_tag to ''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 1500ms'/-; +set spanner.statement_tag to ''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/-1500ms'; +set spanner.statement_tag to/-''; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set autocommit = false; +set spanner.transaction_tag='tag1'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 15000000US'; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG='TAG1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'exact_staleness 15000000us'; +set autocommit = false; +set spanner.transaction_tag='tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set autocommit = false; + set spanner.transaction_tag='tag1'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set autocommit = false; + set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set spanner.transaction_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' ; +set autocommit = false; +set spanner.transaction_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' ; +set autocommit = false; +set spanner.transaction_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' +set autocommit = false; +set spanner.transaction_tag='tag1' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set autocommit = false; +set spanner.transaction_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +set autocommit = false; +set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; set -spanner.read_only_staleness -to -'EXACT_STALENESS 15000000us'; +spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +foo set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us' bar; +set spanner.transaction_tag='tag1' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +%set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'%; +set spanner.transaction_tag='tag1'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS%15000000us'; +set%spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +_set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'_; +set spanner.transaction_tag='tag1'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS_15000000us'; +set_spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +&set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'&; +set spanner.transaction_tag='tag1'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS&15000000us'; +set&spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +$set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'$; +set spanner.transaction_tag='tag1'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS$15000000us'; +set$spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +@set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'@; +set spanner.transaction_tag='tag1'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS@15000000us'; +set@spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +!set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'!; +set spanner.transaction_tag='tag1'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS!15000000us'; +set!spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +*set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'*; +set spanner.transaction_tag='tag1'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS*15000000us'; +set*spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +(set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'(; +set spanner.transaction_tag='tag1'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS(15000000us'; +set(spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +)set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'); +set spanner.transaction_tag='tag1'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS)15000000us'; +set)spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +-set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-; +set spanner.transaction_tag='tag1'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-15000000us'; +set-spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; ++set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'+; +set spanner.transaction_tag='tag1'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS+15000000us'; +set+spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +-#set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-#; +set spanner.transaction_tag='tag1'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-#15000000us'; +set-#spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +/set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/; +set spanner.transaction_tag='tag1'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/15000000us'; +set/spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +\set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'\; +set spanner.transaction_tag='tag1'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS\15000000us'; +set\spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +?set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'?; +set spanner.transaction_tag='tag1'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS?15000000us'; +set?spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +-/set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'-/; +set spanner.transaction_tag='tag1'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-/15000000us'; +set-/spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +/#set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/#; +set spanner.transaction_tag='tag1'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/#15000000us'; +set/#spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'; +/-set spanner.transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 15000000us'/-; +set spanner.transaction_tag='tag1'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/-15000000us'; +set/-spanner.transaction_tag='tag1'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set autocommit = false; +set spanner.transaction_tag='tag2'; NEW_CONNECTION; -SET SPANNER.READ_ONLY_STALENESS TO 'EXACT_STALENESS 9999NS'; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG='TAG2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'exact_staleness 9999ns'; +set autocommit = false; +set spanner.transaction_tag='tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set autocommit = false; + set spanner.transaction_tag='tag2'; NEW_CONNECTION; - set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set autocommit = false; + set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set spanner.transaction_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' ; +set autocommit = false; +set spanner.transaction_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' ; +set autocommit = false; +set spanner.transaction_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' +set autocommit = false; +set spanner.transaction_tag='tag2' ; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set autocommit = false; +set spanner.transaction_tag='tag2'; NEW_CONNECTION; -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +set autocommit = false; +set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; set -spanner.read_only_staleness -to -'EXACT_STALENESS 9999ns'; +spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +foo set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns' bar; +set spanner.transaction_tag='tag2' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +%set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'%; +set spanner.transaction_tag='tag2'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS%9999ns'; +set%spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +_set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'_; +set spanner.transaction_tag='tag2'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS_9999ns'; +set_spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +&set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'&; +set spanner.transaction_tag='tag2'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS&9999ns'; +set&spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +$set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'$; +set spanner.transaction_tag='tag2'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS$9999ns'; +set$spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +@set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'@; +set spanner.transaction_tag='tag2'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS@9999ns'; +set@spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +!set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'!; +set spanner.transaction_tag='tag2'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS!9999ns'; +set!spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +*set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'*; +set spanner.transaction_tag='tag2'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS*9999ns'; +set*spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +(set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'(; +set spanner.transaction_tag='tag2'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS(9999ns'; +set(spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +)set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'); +set spanner.transaction_tag='tag2'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS)9999ns'; +set)spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +-set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-; +set spanner.transaction_tag='tag2'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-9999ns'; +set-spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; ++set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'+; +set spanner.transaction_tag='tag2'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS+9999ns'; +set+spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +-#set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-#; +set spanner.transaction_tag='tag2'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-#9999ns'; +set-#spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +/set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/; +set spanner.transaction_tag='tag2'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/9999ns'; +set/spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +\set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'\; +set spanner.transaction_tag='tag2'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS\9999ns'; +set\spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +?set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'?; +set spanner.transaction_tag='tag2'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS?9999ns'; +set?spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +-/set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'-/; +set spanner.transaction_tag='tag2'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS-/9999ns'; +set-/spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +/#set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/#; +set spanner.transaction_tag='tag2'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/#9999ns'; +set/#spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'; +/-set spanner.transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS 9999ns'/-; +set spanner.transaction_tag='tag2'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.read_only_staleness to 'EXACT_STALENESS/-9999ns'; +set/-spanner.transaction_tag='tag2'; NEW_CONNECTION; -set spanner.optimizer_version='1'; +set autocommit = false; +set spanner.transaction_tag=''; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION='1'; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG=''; NEW_CONNECTION; -set spanner.optimizer_version='1'; +set autocommit = false; +set spanner.transaction_tag=''; NEW_CONNECTION; - set spanner.optimizer_version='1'; +set autocommit = false; + set spanner.transaction_tag=''; NEW_CONNECTION; - set spanner.optimizer_version='1'; +set autocommit = false; + set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; -set spanner.optimizer_version='1'; +set spanner.transaction_tag=''; NEW_CONNECTION; -set spanner.optimizer_version='1' ; +set autocommit = false; +set spanner.transaction_tag='' ; NEW_CONNECTION; -set spanner.optimizer_version='1' ; +set autocommit = false; +set spanner.transaction_tag='' ; NEW_CONNECTION; -set spanner.optimizer_version='1' +set autocommit = false; +set spanner.transaction_tag='' ; NEW_CONNECTION; -set spanner.optimizer_version='1'; +set autocommit = false; +set spanner.transaction_tag=''; NEW_CONNECTION; -set spanner.optimizer_version='1'; +set autocommit = false; +set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; set -spanner.optimizer_version='1'; +spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version='1'; +foo set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1' bar; +set spanner.transaction_tag='' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version='1'; +%set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'%; +set spanner.transaction_tag=''%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_version='1'; +set%spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version='1'; +_set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'_; +set spanner.transaction_tag=''_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_version='1'; +set_spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version='1'; +&set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'&; +set spanner.transaction_tag=''&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_version='1'; +set&spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version='1'; +$set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'$; +set spanner.transaction_tag=''$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_version='1'; +set$spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version='1'; +@set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'@; +set spanner.transaction_tag=''@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_version='1'; +set@spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version='1'; +!set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'!; +set spanner.transaction_tag=''!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_version='1'; +set!spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version='1'; +*set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'*; +set spanner.transaction_tag=''*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_version='1'; +set*spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version='1'; +(set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'(; +set spanner.transaction_tag=''(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_version='1'; +set(spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version='1'; +)set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'); +set spanner.transaction_tag=''); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_version='1'; +set)spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version='1'; +-set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'-; +set spanner.transaction_tag=''-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_version='1'; +set-spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version='1'; ++set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'+; +set spanner.transaction_tag=''+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_version='1'; +set+spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version='1'; +-#set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'-#; +set spanner.transaction_tag=''-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_version='1'; +set-#spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version='1'; +/set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'/; +set spanner.transaction_tag=''/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_version='1'; +set/spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version='1'; +\set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'\; +set spanner.transaction_tag=''\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_version='1'; +set\spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version='1'; +?set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'?; +set spanner.transaction_tag=''?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_version='1'; +set?spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version='1'; +-/set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'-/; +set spanner.transaction_tag=''-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_version='1'; +set-/spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version='1'; +/#set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'/#; +set spanner.transaction_tag=''/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_version='1'; +set/#spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version='1'; +/-set spanner.transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='1'/-; +set spanner.transaction_tag=''/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_version='1'; +set/-spanner.transaction_tag=''; NEW_CONNECTION; -set spanner.optimizer_version='200'; +set autocommit = false; +set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION='200'; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG TO 'TAG1'; NEW_CONNECTION; -set spanner.optimizer_version='200'; +set autocommit = false; +set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; - set spanner.optimizer_version='200'; +set autocommit = false; + set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; - set spanner.optimizer_version='200'; +set autocommit = false; + set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; -set spanner.optimizer_version='200'; +set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; -set spanner.optimizer_version='200' ; +set autocommit = false; +set spanner.transaction_tag to 'tag1' ; NEW_CONNECTION; -set spanner.optimizer_version='200' ; +set autocommit = false; +set spanner.transaction_tag to 'tag1' ; NEW_CONNECTION; -set spanner.optimizer_version='200' +set autocommit = false; +set spanner.transaction_tag to 'tag1' ; NEW_CONNECTION; -set spanner.optimizer_version='200'; +set autocommit = false; +set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; -set spanner.optimizer_version='200'; +set autocommit = false; +set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; set -spanner.optimizer_version='200'; +spanner.transaction_tag +to +'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version='200'; +foo set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200' bar; +set spanner.transaction_tag to 'tag1' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version='200'; +%set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'%; +set spanner.transaction_tag to 'tag1'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_version='200'; +set spanner.transaction_tag to%'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version='200'; +_set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'_; +set spanner.transaction_tag to 'tag1'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_version='200'; +set spanner.transaction_tag to_'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version='200'; +&set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'&; +set spanner.transaction_tag to 'tag1'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_version='200'; +set spanner.transaction_tag to&'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version='200'; +$set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'$; +set spanner.transaction_tag to 'tag1'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_version='200'; +set spanner.transaction_tag to$'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version='200'; +@set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'@; +set spanner.transaction_tag to 'tag1'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_version='200'; +set spanner.transaction_tag to@'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version='200'; +!set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'!; +set spanner.transaction_tag to 'tag1'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_version='200'; +set spanner.transaction_tag to!'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version='200'; +*set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'*; +set spanner.transaction_tag to 'tag1'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_version='200'; +set spanner.transaction_tag to*'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version='200'; +(set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'(; +set spanner.transaction_tag to 'tag1'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_version='200'; +set spanner.transaction_tag to('tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version='200'; +)set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'); +set spanner.transaction_tag to 'tag1'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_version='200'; +set spanner.transaction_tag to)'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version='200'; +-set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'-; +set spanner.transaction_tag to 'tag1'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_version='200'; +set spanner.transaction_tag to-'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version='200'; ++set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'+; +set spanner.transaction_tag to 'tag1'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_version='200'; +set spanner.transaction_tag to+'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version='200'; +-#set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'-#; +set spanner.transaction_tag to 'tag1'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_version='200'; +set spanner.transaction_tag to-#'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version='200'; +/set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'/; +set spanner.transaction_tag to 'tag1'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_version='200'; +set spanner.transaction_tag to/'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version='200'; +\set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'\; +set spanner.transaction_tag to 'tag1'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_version='200'; +set spanner.transaction_tag to\'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version='200'; +?set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'?; +set spanner.transaction_tag to 'tag1'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_version='200'; +set spanner.transaction_tag to?'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version='200'; +-/set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'-/; +set spanner.transaction_tag to 'tag1'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_version='200'; +set spanner.transaction_tag to-/'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version='200'; +/#set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'/#; +set spanner.transaction_tag to 'tag1'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_version='200'; +set spanner.transaction_tag to/#'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version='200'; +/-set spanner.transaction_tag to 'tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='200'/-; +set spanner.transaction_tag to 'tag1'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_version='200'; +set spanner.transaction_tag to/-'tag1'; NEW_CONNECTION; -set spanner.optimizer_version='LATEST'; +set autocommit = false; +set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION='LATEST'; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG TO 'TAG2'; NEW_CONNECTION; -set spanner.optimizer_version='latest'; +set autocommit = false; +set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; - set spanner.optimizer_version='LATEST'; +set autocommit = false; + set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; - set spanner.optimizer_version='LATEST'; +set autocommit = false; + set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; -set spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; -set spanner.optimizer_version='LATEST' ; +set autocommit = false; +set spanner.transaction_tag to 'tag2' ; NEW_CONNECTION; -set spanner.optimizer_version='LATEST' ; +set autocommit = false; +set spanner.transaction_tag to 'tag2' ; NEW_CONNECTION; -set spanner.optimizer_version='LATEST' +set autocommit = false; +set spanner.transaction_tag to 'tag2' ; NEW_CONNECTION; -set spanner.optimizer_version='LATEST'; +set autocommit = false; +set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; -set spanner.optimizer_version='LATEST'; +set autocommit = false; +set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; set -spanner.optimizer_version='LATEST'; +spanner.transaction_tag +to +'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version='LATEST'; +foo set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST' bar; +set spanner.transaction_tag to 'tag2' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version='LATEST'; +%set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'%; +set spanner.transaction_tag to 'tag2'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to%'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version='LATEST'; +_set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'_; +set spanner.transaction_tag to 'tag2'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to_'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version='LATEST'; +&set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'&; +set spanner.transaction_tag to 'tag2'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to&'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version='LATEST'; +$set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'$; +set spanner.transaction_tag to 'tag2'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to$'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version='LATEST'; +@set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'@; +set spanner.transaction_tag to 'tag2'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to@'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version='LATEST'; +!set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'!; +set spanner.transaction_tag to 'tag2'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to!'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version='LATEST'; +*set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'*; +set spanner.transaction_tag to 'tag2'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to*'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version='LATEST'; +(set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'(; +set spanner.transaction_tag to 'tag2'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to('tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version='LATEST'; +)set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'); +set spanner.transaction_tag to 'tag2'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to)'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version='LATEST'; +-set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'-; +set spanner.transaction_tag to 'tag2'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to-'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version='LATEST'; ++set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'+; +set spanner.transaction_tag to 'tag2'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to+'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version='LATEST'; +-#set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'-#; +set spanner.transaction_tag to 'tag2'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to-#'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version='LATEST'; +/set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'/; +set spanner.transaction_tag to 'tag2'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to/'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version='LATEST'; +\set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'\; +set spanner.transaction_tag to 'tag2'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to\'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version='LATEST'; +?set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'?; +set spanner.transaction_tag to 'tag2'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to?'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version='LATEST'; +-/set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'-/; +set spanner.transaction_tag to 'tag2'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to-/'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version='LATEST'; +/#set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'/#; +set spanner.transaction_tag to 'tag2'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to/#'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version='LATEST'; +/-set spanner.transaction_tag to 'tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='LATEST'/-; +set spanner.transaction_tag to 'tag2'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_version='LATEST'; +set spanner.transaction_tag to/-'tag2'; NEW_CONNECTION; -set spanner.optimizer_version=''; +set autocommit = false; +set spanner.transaction_tag to ''; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION=''; +set autocommit = false; +SET SPANNER.TRANSACTION_TAG TO ''; NEW_CONNECTION; -set spanner.optimizer_version=''; +set autocommit = false; +set spanner.transaction_tag to ''; NEW_CONNECTION; - set spanner.optimizer_version=''; +set autocommit = false; + set spanner.transaction_tag to ''; NEW_CONNECTION; - set spanner.optimizer_version=''; +set autocommit = false; + set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; -set spanner.optimizer_version=''; +set spanner.transaction_tag to ''; NEW_CONNECTION; -set spanner.optimizer_version='' ; +set autocommit = false; +set spanner.transaction_tag to '' ; NEW_CONNECTION; -set spanner.optimizer_version='' ; +set autocommit = false; +set spanner.transaction_tag to '' ; NEW_CONNECTION; -set spanner.optimizer_version='' +set autocommit = false; +set spanner.transaction_tag to '' ; NEW_CONNECTION; -set spanner.optimizer_version=''; +set autocommit = false; +set spanner.transaction_tag to ''; NEW_CONNECTION; -set spanner.optimizer_version=''; +set autocommit = false; +set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; set -spanner.optimizer_version=''; +spanner.transaction_tag +to +''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version=''; +foo set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version='' bar; +set spanner.transaction_tag to '' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version=''; +%set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''%; +set spanner.transaction_tag to ''%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_version=''; +set spanner.transaction_tag to%''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version=''; +_set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''_; +set spanner.transaction_tag to ''_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_version=''; +set spanner.transaction_tag to_''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version=''; +&set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''&; +set spanner.transaction_tag to ''&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_version=''; +set spanner.transaction_tag to&''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version=''; +$set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''$; +set spanner.transaction_tag to ''$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_version=''; +set spanner.transaction_tag to$''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version=''; +@set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''@; +set spanner.transaction_tag to ''@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_version=''; +set spanner.transaction_tag to@''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version=''; +!set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''!; +set spanner.transaction_tag to ''!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_version=''; +set spanner.transaction_tag to!''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version=''; +*set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''*; +set spanner.transaction_tag to ''*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_version=''; +set spanner.transaction_tag to*''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version=''; +(set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''(; +set spanner.transaction_tag to ''(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_version=''; +set spanner.transaction_tag to(''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version=''; +)set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''); +set spanner.transaction_tag to ''); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_version=''; +set spanner.transaction_tag to)''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version=''; +-set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''-; +set spanner.transaction_tag to ''-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_version=''; +set spanner.transaction_tag to-''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version=''; ++set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''+; +set spanner.transaction_tag to ''+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_version=''; +set spanner.transaction_tag to+''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version=''; +-#set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''-#; +set spanner.transaction_tag to ''-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_version=''; +set spanner.transaction_tag to-#''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version=''; +/set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''/; +set spanner.transaction_tag to ''/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_version=''; +set spanner.transaction_tag to/''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version=''; +\set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''\; +set spanner.transaction_tag to ''\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_version=''; +set spanner.transaction_tag to\''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version=''; +?set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''?; +set spanner.transaction_tag to ''?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_version=''; +set spanner.transaction_tag to?''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version=''; +-/set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''-/; +set spanner.transaction_tag to ''-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_version=''; +set spanner.transaction_tag to-/''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version=''; +/#set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''/#; +set spanner.transaction_tag to ''/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_version=''; +set spanner.transaction_tag to/#''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version=''; +/-set spanner.transaction_tag to ''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version=''/-; +set spanner.transaction_tag to ''/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_version=''; +set spanner.transaction_tag to/-''; NEW_CONNECTION; -set spanner.optimizer_version to '1'; +set spanner.rpc_priority='HIGH'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION TO '1'; +SET SPANNER.RPC_PRIORITY='HIGH'; NEW_CONNECTION; -set spanner.optimizer_version to '1'; +set spanner.rpc_priority='high'; NEW_CONNECTION; - set spanner.optimizer_version to '1'; + set spanner.rpc_priority='HIGH'; NEW_CONNECTION; - set spanner.optimizer_version to '1'; + set spanner.rpc_priority='HIGH'; NEW_CONNECTION; -set spanner.optimizer_version to '1'; +set spanner.rpc_priority='HIGH'; NEW_CONNECTION; -set spanner.optimizer_version to '1' ; +set spanner.rpc_priority='HIGH' ; NEW_CONNECTION; -set spanner.optimizer_version to '1' ; +set spanner.rpc_priority='HIGH' ; NEW_CONNECTION; -set spanner.optimizer_version to '1' +set spanner.rpc_priority='HIGH' ; NEW_CONNECTION; -set spanner.optimizer_version to '1'; +set spanner.rpc_priority='HIGH'; NEW_CONNECTION; -set spanner.optimizer_version to '1'; +set spanner.rpc_priority='HIGH'; NEW_CONNECTION; set -spanner.optimizer_version -to -'1'; +spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version to '1'; +foo set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1' bar; +set spanner.rpc_priority='HIGH' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version to '1'; +%set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'%; +set spanner.rpc_priority='HIGH'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to%'1'; +set%spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version to '1'; +_set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'_; +set spanner.rpc_priority='HIGH'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to_'1'; +set_spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version to '1'; +&set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'&; +set spanner.rpc_priority='HIGH'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to&'1'; +set&spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version to '1'; +$set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'$; +set spanner.rpc_priority='HIGH'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to$'1'; +set$spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version to '1'; +@set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'@; +set spanner.rpc_priority='HIGH'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to@'1'; +set@spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version to '1'; +!set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'!; +set spanner.rpc_priority='HIGH'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to!'1'; +set!spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version to '1'; +*set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'*; +set spanner.rpc_priority='HIGH'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to*'1'; +set*spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version to '1'; +(set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'(; +set spanner.rpc_priority='HIGH'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to('1'; +set(spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version to '1'; +)set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'); +set spanner.rpc_priority='HIGH'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to)'1'; +set)spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version to '1'; +-set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'-; +set spanner.rpc_priority='HIGH'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-'1'; +set-spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version to '1'; ++set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'+; +set spanner.rpc_priority='HIGH'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to+'1'; +set+spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version to '1'; +-#set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'-#; +set spanner.rpc_priority='HIGH'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-#'1'; +set-#spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version to '1'; +/set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'/; +set spanner.rpc_priority='HIGH'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/'1'; +set/spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version to '1'; +\set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'\; +set spanner.rpc_priority='HIGH'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to\'1'; +set\spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version to '1'; +?set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'?; +set spanner.rpc_priority='HIGH'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to?'1'; +set?spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version to '1'; +-/set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'-/; +set spanner.rpc_priority='HIGH'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-/'1'; +set-/spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version to '1'; +/#set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'/#; +set spanner.rpc_priority='HIGH'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/#'1'; +set/#spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version to '1'; +/-set spanner.rpc_priority='HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '1'/-; +set spanner.rpc_priority='HIGH'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/-'1'; +set/-spanner.rpc_priority='HIGH'; NEW_CONNECTION; -set spanner.optimizer_version to '200'; +set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION TO '200'; +SET SPANNER.RPC_PRIORITY='MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_version to '200'; +set spanner.rpc_priority='medium'; NEW_CONNECTION; - set spanner.optimizer_version to '200'; + set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; - set spanner.optimizer_version to '200'; + set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_version to '200'; +set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_version to '200' ; +set spanner.rpc_priority='MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_version to '200' ; +set spanner.rpc_priority='MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_version to '200' +set spanner.rpc_priority='MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_version to '200'; +set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_version to '200'; +set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; set -spanner.optimizer_version -to -'200'; +spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version to '200'; +foo set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200' bar; +set spanner.rpc_priority='MEDIUM' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version to '200'; +%set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'%; +set spanner.rpc_priority='MEDIUM'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to%'200'; +set%spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version to '200'; +_set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'_; +set spanner.rpc_priority='MEDIUM'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to_'200'; +set_spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version to '200'; +&set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'&; +set spanner.rpc_priority='MEDIUM'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to&'200'; +set&spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version to '200'; +$set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'$; +set spanner.rpc_priority='MEDIUM'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to$'200'; +set$spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version to '200'; +@set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'@; +set spanner.rpc_priority='MEDIUM'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to@'200'; +set@spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version to '200'; +!set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'!; +set spanner.rpc_priority='MEDIUM'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to!'200'; +set!spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version to '200'; +*set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'*; +set spanner.rpc_priority='MEDIUM'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to*'200'; +set*spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version to '200'; +(set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'(; +set spanner.rpc_priority='MEDIUM'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to('200'; +set(spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version to '200'; +)set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'); +set spanner.rpc_priority='MEDIUM'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to)'200'; +set)spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version to '200'; +-set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'-; +set spanner.rpc_priority='MEDIUM'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-'200'; +set-spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version to '200'; ++set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'+; +set spanner.rpc_priority='MEDIUM'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to+'200'; +set+spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version to '200'; +-#set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'-#; +set spanner.rpc_priority='MEDIUM'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-#'200'; +set-#spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version to '200'; +/set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'/; +set spanner.rpc_priority='MEDIUM'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/'200'; +set/spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version to '200'; +\set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'\; +set spanner.rpc_priority='MEDIUM'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to\'200'; +set\spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version to '200'; +?set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'?; +set spanner.rpc_priority='MEDIUM'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to?'200'; +set?spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version to '200'; +-/set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'-/; +set spanner.rpc_priority='MEDIUM'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-/'200'; +set-/spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version to '200'; +/#set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'/#; +set spanner.rpc_priority='MEDIUM'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/#'200'; +set/#spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version to '200'; +/-set spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '200'/-; +set spanner.rpc_priority='MEDIUM'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/-'200'; +set/-spanner.rpc_priority='MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST'; +set spanner.rpc_priority='LOW'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION TO 'LATEST'; +SET SPANNER.RPC_PRIORITY='LOW'; NEW_CONNECTION; -set spanner.optimizer_version to 'latest'; +set spanner.rpc_priority='low'; NEW_CONNECTION; - set spanner.optimizer_version to 'LATEST'; + set spanner.rpc_priority='LOW'; NEW_CONNECTION; - set spanner.optimizer_version to 'LATEST'; + set spanner.rpc_priority='LOW'; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST'; +set spanner.rpc_priority='LOW'; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST' ; +set spanner.rpc_priority='LOW' ; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST' ; +set spanner.rpc_priority='LOW' ; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST' +set spanner.rpc_priority='LOW' ; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST'; +set spanner.rpc_priority='LOW'; NEW_CONNECTION; -set spanner.optimizer_version to 'LATEST'; +set spanner.rpc_priority='LOW'; NEW_CONNECTION; set -spanner.optimizer_version -to -'LATEST'; +spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version to 'LATEST'; +foo set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST' bar; +set spanner.rpc_priority='LOW' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version to 'LATEST'; +%set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'%; +set spanner.rpc_priority='LOW'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to%'LATEST'; +set%spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version to 'LATEST'; +_set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'_; +set spanner.rpc_priority='LOW'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to_'LATEST'; +set_spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version to 'LATEST'; +&set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'&; +set spanner.rpc_priority='LOW'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to&'LATEST'; +set&spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version to 'LATEST'; +$set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'$; +set spanner.rpc_priority='LOW'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to$'LATEST'; +set$spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version to 'LATEST'; +@set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'@; +set spanner.rpc_priority='LOW'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to@'LATEST'; +set@spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version to 'LATEST'; +!set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'!; +set spanner.rpc_priority='LOW'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to!'LATEST'; +set!spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version to 'LATEST'; +*set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'*; +set spanner.rpc_priority='LOW'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to*'LATEST'; +set*spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version to 'LATEST'; +(set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'(; +set spanner.rpc_priority='LOW'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to('LATEST'; +set(spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version to 'LATEST'; +)set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'); +set spanner.rpc_priority='LOW'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to)'LATEST'; +set)spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version to 'LATEST'; +-set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'-; +set spanner.rpc_priority='LOW'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-'LATEST'; +set-spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version to 'LATEST'; ++set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'+; +set spanner.rpc_priority='LOW'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to+'LATEST'; +set+spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version to 'LATEST'; +-#set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'-#; +set spanner.rpc_priority='LOW'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-#'LATEST'; +set-#spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version to 'LATEST'; +/set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'/; +set spanner.rpc_priority='LOW'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/'LATEST'; +set/spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version to 'LATEST'; +\set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'\; +set spanner.rpc_priority='LOW'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to\'LATEST'; +set\spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version to 'LATEST'; +?set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'?; +set spanner.rpc_priority='LOW'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to?'LATEST'; +set?spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version to 'LATEST'; +-/set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'-/; +set spanner.rpc_priority='LOW'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-/'LATEST'; +set-/spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version to 'LATEST'; +/#set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'/#; +set spanner.rpc_priority='LOW'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/#'LATEST'; +set/#spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version to 'LATEST'; +/-set spanner.rpc_priority='LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to 'LATEST'/-; +set spanner.rpc_priority='LOW'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/-'LATEST'; +set/-spanner.rpc_priority='LOW'; NEW_CONNECTION; -set spanner.optimizer_version to ''; +set spanner.rpc_priority='NULL'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_VERSION TO ''; +SET SPANNER.RPC_PRIORITY='NULL'; NEW_CONNECTION; -set spanner.optimizer_version to ''; +set spanner.rpc_priority='null'; NEW_CONNECTION; - set spanner.optimizer_version to ''; + set spanner.rpc_priority='NULL'; NEW_CONNECTION; - set spanner.optimizer_version to ''; + set spanner.rpc_priority='NULL'; NEW_CONNECTION; -set spanner.optimizer_version to ''; +set spanner.rpc_priority='NULL'; NEW_CONNECTION; -set spanner.optimizer_version to '' ; +set spanner.rpc_priority='NULL' ; NEW_CONNECTION; -set spanner.optimizer_version to '' ; +set spanner.rpc_priority='NULL' ; NEW_CONNECTION; -set spanner.optimizer_version to '' +set spanner.rpc_priority='NULL' ; NEW_CONNECTION; -set spanner.optimizer_version to ''; +set spanner.rpc_priority='NULL'; NEW_CONNECTION; -set spanner.optimizer_version to ''; +set spanner.rpc_priority='NULL'; NEW_CONNECTION; set -spanner.optimizer_version -to -''; +spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_version to ''; +foo set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to '' bar; +set spanner.rpc_priority='NULL' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_version to ''; +%set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''%; +set spanner.rpc_priority='NULL'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to%''; +set%spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_version to ''; +_set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''_; +set spanner.rpc_priority='NULL'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to_''; +set_spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_version to ''; +&set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''&; +set spanner.rpc_priority='NULL'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to&''; +set&spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_version to ''; +$set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''$; +set spanner.rpc_priority='NULL'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to$''; +set$spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_version to ''; +@set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''@; +set spanner.rpc_priority='NULL'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to@''; +set@spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_version to ''; +!set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''!; +set spanner.rpc_priority='NULL'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to!''; +set!spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_version to ''; +*set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''*; +set spanner.rpc_priority='NULL'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to*''; +set*spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_version to ''; +(set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''(; +set spanner.rpc_priority='NULL'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to(''; +set(spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_version to ''; +)set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''); +set spanner.rpc_priority='NULL'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to)''; +set)spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_version to ''; +-set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''-; +set spanner.rpc_priority='NULL'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-''; +set-spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_version to ''; ++set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''+; +set spanner.rpc_priority='NULL'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to+''; +set+spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_version to ''; +-#set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''-#; +set spanner.rpc_priority='NULL'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-#''; +set-#spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_version to ''; +/set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''/; +set spanner.rpc_priority='NULL'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/''; +set/spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_version to ''; +\set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''\; +set spanner.rpc_priority='NULL'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to\''; +set\spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_version to ''; +?set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''?; +set spanner.rpc_priority='NULL'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to?''; +set?spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_version to ''; +-/set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''-/; +set spanner.rpc_priority='NULL'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to-/''; +set-/spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_version to ''; +/#set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''/#; +set spanner.rpc_priority='NULL'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/#''; +set/#spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_version to ''; +/-set spanner.rpc_priority='NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to ''/-; +set spanner.rpc_priority='NULL'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_version to/-''; +set/-spanner.rpc_priority='NULL'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='AUTO_20191128_14_47_22UTC'; +SET SPANNER.RPC_PRIORITY TO 'HIGH'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22utc'; +set spanner.rpc_priority to 'high'; NEW_CONNECTION; - set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; + set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; - set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; + set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' ; +set spanner.rpc_priority to 'HIGH' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' ; +set spanner.rpc_priority to 'HIGH' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' +set spanner.rpc_priority to 'HIGH' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; set -spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +spanner.rpc_priority +to +'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +foo set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC' bar; +set spanner.rpc_priority to 'HIGH' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +%set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'%; +set spanner.rpc_priority to 'HIGH'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to%'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +_set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'_; +set spanner.rpc_priority to 'HIGH'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to_'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +&set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'&; +set spanner.rpc_priority to 'HIGH'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to&'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +$set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'$; +set spanner.rpc_priority to 'HIGH'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to$'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +@set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'@; +set spanner.rpc_priority to 'HIGH'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to@'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +!set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'!; +set spanner.rpc_priority to 'HIGH'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to!'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +*set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'*; +set spanner.rpc_priority to 'HIGH'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to*'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +(set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'(; +set spanner.rpc_priority to 'HIGH'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to('HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +)set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'); +set spanner.rpc_priority to 'HIGH'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to)'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-; +set spanner.rpc_priority to 'HIGH'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; ++set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'+; +set spanner.rpc_priority to 'HIGH'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to+'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-#set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-#; +set spanner.rpc_priority to 'HIGH'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-#'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/; +set spanner.rpc_priority to 'HIGH'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +\set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'\; +set spanner.rpc_priority to 'HIGH'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to\'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +?set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'?; +set spanner.rpc_priority to 'HIGH'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to?'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +-/set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'-/; +set spanner.rpc_priority to 'HIGH'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-/'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/#set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/#; +set spanner.rpc_priority to 'HIGH'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/#'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +/-set spanner.rpc_priority to 'HIGH'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'/-; +set spanner.rpc_priority to 'HIGH'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_statistics_package='auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/-'HIGH'; NEW_CONNECTION; -set spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; +SET SPANNER.RPC_PRIORITY TO 'MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to 'medium'; NEW_CONNECTION; - set spanner.optimizer_statistics_package=''; + set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; - set spanner.optimizer_statistics_package=''; + set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_statistics_package='' ; +set spanner.rpc_priority to 'MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package='' ; +set spanner.rpc_priority to 'MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package='' +set spanner.rpc_priority to 'MEDIUM' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; set -spanner.optimizer_statistics_package=''; +spanner.rpc_priority +to +'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_statistics_package=''; +foo set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package='' bar; +set spanner.rpc_priority to 'MEDIUM' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_statistics_package=''; +%set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''%; +set spanner.rpc_priority to 'MEDIUM'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to%'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_statistics_package=''; +_set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''_; +set spanner.rpc_priority to 'MEDIUM'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to_'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_statistics_package=''; +&set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''&; +set spanner.rpc_priority to 'MEDIUM'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to&'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_statistics_package=''; +$set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''$; +set spanner.rpc_priority to 'MEDIUM'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to$'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_statistics_package=''; +@set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''@; +set spanner.rpc_priority to 'MEDIUM'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to@'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_statistics_package=''; +!set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''!; +set spanner.rpc_priority to 'MEDIUM'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to!'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_statistics_package=''; +*set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''*; +set spanner.rpc_priority to 'MEDIUM'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to*'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_statistics_package=''; +(set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''(; +set spanner.rpc_priority to 'MEDIUM'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to('MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_statistics_package=''; +)set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''); +set spanner.rpc_priority to 'MEDIUM'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to)'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_statistics_package=''; +-set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''-; +set spanner.rpc_priority to 'MEDIUM'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to-'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_statistics_package=''; ++set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''+; +set spanner.rpc_priority to 'MEDIUM'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to+'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_statistics_package=''; +-#set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''-#; +set spanner.rpc_priority to 'MEDIUM'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to-#'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_statistics_package=''; +/set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''/; +set spanner.rpc_priority to 'MEDIUM'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to/'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_statistics_package=''; +\set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''\; +set spanner.rpc_priority to 'MEDIUM'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to\'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_statistics_package=''; +?set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''?; +set spanner.rpc_priority to 'MEDIUM'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to?'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_statistics_package=''; +-/set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''-/; +set spanner.rpc_priority to 'MEDIUM'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to-/'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_statistics_package=''; +/#set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''/#; +set spanner.rpc_priority to 'MEDIUM'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to/#'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_statistics_package=''; +/-set spanner.rpc_priority to 'MEDIUM'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package=''/-; +set spanner.rpc_priority to 'MEDIUM'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.optimizer_statistics_package=''; +set spanner.rpc_priority to/-'MEDIUM'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE TO 'AUTO_20191128_14_47_22UTC'; +SET SPANNER.RPC_PRIORITY TO 'LOW'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22utc'; +set spanner.rpc_priority to 'low'; NEW_CONNECTION; - set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; + set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; - set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; + set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' ; +set spanner.rpc_priority to 'LOW' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' ; +set spanner.rpc_priority to 'LOW' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' +set spanner.rpc_priority to 'LOW' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; set -spanner.optimizer_statistics_package +spanner.rpc_priority to -'auto_20191128_14_47_22UTC'; +'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +foo set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC' bar; +set spanner.rpc_priority to 'LOW' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +%set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'%; +set spanner.rpc_priority to 'LOW'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to%'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to%'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +_set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'_; +set spanner.rpc_priority to 'LOW'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to_'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to_'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +&set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'&; +set spanner.rpc_priority to 'LOW'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to&'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to&'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +$set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'$; +set spanner.rpc_priority to 'LOW'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to$'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to$'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +@set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'@; +set spanner.rpc_priority to 'LOW'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to@'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to@'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +!set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'!; +set spanner.rpc_priority to 'LOW'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to!'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to!'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +*set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'*; +set spanner.rpc_priority to 'LOW'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to*'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to*'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +(set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'(; +set spanner.rpc_priority to 'LOW'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to('auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to('LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +)set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'); +set spanner.rpc_priority to 'LOW'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to)'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to)'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +-set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-; +set spanner.rpc_priority to 'LOW'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; ++set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'+; +set spanner.rpc_priority to 'LOW'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to+'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to+'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +-#set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-#; +set spanner.rpc_priority to 'LOW'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-#'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-#'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +/set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/; +set spanner.rpc_priority to 'LOW'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +\set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'\; +set spanner.rpc_priority to 'LOW'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to\'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to\'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +?set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'?; +set spanner.rpc_priority to 'LOW'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to?'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to?'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +-/set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'-/; +set spanner.rpc_priority to 'LOW'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-/'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to-/'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +/#set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/#; +set spanner.rpc_priority to 'LOW'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/#'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/#'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'; +/-set spanner.rpc_priority to 'LOW'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to 'auto_20191128_14_47_22UTC'/-; +set spanner.rpc_priority to 'LOW'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/-'auto_20191128_14_47_22UTC'; +set spanner.rpc_priority to/-'LOW'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to ''; +set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; -SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE TO ''; +SET SPANNER.RPC_PRIORITY TO 'NULL'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to ''; +set spanner.rpc_priority to 'null'; NEW_CONNECTION; - set spanner.optimizer_statistics_package to ''; + set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; - set spanner.optimizer_statistics_package to ''; + set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to ''; +set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to '' ; +set spanner.rpc_priority to 'NULL' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to '' ; +set spanner.rpc_priority to 'NULL' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to '' +set spanner.rpc_priority to 'NULL' ; NEW_CONNECTION; -set spanner.optimizer_statistics_package to ''; +set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; -set spanner.optimizer_statistics_package to ''; +set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; set -spanner.optimizer_statistics_package +spanner.rpc_priority to -''; +'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.optimizer_statistics_package to ''; +foo set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to '' bar; +set spanner.rpc_priority to 'NULL' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.optimizer_statistics_package to ''; +%set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''%; +set spanner.rpc_priority to 'NULL'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to%''; +set spanner.rpc_priority to%'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.optimizer_statistics_package to ''; +_set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''_; +set spanner.rpc_priority to 'NULL'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to_''; +set spanner.rpc_priority to_'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.optimizer_statistics_package to ''; +&set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''&; +set spanner.rpc_priority to 'NULL'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to&''; +set spanner.rpc_priority to&'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.optimizer_statistics_package to ''; +$set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''$; +set spanner.rpc_priority to 'NULL'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to$''; +set spanner.rpc_priority to$'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.optimizer_statistics_package to ''; +@set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''@; +set spanner.rpc_priority to 'NULL'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to@''; +set spanner.rpc_priority to@'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.optimizer_statistics_package to ''; +!set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''!; +set spanner.rpc_priority to 'NULL'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to!''; +set spanner.rpc_priority to!'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.optimizer_statistics_package to ''; +*set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''*; +set spanner.rpc_priority to 'NULL'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to*''; +set spanner.rpc_priority to*'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.optimizer_statistics_package to ''; +(set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''(; +set spanner.rpc_priority to 'NULL'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to(''; +set spanner.rpc_priority to('NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.optimizer_statistics_package to ''; +)set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''); +set spanner.rpc_priority to 'NULL'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to)''; +set spanner.rpc_priority to)'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.optimizer_statistics_package to ''; +-set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''-; +set spanner.rpc_priority to 'NULL'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-''; +set spanner.rpc_priority to-'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.optimizer_statistics_package to ''; ++set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''+; +set spanner.rpc_priority to 'NULL'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to+''; +set spanner.rpc_priority to+'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.optimizer_statistics_package to ''; +-#set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''-#; +set spanner.rpc_priority to 'NULL'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-#''; +set spanner.rpc_priority to-#'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.optimizer_statistics_package to ''; +/set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''/; +set spanner.rpc_priority to 'NULL'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/''; +set spanner.rpc_priority to/'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.optimizer_statistics_package to ''; +\set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''\; +set spanner.rpc_priority to 'NULL'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to\''; +set spanner.rpc_priority to\'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.optimizer_statistics_package to ''; +?set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''?; +set spanner.rpc_priority to 'NULL'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to?''; +set spanner.rpc_priority to?'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.optimizer_statistics_package to ''; +-/set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''-/; +set spanner.rpc_priority to 'NULL'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to-/''; +set spanner.rpc_priority to-/'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.optimizer_statistics_package to ''; +/#set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''/#; +set spanner.rpc_priority to 'NULL'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/#''; +set spanner.rpc_priority to/#'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.optimizer_statistics_package to ''; +/-set spanner.rpc_priority to 'NULL'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to ''/-; +set spanner.rpc_priority to 'NULL'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.optimizer_statistics_package to/-''; +set spanner.rpc_priority to/-'NULL'; NEW_CONNECTION; -set spanner.return_commit_stats = true; +set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; -SET SPANNER.RETURN_COMMIT_STATS = TRUE; +SET SPANNER.SAVEPOINT_SUPPORT='ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats = true; +set spanner.savepoint_support='enabled'; NEW_CONNECTION; - set spanner.return_commit_stats = true; + set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; - set spanner.return_commit_stats = true; + set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats = true; +set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats = true ; +set spanner.savepoint_support='ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats = true ; +set spanner.savepoint_support='ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats = true +set spanner.savepoint_support='ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats = true; +set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats = true; +set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; set -spanner.return_commit_stats -= -true; +spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.return_commit_stats = true; +foo set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true bar; +set spanner.savepoint_support='ENABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.return_commit_stats = true; +%set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true%; +set spanner.savepoint_support='ENABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =%true; +set%spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.return_commit_stats = true; +_set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true_; +set spanner.savepoint_support='ENABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =_true; +set_spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.return_commit_stats = true; +&set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true&; +set spanner.savepoint_support='ENABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =&true; +set&spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.return_commit_stats = true; +$set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true$; +set spanner.savepoint_support='ENABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =$true; +set$spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.return_commit_stats = true; +@set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true@; +set spanner.savepoint_support='ENABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =@true; +set@spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.return_commit_stats = true; +!set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true!; +set spanner.savepoint_support='ENABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =!true; +set!spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.return_commit_stats = true; +*set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true*; +set spanner.savepoint_support='ENABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =*true; +set*spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.return_commit_stats = true; +(set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true(; +set spanner.savepoint_support='ENABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =(true; +set(spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.return_commit_stats = true; +)set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true); +set spanner.savepoint_support='ENABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =)true; +set)spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.return_commit_stats = true; +-set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true-; +set spanner.savepoint_support='ENABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-true; +set-spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.return_commit_stats = true; ++set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true+; +set spanner.savepoint_support='ENABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =+true; +set+spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.return_commit_stats = true; +-#set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true-#; +set spanner.savepoint_support='ENABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-#true; +set-#spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.return_commit_stats = true; +/set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true/; +set spanner.savepoint_support='ENABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/true; +set/spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.return_commit_stats = true; +\set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true\; +set spanner.savepoint_support='ENABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =\true; +set\spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.return_commit_stats = true; +?set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true?; +set spanner.savepoint_support='ENABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =?true; +set?spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.return_commit_stats = true; +-/set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true-/; +set spanner.savepoint_support='ENABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-/true; +set-/spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.return_commit_stats = true; +/#set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true/#; +set spanner.savepoint_support='ENABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/#true; +set/#spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.return_commit_stats = true; +/-set spanner.savepoint_support='ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = true/-; +set spanner.savepoint_support='ENABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/-true; +set/-spanner.savepoint_support='ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats = false; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -SET SPANNER.RETURN_COMMIT_STATS = FALSE; +SET SPANNER.SAVEPOINT_SUPPORT='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.return_commit_stats = false; +set spanner.savepoint_support='fail_after_rollback'; NEW_CONNECTION; - set spanner.return_commit_stats = false; + set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; - set spanner.return_commit_stats = false; + set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.return_commit_stats = false; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.return_commit_stats = false ; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.return_commit_stats = false ; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.return_commit_stats = false +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.return_commit_stats = false; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.return_commit_stats = false; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; set -spanner.return_commit_stats -= -false; +spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.return_commit_stats = false; +foo set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false bar; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.return_commit_stats = false; +%set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false%; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =%false; +set%spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.return_commit_stats = false; +_set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false_; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =_false; +set_spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.return_commit_stats = false; +&set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false&; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =&false; +set&spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.return_commit_stats = false; +$set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false$; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =$false; +set$spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.return_commit_stats = false; +@set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false@; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =@false; +set@spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.return_commit_stats = false; +!set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false!; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =!false; +set!spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.return_commit_stats = false; +*set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false*; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =*false; +set*spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.return_commit_stats = false; +(set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false(; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =(false; +set(spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.return_commit_stats = false; +)set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false); +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =)false; +set)spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.return_commit_stats = false; +-set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false-; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-false; +set-spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.return_commit_stats = false; ++set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false+; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =+false; +set+spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.return_commit_stats = false; +-#set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false-#; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-#false; +set-#spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.return_commit_stats = false; +/set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false/; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/false; +set/spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.return_commit_stats = false; +\set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false\; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =\false; +set\spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.return_commit_stats = false; +?set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false?; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =?false; +set?spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.return_commit_stats = false; +-/set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false-/; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =-/false; +set-/spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.return_commit_stats = false; +/#set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false/#; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/#false; +set/#spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.return_commit_stats = false; +/-set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats = false/-; +set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats =/-false; +set/-spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.return_commit_stats to true; +set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; -SET SPANNER.RETURN_COMMIT_STATS TO TRUE; +SET SPANNER.SAVEPOINT_SUPPORT='DISABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to true; +set spanner.savepoint_support='disabled'; NEW_CONNECTION; - set spanner.return_commit_stats to true; + set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; - set spanner.return_commit_stats to true; + set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to true; +set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to true ; +set spanner.savepoint_support='DISABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to true ; +set spanner.savepoint_support='DISABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to true +set spanner.savepoint_support='DISABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to true; +set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to true; +set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; set -spanner.return_commit_stats -to -true; +spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.return_commit_stats to true; +foo set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true bar; +set spanner.savepoint_support='DISABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.return_commit_stats to true; +%set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true%; +set spanner.savepoint_support='DISABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to%true; +set%spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.return_commit_stats to true; +_set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true_; +set spanner.savepoint_support='DISABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to_true; +set_spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.return_commit_stats to true; +&set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true&; +set spanner.savepoint_support='DISABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to&true; +set&spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.return_commit_stats to true; +$set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true$; +set spanner.savepoint_support='DISABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to$true; +set$spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.return_commit_stats to true; +@set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true@; +set spanner.savepoint_support='DISABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to@true; +set@spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.return_commit_stats to true; +!set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true!; +set spanner.savepoint_support='DISABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to!true; +set!spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.return_commit_stats to true; +*set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true*; +set spanner.savepoint_support='DISABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to*true; +set*spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.return_commit_stats to true; +(set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true(; +set spanner.savepoint_support='DISABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to(true; +set(spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.return_commit_stats to true; +)set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true); +set spanner.savepoint_support='DISABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to)true; +set)spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.return_commit_stats to true; +-set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true-; +set spanner.savepoint_support='DISABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-true; +set-spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.return_commit_stats to true; ++set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true+; +set spanner.savepoint_support='DISABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to+true; +set+spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.return_commit_stats to true; +-#set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true-#; +set spanner.savepoint_support='DISABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-#true; +set-#spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.return_commit_stats to true; +/set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true/; +set spanner.savepoint_support='DISABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/true; +set/spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.return_commit_stats to true; +\set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true\; +set spanner.savepoint_support='DISABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to\true; +set\spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.return_commit_stats to true; +?set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true?; +set spanner.savepoint_support='DISABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to?true; +set?spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.return_commit_stats to true; +-/set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true-/; +set spanner.savepoint_support='DISABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-/true; +set-/spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.return_commit_stats to true; +/#set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true/#; +set spanner.savepoint_support='DISABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/#true; +set/#spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.return_commit_stats to true; +/-set spanner.savepoint_support='DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to true/-; +set spanner.savepoint_support='DISABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/-true; +set/-spanner.savepoint_support='DISABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to false; +set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; -SET SPANNER.RETURN_COMMIT_STATS TO FALSE; +SET SPANNER.SAVEPOINT_SUPPORT TO 'ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to false; +set spanner.savepoint_support to 'enabled'; NEW_CONNECTION; - set spanner.return_commit_stats to false; + set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; - set spanner.return_commit_stats to false; + set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to false; +set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to false ; +set spanner.savepoint_support to 'ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to false ; +set spanner.savepoint_support to 'ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to false +set spanner.savepoint_support to 'ENABLED' ; NEW_CONNECTION; -set spanner.return_commit_stats to false; +set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; -set spanner.return_commit_stats to false; +set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; set -spanner.return_commit_stats +spanner.savepoint_support to -false; +'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.return_commit_stats to false; +foo set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false bar; +set spanner.savepoint_support to 'ENABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.return_commit_stats to false; +%set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false%; +set spanner.savepoint_support to 'ENABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to%false; +set spanner.savepoint_support to%'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.return_commit_stats to false; +_set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false_; +set spanner.savepoint_support to 'ENABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to_false; +set spanner.savepoint_support to_'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.return_commit_stats to false; +&set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false&; +set spanner.savepoint_support to 'ENABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to&false; +set spanner.savepoint_support to&'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.return_commit_stats to false; +$set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false$; +set spanner.savepoint_support to 'ENABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to$false; +set spanner.savepoint_support to$'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.return_commit_stats to false; +@set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false@; +set spanner.savepoint_support to 'ENABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to@false; +set spanner.savepoint_support to@'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.return_commit_stats to false; +!set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false!; +set spanner.savepoint_support to 'ENABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to!false; +set spanner.savepoint_support to!'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.return_commit_stats to false; +*set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false*; +set spanner.savepoint_support to 'ENABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to*false; +set spanner.savepoint_support to*'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.return_commit_stats to false; +(set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false(; +set spanner.savepoint_support to 'ENABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to(false; +set spanner.savepoint_support to('ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.return_commit_stats to false; +)set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false); +set spanner.savepoint_support to 'ENABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to)false; +set spanner.savepoint_support to)'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.return_commit_stats to false; +-set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false-; +set spanner.savepoint_support to 'ENABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-false; +set spanner.savepoint_support to-'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.return_commit_stats to false; ++set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false+; +set spanner.savepoint_support to 'ENABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to+false; +set spanner.savepoint_support to+'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.return_commit_stats to false; +-#set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false-#; +set spanner.savepoint_support to 'ENABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-#false; +set spanner.savepoint_support to-#'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.return_commit_stats to false; +/set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false/; +set spanner.savepoint_support to 'ENABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/false; +set spanner.savepoint_support to/'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.return_commit_stats to false; +\set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false\; +set spanner.savepoint_support to 'ENABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to\false; +set spanner.savepoint_support to\'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.return_commit_stats to false; +?set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false?; +set spanner.savepoint_support to 'ENABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to?false; +set spanner.savepoint_support to?'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.return_commit_stats to false; +-/set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false-/; +set spanner.savepoint_support to 'ENABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to-/false; +set spanner.savepoint_support to-/'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.return_commit_stats to false; +/#set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false/#; +set spanner.savepoint_support to 'ENABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/#false; +set spanner.savepoint_support to/#'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.return_commit_stats to false; +/-set spanner.savepoint_support to 'ENABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to false/-; +set spanner.savepoint_support to 'ENABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.return_commit_stats to/-false; +set spanner.savepoint_support to/-'ENABLED'; NEW_CONNECTION; -set spanner.statement_tag='tag1'; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG='TAG1'; +SET SPANNER.SAVEPOINT_SUPPORT TO 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.statement_tag='tag1'; +set spanner.savepoint_support to 'fail_after_rollback'; NEW_CONNECTION; - set spanner.statement_tag='tag1'; + set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; - set spanner.statement_tag='tag1'; + set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.statement_tag='tag1'; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.statement_tag='tag1' ; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.statement_tag='tag1' ; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.statement_tag='tag1' +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' ; NEW_CONNECTION; -set spanner.statement_tag='tag1'; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.statement_tag='tag1'; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; set -spanner.statement_tag='tag1'; +spanner.savepoint_support +to +'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag='tag1'; +foo set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1' bar; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag='tag1'; +%set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'%; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.statement_tag='tag1'; +set spanner.savepoint_support to%'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag='tag1'; +_set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'_; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.statement_tag='tag1'; +set spanner.savepoint_support to_'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag='tag1'; +&set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'&; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.statement_tag='tag1'; +set spanner.savepoint_support to&'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag='tag1'; +$set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'$; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.statement_tag='tag1'; +set spanner.savepoint_support to$'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag='tag1'; +@set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'@; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.statement_tag='tag1'; +set spanner.savepoint_support to@'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag='tag1'; +!set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'!; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.statement_tag='tag1'; +set spanner.savepoint_support to!'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag='tag1'; +*set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'*; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.statement_tag='tag1'; +set spanner.savepoint_support to*'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag='tag1'; +(set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'(; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.statement_tag='tag1'; +set spanner.savepoint_support to('FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag='tag1'; +)set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'); +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.statement_tag='tag1'; +set spanner.savepoint_support to)'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag='tag1'; +-set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'-; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.statement_tag='tag1'; +set spanner.savepoint_support to-'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag='tag1'; ++set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'+; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.statement_tag='tag1'; +set spanner.savepoint_support to+'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag='tag1'; +-#set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'-#; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.statement_tag='tag1'; +set spanner.savepoint_support to-#'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag='tag1'; +/set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'/; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.statement_tag='tag1'; +set spanner.savepoint_support to/'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag='tag1'; +\set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'\; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.statement_tag='tag1'; +set spanner.savepoint_support to\'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag='tag1'; +?set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'?; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.statement_tag='tag1'; +set spanner.savepoint_support to?'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag='tag1'; +-/set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'-/; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.statement_tag='tag1'; +set spanner.savepoint_support to-/'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag='tag1'; +/#set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'/#; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.statement_tag='tag1'; +set spanner.savepoint_support to/#'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag='tag1'; +/-set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag1'/-; +set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.statement_tag='tag1'; +set spanner.savepoint_support to/-'FAIL_AFTER_ROLLBACK'; NEW_CONNECTION; -set spanner.statement_tag='tag2'; +set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG='TAG2'; +SET SPANNER.SAVEPOINT_SUPPORT TO 'DISABLED'; NEW_CONNECTION; -set spanner.statement_tag='tag2'; +set spanner.savepoint_support to 'disabled'; NEW_CONNECTION; - set spanner.statement_tag='tag2'; + set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; - set spanner.statement_tag='tag2'; + set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; -set spanner.statement_tag='tag2'; +set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; -set spanner.statement_tag='tag2' ; +set spanner.savepoint_support to 'DISABLED' ; NEW_CONNECTION; -set spanner.statement_tag='tag2' ; +set spanner.savepoint_support to 'DISABLED' ; NEW_CONNECTION; -set spanner.statement_tag='tag2' +set spanner.savepoint_support to 'DISABLED' ; NEW_CONNECTION; -set spanner.statement_tag='tag2'; +set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; -set spanner.statement_tag='tag2'; +set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; set -spanner.statement_tag='tag2'; +spanner.savepoint_support +to +'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag='tag2'; +foo set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2' bar; +set spanner.savepoint_support to 'DISABLED' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag='tag2'; +%set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'%; +set spanner.savepoint_support to 'DISABLED'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.statement_tag='tag2'; +set spanner.savepoint_support to%'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag='tag2'; +_set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'_; +set spanner.savepoint_support to 'DISABLED'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.statement_tag='tag2'; +set spanner.savepoint_support to_'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag='tag2'; +&set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'&; +set spanner.savepoint_support to 'DISABLED'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.statement_tag='tag2'; +set spanner.savepoint_support to&'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag='tag2'; +$set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'$; +set spanner.savepoint_support to 'DISABLED'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.statement_tag='tag2'; +set spanner.savepoint_support to$'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag='tag2'; +@set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'@; +set spanner.savepoint_support to 'DISABLED'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.statement_tag='tag2'; +set spanner.savepoint_support to@'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag='tag2'; +!set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'!; +set spanner.savepoint_support to 'DISABLED'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.statement_tag='tag2'; +set spanner.savepoint_support to!'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag='tag2'; +*set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'*; +set spanner.savepoint_support to 'DISABLED'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.statement_tag='tag2'; +set spanner.savepoint_support to*'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag='tag2'; +(set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'(; +set spanner.savepoint_support to 'DISABLED'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.statement_tag='tag2'; +set spanner.savepoint_support to('DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag='tag2'; +)set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'); +set spanner.savepoint_support to 'DISABLED'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.statement_tag='tag2'; +set spanner.savepoint_support to)'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag='tag2'; +-set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'-; +set spanner.savepoint_support to 'DISABLED'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.statement_tag='tag2'; +set spanner.savepoint_support to-'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag='tag2'; ++set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'+; +set spanner.savepoint_support to 'DISABLED'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.statement_tag='tag2'; +set spanner.savepoint_support to+'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag='tag2'; +-#set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'-#; +set spanner.savepoint_support to 'DISABLED'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.statement_tag='tag2'; +set spanner.savepoint_support to-#'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag='tag2'; +/set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'/; +set spanner.savepoint_support to 'DISABLED'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.statement_tag='tag2'; +set spanner.savepoint_support to/'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag='tag2'; +\set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'\; +set spanner.savepoint_support to 'DISABLED'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.statement_tag='tag2'; +set spanner.savepoint_support to\'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag='tag2'; +?set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'?; +set spanner.savepoint_support to 'DISABLED'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.statement_tag='tag2'; +set spanner.savepoint_support to?'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag='tag2'; +-/set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'-/; +set spanner.savepoint_support to 'DISABLED'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.statement_tag='tag2'; +set spanner.savepoint_support to-/'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag='tag2'; +/#set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'/#; +set spanner.savepoint_support to 'DISABLED'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.statement_tag='tag2'; +set spanner.savepoint_support to/#'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag='tag2'; +/-set spanner.savepoint_support to 'DISABLED'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='tag2'/-; +set spanner.savepoint_support to 'DISABLED'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.statement_tag='tag2'; +set spanner.savepoint_support to/-'DISABLED'; NEW_CONNECTION; -set spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG=''; +SET SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE = TRUE; NEW_CONNECTION; -set spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; - set spanner.statement_tag=''; + set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; - set spanner.statement_tag=''; + set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set spanner.statement_tag='' ; +set spanner.delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set spanner.statement_tag='' ; +set spanner.delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set spanner.statement_tag='' +set spanner.delay_transaction_start_until_first_write = true ; NEW_CONNECTION; -set spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; -set spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; set -spanner.statement_tag=''; +spanner.delay_transaction_start_until_first_write += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag=''; +foo set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag='' bar; +set spanner.delay_transaction_start_until_first_write = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag=''; +%set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''%; +set spanner.delay_transaction_start_until_first_write = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag=''; +_set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''_; +set spanner.delay_transaction_start_until_first_write = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag=''; +&set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''&; +set spanner.delay_transaction_start_until_first_write = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag=''; +$set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''$; +set spanner.delay_transaction_start_until_first_write = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag=''; +@set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''@; +set spanner.delay_transaction_start_until_first_write = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag=''; +!set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''!; +set spanner.delay_transaction_start_until_first_write = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag=''; +*set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''*; +set spanner.delay_transaction_start_until_first_write = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag=''; +(set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''(; +set spanner.delay_transaction_start_until_first_write = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag=''; +)set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''); +set spanner.delay_transaction_start_until_first_write = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag=''; +-set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''-; +set spanner.delay_transaction_start_until_first_write = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag=''; ++set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''+; +set spanner.delay_transaction_start_until_first_write = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag=''; +-#set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''-#; +set spanner.delay_transaction_start_until_first_write = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag=''; +/set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''/; +set spanner.delay_transaction_start_until_first_write = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag=''; +\set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''\; +set spanner.delay_transaction_start_until_first_write = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag=''; +?set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''?; +set spanner.delay_transaction_start_until_first_write = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag=''; +-/set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''-/; +set spanner.delay_transaction_start_until_first_write = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag=''; +/#set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''/#; +set spanner.delay_transaction_start_until_first_write = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag=''; +/-set spanner.delay_transaction_start_until_first_write = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag=''/-; +set spanner.delay_transaction_start_until_first_write = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.statement_tag=''; +set spanner.delay_transaction_start_until_first_write =/-true; NEW_CONNECTION; -set spanner.statement_tag to 'tag1'; +set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG TO 'TAG1'; +SET SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE = FALSE; NEW_CONNECTION; -set spanner.statement_tag to 'tag1'; +set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; - set spanner.statement_tag to 'tag1'; + set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; - set spanner.statement_tag to 'tag1'; + set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set spanner.statement_tag to 'tag1'; +set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set spanner.statement_tag to 'tag1' ; +set spanner.delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set spanner.statement_tag to 'tag1' ; +set spanner.delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set spanner.statement_tag to 'tag1' +set spanner.delay_transaction_start_until_first_write = false ; NEW_CONNECTION; -set spanner.statement_tag to 'tag1'; +set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; -set spanner.statement_tag to 'tag1'; +set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; set -spanner.statement_tag -to -'tag1'; +spanner.delay_transaction_start_until_first_write += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag to 'tag1'; +foo set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1' bar; +set spanner.delay_transaction_start_until_first_write = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag to 'tag1'; +%set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'%; +set spanner.delay_transaction_start_until_first_write = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to%'tag1'; +set spanner.delay_transaction_start_until_first_write =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag to 'tag1'; +_set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'_; +set spanner.delay_transaction_start_until_first_write = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to_'tag1'; +set spanner.delay_transaction_start_until_first_write =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag to 'tag1'; +&set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'&; +set spanner.delay_transaction_start_until_first_write = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to&'tag1'; +set spanner.delay_transaction_start_until_first_write =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag to 'tag1'; +$set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'$; +set spanner.delay_transaction_start_until_first_write = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to$'tag1'; +set spanner.delay_transaction_start_until_first_write =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag to 'tag1'; +@set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'@; +set spanner.delay_transaction_start_until_first_write = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to@'tag1'; +set spanner.delay_transaction_start_until_first_write =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag to 'tag1'; +!set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'!; +set spanner.delay_transaction_start_until_first_write = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to!'tag1'; +set spanner.delay_transaction_start_until_first_write =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag to 'tag1'; +*set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'*; +set spanner.delay_transaction_start_until_first_write = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to*'tag1'; +set spanner.delay_transaction_start_until_first_write =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag to 'tag1'; +(set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'(; +set spanner.delay_transaction_start_until_first_write = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to('tag1'; +set spanner.delay_transaction_start_until_first_write =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag to 'tag1'; +)set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'); +set spanner.delay_transaction_start_until_first_write = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to)'tag1'; +set spanner.delay_transaction_start_until_first_write =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag to 'tag1'; +-set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'-; +set spanner.delay_transaction_start_until_first_write = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-'tag1'; +set spanner.delay_transaction_start_until_first_write =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag to 'tag1'; ++set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'+; +set spanner.delay_transaction_start_until_first_write = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to+'tag1'; +set spanner.delay_transaction_start_until_first_write =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag to 'tag1'; +-#set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'-#; +set spanner.delay_transaction_start_until_first_write = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-#'tag1'; +set spanner.delay_transaction_start_until_first_write =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag to 'tag1'; +/set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'/; +set spanner.delay_transaction_start_until_first_write = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/'tag1'; +set spanner.delay_transaction_start_until_first_write =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag to 'tag1'; +\set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'\; +set spanner.delay_transaction_start_until_first_write = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to\'tag1'; +set spanner.delay_transaction_start_until_first_write =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag to 'tag1'; +?set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'?; +set spanner.delay_transaction_start_until_first_write = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to?'tag1'; +set spanner.delay_transaction_start_until_first_write =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag to 'tag1'; +-/set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'-/; +set spanner.delay_transaction_start_until_first_write = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-/'tag1'; +set spanner.delay_transaction_start_until_first_write =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag to 'tag1'; +/#set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'/#; +set spanner.delay_transaction_start_until_first_write = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/#'tag1'; +set spanner.delay_transaction_start_until_first_write =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag to 'tag1'; +/-set spanner.delay_transaction_start_until_first_write = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag1'/-; +set spanner.delay_transaction_start_until_first_write = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/-'tag1'; +set spanner.delay_transaction_start_until_first_write =/-false; NEW_CONNECTION; -set spanner.statement_tag to 'tag2'; +set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG TO 'TAG2'; +SET SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE TO TRUE; NEW_CONNECTION; -set spanner.statement_tag to 'tag2'; +set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; - set spanner.statement_tag to 'tag2'; + set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; - set spanner.statement_tag to 'tag2'; + set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; -set spanner.statement_tag to 'tag2'; +set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; -set spanner.statement_tag to 'tag2' ; +set spanner.delay_transaction_start_until_first_write to true ; NEW_CONNECTION; -set spanner.statement_tag to 'tag2' ; +set spanner.delay_transaction_start_until_first_write to true ; NEW_CONNECTION; -set spanner.statement_tag to 'tag2' +set spanner.delay_transaction_start_until_first_write to true ; NEW_CONNECTION; -set spanner.statement_tag to 'tag2'; +set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; -set spanner.statement_tag to 'tag2'; +set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; set -spanner.statement_tag +spanner.delay_transaction_start_until_first_write to -'tag2'; +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag to 'tag2'; +foo set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2' bar; +set spanner.delay_transaction_start_until_first_write to true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag to 'tag2'; +%set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'%; +set spanner.delay_transaction_start_until_first_write to true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to%'tag2'; +set spanner.delay_transaction_start_until_first_write to%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag to 'tag2'; +_set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'_; +set spanner.delay_transaction_start_until_first_write to true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to_'tag2'; +set spanner.delay_transaction_start_until_first_write to_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag to 'tag2'; +&set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'&; +set spanner.delay_transaction_start_until_first_write to true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to&'tag2'; +set spanner.delay_transaction_start_until_first_write to&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag to 'tag2'; +$set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'$; +set spanner.delay_transaction_start_until_first_write to true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to$'tag2'; +set spanner.delay_transaction_start_until_first_write to$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag to 'tag2'; +@set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'@; +set spanner.delay_transaction_start_until_first_write to true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to@'tag2'; +set spanner.delay_transaction_start_until_first_write to@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag to 'tag2'; +!set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'!; +set spanner.delay_transaction_start_until_first_write to true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to!'tag2'; +set spanner.delay_transaction_start_until_first_write to!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag to 'tag2'; +*set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'*; +set spanner.delay_transaction_start_until_first_write to true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to*'tag2'; +set spanner.delay_transaction_start_until_first_write to*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag to 'tag2'; +(set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'(; +set spanner.delay_transaction_start_until_first_write to true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to('tag2'; +set spanner.delay_transaction_start_until_first_write to(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag to 'tag2'; +)set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'); +set spanner.delay_transaction_start_until_first_write to true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to)'tag2'; +set spanner.delay_transaction_start_until_first_write to)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag to 'tag2'; +-set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'-; +set spanner.delay_transaction_start_until_first_write to true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-'tag2'; +set spanner.delay_transaction_start_until_first_write to-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag to 'tag2'; ++set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'+; +set spanner.delay_transaction_start_until_first_write to true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to+'tag2'; +set spanner.delay_transaction_start_until_first_write to+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag to 'tag2'; +-#set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'-#; +set spanner.delay_transaction_start_until_first_write to true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-#'tag2'; +set spanner.delay_transaction_start_until_first_write to-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag to 'tag2'; +/set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'/; +set spanner.delay_transaction_start_until_first_write to true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/'tag2'; +set spanner.delay_transaction_start_until_first_write to/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag to 'tag2'; +\set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'\; +set spanner.delay_transaction_start_until_first_write to true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to\'tag2'; +set spanner.delay_transaction_start_until_first_write to\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag to 'tag2'; +?set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'?; +set spanner.delay_transaction_start_until_first_write to true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to?'tag2'; +set spanner.delay_transaction_start_until_first_write to?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag to 'tag2'; +-/set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'-/; +set spanner.delay_transaction_start_until_first_write to true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-/'tag2'; +set spanner.delay_transaction_start_until_first_write to-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag to 'tag2'; +/#set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'/#; +set spanner.delay_transaction_start_until_first_write to true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/#'tag2'; +set spanner.delay_transaction_start_until_first_write to/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag to 'tag2'; +/-set spanner.delay_transaction_start_until_first_write to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to 'tag2'/-; +set spanner.delay_transaction_start_until_first_write to true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/-'tag2'; +set spanner.delay_transaction_start_until_first_write to/-true; NEW_CONNECTION; -set spanner.statement_tag to ''; +set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; -SET SPANNER.STATEMENT_TAG TO ''; +SET SPANNER.DELAY_TRANSACTION_START_UNTIL_FIRST_WRITE TO FALSE; NEW_CONNECTION; -set spanner.statement_tag to ''; +set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; - set spanner.statement_tag to ''; + set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; - set spanner.statement_tag to ''; + set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; -set spanner.statement_tag to ''; +set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; -set spanner.statement_tag to '' ; +set spanner.delay_transaction_start_until_first_write to false ; NEW_CONNECTION; -set spanner.statement_tag to '' ; +set spanner.delay_transaction_start_until_first_write to false ; NEW_CONNECTION; -set spanner.statement_tag to '' +set spanner.delay_transaction_start_until_first_write to false ; NEW_CONNECTION; -set spanner.statement_tag to ''; +set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; -set spanner.statement_tag to ''; +set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; set -spanner.statement_tag +spanner.delay_transaction_start_until_first_write to -''; +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.statement_tag to ''; +foo set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to '' bar; +set spanner.delay_transaction_start_until_first_write to false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.statement_tag to ''; +%set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''%; +set spanner.delay_transaction_start_until_first_write to false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to%''; +set spanner.delay_transaction_start_until_first_write to%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.statement_tag to ''; +_set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''_; +set spanner.delay_transaction_start_until_first_write to false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to_''; +set spanner.delay_transaction_start_until_first_write to_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.statement_tag to ''; +&set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''&; +set spanner.delay_transaction_start_until_first_write to false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to&''; +set spanner.delay_transaction_start_until_first_write to&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.statement_tag to ''; +$set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''$; +set spanner.delay_transaction_start_until_first_write to false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to$''; +set spanner.delay_transaction_start_until_first_write to$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.statement_tag to ''; +@set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''@; +set spanner.delay_transaction_start_until_first_write to false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to@''; +set spanner.delay_transaction_start_until_first_write to@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.statement_tag to ''; +!set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''!; +set spanner.delay_transaction_start_until_first_write to false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to!''; +set spanner.delay_transaction_start_until_first_write to!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.statement_tag to ''; +*set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''*; +set spanner.delay_transaction_start_until_first_write to false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to*''; +set spanner.delay_transaction_start_until_first_write to*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.statement_tag to ''; +(set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''(; +set spanner.delay_transaction_start_until_first_write to false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to(''; +set spanner.delay_transaction_start_until_first_write to(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.statement_tag to ''; +)set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''); +set spanner.delay_transaction_start_until_first_write to false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to)''; +set spanner.delay_transaction_start_until_first_write to)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.statement_tag to ''; +-set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''-; +set spanner.delay_transaction_start_until_first_write to false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-''; +set spanner.delay_transaction_start_until_first_write to-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.statement_tag to ''; ++set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''+; +set spanner.delay_transaction_start_until_first_write to false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to+''; +set spanner.delay_transaction_start_until_first_write to+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.statement_tag to ''; +-#set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''-#; +set spanner.delay_transaction_start_until_first_write to false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-#''; +set spanner.delay_transaction_start_until_first_write to-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.statement_tag to ''; +/set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''/; +set spanner.delay_transaction_start_until_first_write to false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/''; +set spanner.delay_transaction_start_until_first_write to/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.statement_tag to ''; +\set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''\; +set spanner.delay_transaction_start_until_first_write to false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to\''; +set spanner.delay_transaction_start_until_first_write to\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.statement_tag to ''; +?set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''?; +set spanner.delay_transaction_start_until_first_write to false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to?''; +set spanner.delay_transaction_start_until_first_write to?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.statement_tag to ''; +-/set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''-/; +set spanner.delay_transaction_start_until_first_write to false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to-/''; +set spanner.delay_transaction_start_until_first_write to-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.statement_tag to ''; +/#set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''/#; +set spanner.delay_transaction_start_until_first_write to false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/#''; +set spanner.delay_transaction_start_until_first_write to/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.statement_tag to ''; +/-set spanner.delay_transaction_start_until_first_write to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to ''/-; +set spanner.delay_transaction_start_until_first_write to false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.statement_tag to/-''; +set spanner.delay_transaction_start_until_first_write to/-false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1'; +show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG='TAG1'; +SHOW SPANNER.DATA_BOOST_ENABLED; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1'; +show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag='tag1'; + show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag='tag1'; + show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1'; +show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1' ; +show spanner.data_boost_enabled ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1' ; +show spanner.data_boost_enabled ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1' +show spanner.data_boost_enabled ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1'; +show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag1'; +show spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set -spanner.transaction_tag='tag1'; +show +spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag='tag1'; +foo show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1' bar; +%show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag='tag1'; +show%spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'%; +_show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.transaction_tag='tag1'; +show_spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag='tag1'; +&show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'_; +show&spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.transaction_tag='tag1'; +$show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag='tag1'; +show$spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'&; +@show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.transaction_tag='tag1'; +show@spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag='tag1'; +!show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'$; +show!spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.transaction_tag='tag1'; +*show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag='tag1'; +show*spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'@; +(show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.transaction_tag='tag1'; +show(spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag='tag1'; +)show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'!; +show)spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.transaction_tag='tag1'; +-show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag='tag1'; +show-spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'*; ++show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.transaction_tag='tag1'; +show+spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag='tag1'; +-#show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'(; +show-#spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.transaction_tag='tag1'; +/show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag='tag1'; +show/spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'); +\show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.transaction_tag='tag1'; +show\spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag='tag1'; +?show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'-; +show?spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.transaction_tag='tag1'; +-/show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag='tag1'; +show-/spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'+; +/#show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.transaction_tag='tag1'; +show/#spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag='tag1'; +/-show spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.data_boost_enabled/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'-#; +show/-spanner.data_boost_enabled; +NEW_CONNECTION; +show variable spanner.data_boost_enabled; +NEW_CONNECTION; +SHOW VARIABLE SPANNER.DATA_BOOST_ENABLED; +NEW_CONNECTION; +show variable spanner.data_boost_enabled; +NEW_CONNECTION; + show variable spanner.data_boost_enabled; +NEW_CONNECTION; + show variable spanner.data_boost_enabled; +NEW_CONNECTION; + + + +show variable spanner.data_boost_enabled; +NEW_CONNECTION; +show variable spanner.data_boost_enabled ; +NEW_CONNECTION; +show variable spanner.data_boost_enabled ; +NEW_CONNECTION; +show variable spanner.data_boost_enabled + +; +NEW_CONNECTION; +show variable spanner.data_boost_enabled; +NEW_CONNECTION; +show variable spanner.data_boost_enabled; +NEW_CONNECTION; +show +variable +spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.transaction_tag='tag1'; +foo show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag='tag1'; +%show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'/; +_show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.transaction_tag='tag1'; +&show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag='tag1'; +$show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'\; +@show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.transaction_tag='tag1'; +!show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag='tag1'; +*show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'?; +(show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.transaction_tag='tag1'; +)show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag='tag1'; +-show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'-/; ++show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.transaction_tag='tag1'; +-#show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag='tag1'; +/show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'/#; +\show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.transaction_tag='tag1'; +?show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag='tag1'; +-/show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag1'/-; +/#show variable spanner.data_boost_enabled; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.transaction_tag='tag1'; +/-show variable spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.data_boost_enabled/-; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG='TAG2'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-spanner.data_boost_enabled; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag='tag2'; +SET SPANNER.DATA_BOOST_ENABLED = TRUE; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled = true; +NEW_CONNECTION; + set spanner.data_boost_enabled = true; +NEW_CONNECTION; + set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2' ; +set spanner.data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2' ; +set spanner.data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2' +set spanner.data_boost_enabled = true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2'; -NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled = true; +NEW_CONNECTION; +set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; set -spanner.transaction_tag='tag2'; +spanner.data_boost_enabled += +true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag='tag2'; +foo set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2' bar; +set spanner.data_boost_enabled = true bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag='tag2'; +%set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'%; +set spanner.data_boost_enabled = true%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =%true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag='tag2'; +_set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'_; +set spanner.data_boost_enabled = true_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =_true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag='tag2'; +&set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'&; +set spanner.data_boost_enabled = true&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =&true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag='tag2'; +$set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'$; +set spanner.data_boost_enabled = true$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =$true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag='tag2'; +@set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'@; +set spanner.data_boost_enabled = true@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =@true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag='tag2'; +!set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'!; +set spanner.data_boost_enabled = true!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =!true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag='tag2'; +*set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'*; +set spanner.data_boost_enabled = true*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =*true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag='tag2'; +(set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'(; +set spanner.data_boost_enabled = true(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =(true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag='tag2'; +)set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'); +set spanner.data_boost_enabled = true); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =)true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag='tag2'; +-set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'-; +set spanner.data_boost_enabled = true-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =-true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag='tag2'; ++set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'+; +set spanner.data_boost_enabled = true+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =+true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag='tag2'; +-#set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'-#; +set spanner.data_boost_enabled = true-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =-#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag='tag2'; +/set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'/; +set spanner.data_boost_enabled = true/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag='tag2'; +\set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'\; +set spanner.data_boost_enabled = true\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =\true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag='tag2'; +?set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'?; +set spanner.data_boost_enabled = true?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =?true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag='tag2'; +-/set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'-/; +set spanner.data_boost_enabled = true-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =-/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag='tag2'; +/#set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'/#; +set spanner.data_boost_enabled = true/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =/#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag='tag2'; +/-set spanner.data_boost_enabled = true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='tag2'/-; +set spanner.data_boost_enabled = true/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.transaction_tag='tag2'; +set spanner.data_boost_enabled =/-true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag=''; +set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG=''; +SET SPANNER.DATA_BOOST_ENABLED = FALSE; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag=''; +set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag=''; + set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag=''; + set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag=''; +set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='' ; +set spanner.data_boost_enabled = false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='' ; +set spanner.data_boost_enabled = false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag='' +set spanner.data_boost_enabled = false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag=''; +set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag=''; +set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; set -spanner.transaction_tag=''; +spanner.data_boost_enabled += +false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag=''; +foo set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag='' bar; +set spanner.data_boost_enabled = false bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag=''; +%set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''%; +set spanner.data_boost_enabled = false%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.transaction_tag=''; +set spanner.data_boost_enabled =%false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag=''; +_set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''_; +set spanner.data_boost_enabled = false_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.transaction_tag=''; +set spanner.data_boost_enabled =_false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag=''; +&set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''&; +set spanner.data_boost_enabled = false&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.transaction_tag=''; +set spanner.data_boost_enabled =&false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag=''; +$set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''$; +set spanner.data_boost_enabled = false$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.transaction_tag=''; +set spanner.data_boost_enabled =$false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag=''; +@set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''@; +set spanner.data_boost_enabled = false@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.transaction_tag=''; +set spanner.data_boost_enabled =@false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag=''; +!set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''!; +set spanner.data_boost_enabled = false!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.transaction_tag=''; +set spanner.data_boost_enabled =!false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag=''; +*set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''*; +set spanner.data_boost_enabled = false*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.transaction_tag=''; +set spanner.data_boost_enabled =*false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag=''; +(set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''(; +set spanner.data_boost_enabled = false(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.transaction_tag=''; +set spanner.data_boost_enabled =(false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag=''; +)set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''); +set spanner.data_boost_enabled = false); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.transaction_tag=''; +set spanner.data_boost_enabled =)false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag=''; +-set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''-; +set spanner.data_boost_enabled = false-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.transaction_tag=''; +set spanner.data_boost_enabled =-false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag=''; ++set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''+; +set spanner.data_boost_enabled = false+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.transaction_tag=''; +set spanner.data_boost_enabled =+false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag=''; +-#set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''-#; +set spanner.data_boost_enabled = false-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.transaction_tag=''; +set spanner.data_boost_enabled =-#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag=''; +/set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''/; +set spanner.data_boost_enabled = false/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.transaction_tag=''; +set spanner.data_boost_enabled =/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag=''; +\set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''\; +set spanner.data_boost_enabled = false\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.transaction_tag=''; +set spanner.data_boost_enabled =\false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag=''; +?set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''?; +set spanner.data_boost_enabled = false?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.transaction_tag=''; +set spanner.data_boost_enabled =?false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag=''; +-/set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''-/; +set spanner.data_boost_enabled = false-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.transaction_tag=''; +set spanner.data_boost_enabled =-/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag=''; +/#set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''/#; +set spanner.data_boost_enabled = false/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.transaction_tag=''; +set spanner.data_boost_enabled =/#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag=''; +/-set spanner.data_boost_enabled = false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag=''/-; +set spanner.data_boost_enabled = false/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.transaction_tag=''; +set spanner.data_boost_enabled =/-false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1'; +set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG TO 'TAG1'; +SET SPANNER.DATA_BOOST_ENABLED TO TRUE; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1'; +set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to 'tag1'; + set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to 'tag1'; + set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1'; +set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1' ; +set spanner.data_boost_enabled to true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1' ; +set spanner.data_boost_enabled to true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1' +set spanner.data_boost_enabled to true ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1'; +set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag1'; +set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; set -spanner.transaction_tag +spanner.data_boost_enabled to -'tag1'; +true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag to 'tag1'; +foo set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1' bar; +set spanner.data_boost_enabled to true bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag to 'tag1'; +%set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'%; +set spanner.data_boost_enabled to true%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to%'tag1'; +set spanner.data_boost_enabled to%true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag to 'tag1'; +_set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'_; +set spanner.data_boost_enabled to true_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to_'tag1'; +set spanner.data_boost_enabled to_true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag to 'tag1'; +&set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'&; +set spanner.data_boost_enabled to true&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to&'tag1'; +set spanner.data_boost_enabled to&true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag to 'tag1'; +$set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'$; +set spanner.data_boost_enabled to true$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to$'tag1'; +set spanner.data_boost_enabled to$true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag to 'tag1'; +@set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'@; +set spanner.data_boost_enabled to true@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to@'tag1'; +set spanner.data_boost_enabled to@true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag to 'tag1'; +!set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'!; +set spanner.data_boost_enabled to true!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to!'tag1'; +set spanner.data_boost_enabled to!true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag to 'tag1'; +*set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'*; +set spanner.data_boost_enabled to true*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to*'tag1'; +set spanner.data_boost_enabled to*true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag to 'tag1'; +(set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'(; +set spanner.data_boost_enabled to true(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to('tag1'; +set spanner.data_boost_enabled to(true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag to 'tag1'; +)set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'); +set spanner.data_boost_enabled to true); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to)'tag1'; +set spanner.data_boost_enabled to)true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag to 'tag1'; +-set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'-; +set spanner.data_boost_enabled to true-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-'tag1'; +set spanner.data_boost_enabled to-true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag to 'tag1'; ++set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'+; +set spanner.data_boost_enabled to true+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to+'tag1'; +set spanner.data_boost_enabled to+true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag to 'tag1'; +-#set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'-#; +set spanner.data_boost_enabled to true-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-#'tag1'; +set spanner.data_boost_enabled to-#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag to 'tag1'; +/set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'/; +set spanner.data_boost_enabled to true/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/'tag1'; +set spanner.data_boost_enabled to/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag to 'tag1'; +\set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'\; +set spanner.data_boost_enabled to true\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to\'tag1'; +set spanner.data_boost_enabled to\true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag to 'tag1'; +?set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'?; +set spanner.data_boost_enabled to true?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to?'tag1'; +set spanner.data_boost_enabled to?true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag to 'tag1'; +-/set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'-/; +set spanner.data_boost_enabled to true-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-/'tag1'; +set spanner.data_boost_enabled to-/true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag to 'tag1'; +/#set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'/#; +set spanner.data_boost_enabled to true/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/#'tag1'; +set spanner.data_boost_enabled to/#true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag to 'tag1'; +/-set spanner.data_boost_enabled to true; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag1'/-; +set spanner.data_boost_enabled to true/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/-'tag1'; +set spanner.data_boost_enabled to/-true; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2'; +set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG TO 'TAG2'; +SET SPANNER.DATA_BOOST_ENABLED TO FALSE; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2'; +set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to 'tag2'; + set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to 'tag2'; + set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2'; +set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2' ; +set spanner.data_boost_enabled to false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2' ; +set spanner.data_boost_enabled to false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2' +set spanner.data_boost_enabled to false ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2'; +set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to 'tag2'; +set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; set -spanner.transaction_tag +spanner.data_boost_enabled to -'tag2'; +false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag to 'tag2'; +foo set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2' bar; +set spanner.data_boost_enabled to false bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag to 'tag2'; +%set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'%; +set spanner.data_boost_enabled to false%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to%'tag2'; +set spanner.data_boost_enabled to%false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag to 'tag2'; +_set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'_; +set spanner.data_boost_enabled to false_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to_'tag2'; +set spanner.data_boost_enabled to_false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag to 'tag2'; +&set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'&; +set spanner.data_boost_enabled to false&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to&'tag2'; +set spanner.data_boost_enabled to&false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag to 'tag2'; +$set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'$; +set spanner.data_boost_enabled to false$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to$'tag2'; +set spanner.data_boost_enabled to$false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag to 'tag2'; +@set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'@; +set spanner.data_boost_enabled to false@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to@'tag2'; +set spanner.data_boost_enabled to@false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag to 'tag2'; +!set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'!; +set spanner.data_boost_enabled to false!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to!'tag2'; +set spanner.data_boost_enabled to!false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag to 'tag2'; +*set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'*; +set spanner.data_boost_enabled to false*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to*'tag2'; +set spanner.data_boost_enabled to*false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag to 'tag2'; +(set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'(; +set spanner.data_boost_enabled to false(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to('tag2'; +set spanner.data_boost_enabled to(false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag to 'tag2'; +)set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'); +set spanner.data_boost_enabled to false); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to)'tag2'; +set spanner.data_boost_enabled to)false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag to 'tag2'; +-set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'-; +set spanner.data_boost_enabled to false-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-'tag2'; +set spanner.data_boost_enabled to-false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag to 'tag2'; ++set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'+; +set spanner.data_boost_enabled to false+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to+'tag2'; +set spanner.data_boost_enabled to+false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag to 'tag2'; +-#set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'-#; +set spanner.data_boost_enabled to false-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-#'tag2'; +set spanner.data_boost_enabled to-#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag to 'tag2'; +/set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'/; +set spanner.data_boost_enabled to false/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/'tag2'; +set spanner.data_boost_enabled to/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag to 'tag2'; +\set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'\; +set spanner.data_boost_enabled to false\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to\'tag2'; +set spanner.data_boost_enabled to\false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag to 'tag2'; +?set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'?; +set spanner.data_boost_enabled to false?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to?'tag2'; +set spanner.data_boost_enabled to?false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag to 'tag2'; +-/set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'-/; +set spanner.data_boost_enabled to false-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-/'tag2'; +set spanner.data_boost_enabled to-/false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag to 'tag2'; +/#set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'/#; +set spanner.data_boost_enabled to false/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/#'tag2'; +set spanner.data_boost_enabled to/#false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag to 'tag2'; +/-set spanner.data_boost_enabled to false; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to 'tag2'/-; +set spanner.data_boost_enabled to false/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/-'tag2'; +set spanner.data_boost_enabled to/-false; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to ''; +show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -SET SPANNER.TRANSACTION_TAG TO ''; +SHOW SPANNER.AUTO_PARTITION_MODE; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to ''; +show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to ''; + show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; - set spanner.transaction_tag to ''; + show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to ''; +show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to '' ; +show spanner.auto_partition_mode ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to '' ; +show spanner.auto_partition_mode ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to '' +show spanner.auto_partition_mode ; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to ''; +show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set spanner.transaction_tag to ''; +show spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; -set -spanner.transaction_tag -to -''; +show +spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.transaction_tag to ''; +foo show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to '' bar; +%show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.transaction_tag to ''; +show%spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''%; +_show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to%''; +show_spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.transaction_tag to ''; +&show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''_; +show&spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to_''; +$show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.transaction_tag to ''; +show$spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''&; +@show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to&''; +show@spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.transaction_tag to ''; +!show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''$; +show!spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to$''; +*show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.transaction_tag to ''; +show*spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''@; +(show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to@''; +show(spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.transaction_tag to ''; +)show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''!; +show)spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to!''; +-show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.transaction_tag to ''; +show-spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''*; ++show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to*''; +show+spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.transaction_tag to ''; +-#show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''(; +show-#spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to(''; +/show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.transaction_tag to ''; +show/spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''); +\show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to)''; +show\spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.transaction_tag to ''; +?show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''-; +show?spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-''; +-/show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.transaction_tag to ''; +show-/spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''+; +/#show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to+''; +show/#spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.transaction_tag to ''; +/-show spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.auto_partition_mode/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''-#; +show/-spanner.auto_partition_mode; +NEW_CONNECTION; +show variable spanner.auto_partition_mode; +NEW_CONNECTION; +SHOW VARIABLE SPANNER.AUTO_PARTITION_MODE; +NEW_CONNECTION; +show variable spanner.auto_partition_mode; +NEW_CONNECTION; + show variable spanner.auto_partition_mode; +NEW_CONNECTION; + show variable spanner.auto_partition_mode; +NEW_CONNECTION; + + + +show variable spanner.auto_partition_mode; +NEW_CONNECTION; +show variable spanner.auto_partition_mode ; +NEW_CONNECTION; +show variable spanner.auto_partition_mode ; +NEW_CONNECTION; +show variable spanner.auto_partition_mode + +; +NEW_CONNECTION; +show variable spanner.auto_partition_mode; +NEW_CONNECTION; +show variable spanner.auto_partition_mode; +NEW_CONNECTION; +show +variable +spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-#''; +foo show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.transaction_tag to ''; +%show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''/; +_show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/''; +&show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.transaction_tag to ''; +$show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''\; +@show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to\''; +!show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.transaction_tag to ''; +*show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''?; +(show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to?''; +)show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.transaction_tag to ''; +-show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''-/; ++show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to-/''; +-#show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.transaction_tag to ''; +/show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''/#; +\show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/#''; +?show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.transaction_tag to ''; +-/show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to ''/-; +/#show variable spanner.auto_partition_mode; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#spanner.auto_partition_mode; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.transaction_tag to/-''; +/-show variable spanner.auto_partition_mode; NEW_CONNECTION; -set spanner.rpc_priority='HIGH'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.auto_partition_mode/-; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY='HIGH'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-spanner.auto_partition_mode; NEW_CONNECTION; -set spanner.rpc_priority='high'; +set spanner.auto_partition_mode = true; NEW_CONNECTION; - set spanner.rpc_priority='HIGH'; +SET SPANNER.AUTO_PARTITION_MODE = TRUE; NEW_CONNECTION; - set spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode = true; +NEW_CONNECTION; + set spanner.auto_partition_mode = true; +NEW_CONNECTION; + set spanner.auto_partition_mode = true; NEW_CONNECTION; -set spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode = true; NEW_CONNECTION; -set spanner.rpc_priority='HIGH' ; +set spanner.auto_partition_mode = true ; NEW_CONNECTION; -set spanner.rpc_priority='HIGH' ; +set spanner.auto_partition_mode = true ; NEW_CONNECTION; -set spanner.rpc_priority='HIGH' +set spanner.auto_partition_mode = true ; NEW_CONNECTION; -set spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode = true; NEW_CONNECTION; -set spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode = true; NEW_CONNECTION; set -spanner.rpc_priority='HIGH'; +spanner.auto_partition_mode += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority='HIGH'; +foo set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH' bar; +set spanner.auto_partition_mode = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority='HIGH'; +%set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'%; +set spanner.auto_partition_mode = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority='HIGH'; +_set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'_; +set spanner.auto_partition_mode = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority='HIGH'; +&set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'&; +set spanner.auto_partition_mode = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority='HIGH'; +$set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'$; +set spanner.auto_partition_mode = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority='HIGH'; +@set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'@; +set spanner.auto_partition_mode = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority='HIGH'; +!set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'!; +set spanner.auto_partition_mode = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority='HIGH'; +*set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'*; +set spanner.auto_partition_mode = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority='HIGH'; +(set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'(; +set spanner.auto_partition_mode = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority='HIGH'; +)set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'); +set spanner.auto_partition_mode = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority='HIGH'; +-set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'-; +set spanner.auto_partition_mode = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority='HIGH'; ++set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'+; +set spanner.auto_partition_mode = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority='HIGH'; +-#set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'-#; +set spanner.auto_partition_mode = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority='HIGH'; +/set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'/; +set spanner.auto_partition_mode = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority='HIGH'; +\set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'\; +set spanner.auto_partition_mode = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority='HIGH'; +?set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'?; +set spanner.auto_partition_mode = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority='HIGH'; +-/set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'-/; +set spanner.auto_partition_mode = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority='HIGH'; +/#set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'/#; +set spanner.auto_partition_mode = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority='HIGH'; +/-set spanner.auto_partition_mode = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='HIGH'/-; +set spanner.auto_partition_mode = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.rpc_priority='HIGH'; +set spanner.auto_partition_mode =/-true; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode = false; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY='MEDIUM'; +SET SPANNER.AUTO_PARTITION_MODE = FALSE; NEW_CONNECTION; -set spanner.rpc_priority='medium'; +set spanner.auto_partition_mode = false; NEW_CONNECTION; - set spanner.rpc_priority='MEDIUM'; + set spanner.auto_partition_mode = false; NEW_CONNECTION; - set spanner.rpc_priority='MEDIUM'; + set spanner.auto_partition_mode = false; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode = false; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM' ; +set spanner.auto_partition_mode = false ; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM' ; +set spanner.auto_partition_mode = false ; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM' +set spanner.auto_partition_mode = false ; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode = false; NEW_CONNECTION; -set spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode = false; NEW_CONNECTION; set -spanner.rpc_priority='MEDIUM'; +spanner.auto_partition_mode += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority='MEDIUM'; +foo set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM' bar; +set spanner.auto_partition_mode = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority='MEDIUM'; +%set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'%; +set spanner.auto_partition_mode = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority='MEDIUM'; +_set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'_; +set spanner.auto_partition_mode = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority='MEDIUM'; +&set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'&; +set spanner.auto_partition_mode = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority='MEDIUM'; +$set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'$; +set spanner.auto_partition_mode = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority='MEDIUM'; +@set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'@; +set spanner.auto_partition_mode = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority='MEDIUM'; +!set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'!; +set spanner.auto_partition_mode = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority='MEDIUM'; +*set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'*; +set spanner.auto_partition_mode = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority='MEDIUM'; +(set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'(; +set spanner.auto_partition_mode = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority='MEDIUM'; +)set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'); +set spanner.auto_partition_mode = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority='MEDIUM'; +-set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'-; +set spanner.auto_partition_mode = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority='MEDIUM'; ++set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'+; +set spanner.auto_partition_mode = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority='MEDIUM'; +-#set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'-#; +set spanner.auto_partition_mode = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority='MEDIUM'; +/set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'/; +set spanner.auto_partition_mode = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority='MEDIUM'; +\set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'\; +set spanner.auto_partition_mode = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority='MEDIUM'; +?set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'?; +set spanner.auto_partition_mode = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority='MEDIUM'; +-/set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'-/; +set spanner.auto_partition_mode = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority='MEDIUM'; +/#set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'/#; +set spanner.auto_partition_mode = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority='MEDIUM'; +/-set spanner.auto_partition_mode = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='MEDIUM'/-; +set spanner.auto_partition_mode = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.rpc_priority='MEDIUM'; +set spanner.auto_partition_mode =/-false; NEW_CONNECTION; -set spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to true; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY='LOW'; +SET SPANNER.AUTO_PARTITION_MODE TO TRUE; NEW_CONNECTION; -set spanner.rpc_priority='low'; +set spanner.auto_partition_mode to true; NEW_CONNECTION; - set spanner.rpc_priority='LOW'; + set spanner.auto_partition_mode to true; NEW_CONNECTION; - set spanner.rpc_priority='LOW'; + set spanner.auto_partition_mode to true; NEW_CONNECTION; -set spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to true; NEW_CONNECTION; -set spanner.rpc_priority='LOW' ; +set spanner.auto_partition_mode to true ; NEW_CONNECTION; -set spanner.rpc_priority='LOW' ; +set spanner.auto_partition_mode to true ; NEW_CONNECTION; -set spanner.rpc_priority='LOW' +set spanner.auto_partition_mode to true ; NEW_CONNECTION; -set spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to true; NEW_CONNECTION; -set spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to true; NEW_CONNECTION; set -spanner.rpc_priority='LOW'; +spanner.auto_partition_mode +to +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority='LOW'; +foo set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW' bar; +set spanner.auto_partition_mode to true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority='LOW'; +%set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'%; +set spanner.auto_partition_mode to true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority='LOW'; +_set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'_; +set spanner.auto_partition_mode to true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority='LOW'; +&set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'&; +set spanner.auto_partition_mode to true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority='LOW'; +$set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'$; +set spanner.auto_partition_mode to true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority='LOW'; +@set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'@; +set spanner.auto_partition_mode to true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority='LOW'; +!set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'!; +set spanner.auto_partition_mode to true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority='LOW'; +*set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'*; +set spanner.auto_partition_mode to true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority='LOW'; +(set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'(; +set spanner.auto_partition_mode to true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority='LOW'; +)set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'); +set spanner.auto_partition_mode to true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority='LOW'; +-set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'-; +set spanner.auto_partition_mode to true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority='LOW'; ++set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'+; +set spanner.auto_partition_mode to true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority='LOW'; +-#set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'-#; +set spanner.auto_partition_mode to true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority='LOW'; +/set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'/; +set spanner.auto_partition_mode to true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority='LOW'; +\set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'\; +set spanner.auto_partition_mode to true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority='LOW'; +?set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'?; +set spanner.auto_partition_mode to true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority='LOW'; +-/set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'-/; +set spanner.auto_partition_mode to true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority='LOW'; +/#set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'/#; +set spanner.auto_partition_mode to true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority='LOW'; +/-set spanner.auto_partition_mode to true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='LOW'/-; +set spanner.auto_partition_mode to true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.rpc_priority='LOW'; +set spanner.auto_partition_mode to/-true; NEW_CONNECTION; -set spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to false; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY='NULL'; +SET SPANNER.AUTO_PARTITION_MODE TO FALSE; NEW_CONNECTION; -set spanner.rpc_priority='null'; +set spanner.auto_partition_mode to false; NEW_CONNECTION; - set spanner.rpc_priority='NULL'; + set spanner.auto_partition_mode to false; NEW_CONNECTION; - set spanner.rpc_priority='NULL'; + set spanner.auto_partition_mode to false; NEW_CONNECTION; -set spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to false; NEW_CONNECTION; -set spanner.rpc_priority='NULL' ; +set spanner.auto_partition_mode to false ; NEW_CONNECTION; -set spanner.rpc_priority='NULL' ; +set spanner.auto_partition_mode to false ; NEW_CONNECTION; -set spanner.rpc_priority='NULL' +set spanner.auto_partition_mode to false ; NEW_CONNECTION; -set spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to false; NEW_CONNECTION; -set spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to false; NEW_CONNECTION; set -spanner.rpc_priority='NULL'; +spanner.auto_partition_mode +to +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority='NULL'; +foo set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL' bar; +set spanner.auto_partition_mode to false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority='NULL'; +%set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'%; +set spanner.auto_partition_mode to false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority='NULL'; +_set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'_; +set spanner.auto_partition_mode to false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority='NULL'; +&set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'&; +set spanner.auto_partition_mode to false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority='NULL'; +$set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'$; +set spanner.auto_partition_mode to false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority='NULL'; +@set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'@; +set spanner.auto_partition_mode to false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority='NULL'; +!set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'!; +set spanner.auto_partition_mode to false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority='NULL'; +*set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'*; +set spanner.auto_partition_mode to false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority='NULL'; +(set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'(; +set spanner.auto_partition_mode to false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority='NULL'; +)set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'); +set spanner.auto_partition_mode to false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority='NULL'; +-set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'-; +set spanner.auto_partition_mode to false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority='NULL'; ++set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'+; +set spanner.auto_partition_mode to false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority='NULL'; +-#set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'-#; +set spanner.auto_partition_mode to false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority='NULL'; +/set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'/; +set spanner.auto_partition_mode to false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority='NULL'; +\set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'\; +set spanner.auto_partition_mode to false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority='NULL'; +?set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'?; +set spanner.auto_partition_mode to false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority='NULL'; +-/set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'-/; +set spanner.auto_partition_mode to false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority='NULL'; +/#set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'/#; +set spanner.auto_partition_mode to false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority='NULL'; +/-set spanner.auto_partition_mode to false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority='NULL'/-; +set spanner.auto_partition_mode to false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.rpc_priority='NULL'; +set spanner.auto_partition_mode to/-false; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH'; +show spanner.max_partitions; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY TO 'HIGH'; +SHOW SPANNER.MAX_PARTITIONS; NEW_CONNECTION; -set spanner.rpc_priority to 'high'; +show spanner.max_partitions; NEW_CONNECTION; - set spanner.rpc_priority to 'HIGH'; + show spanner.max_partitions; NEW_CONNECTION; - set spanner.rpc_priority to 'HIGH'; + show spanner.max_partitions; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH'; +show spanner.max_partitions; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH' ; +show spanner.max_partitions ; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH' ; +show spanner.max_partitions ; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH' +show spanner.max_partitions ; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH'; +show spanner.max_partitions; NEW_CONNECTION; -set spanner.rpc_priority to 'HIGH'; +show spanner.max_partitions; NEW_CONNECTION; -set -spanner.rpc_priority -to -'HIGH'; +show +spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority to 'HIGH'; +foo show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH' bar; +%show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority to 'HIGH'; +show%spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'%; +_show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to%'HIGH'; +show_spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority to 'HIGH'; +&show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'_; +show&spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to_'HIGH'; +$show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority to 'HIGH'; +show$spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'&; +@show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to&'HIGH'; +show@spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority to 'HIGH'; +!show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'$; +show!spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to$'HIGH'; +*show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority to 'HIGH'; +show*spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'@; +(show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to@'HIGH'; +show(spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority to 'HIGH'; +)show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'!; +show)spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to!'HIGH'; +-show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority to 'HIGH'; +show-spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'*; ++show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to*'HIGH'; +show+spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority to 'HIGH'; +-#show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'(; +show-#spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to('HIGH'; +/show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority to 'HIGH'; +show/spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'); +\show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to)'HIGH'; +show\spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority to 'HIGH'; +?show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'-; +show?spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-'HIGH'; +-/show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority to 'HIGH'; +show-/spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'+; +/#show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to+'HIGH'; +show/#spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority to 'HIGH'; +/-show spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitions/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'-#; +show/-spanner.max_partitions; +NEW_CONNECTION; +show variable spanner.max_partitions; +NEW_CONNECTION; +SHOW VARIABLE SPANNER.MAX_PARTITIONS; +NEW_CONNECTION; +show variable spanner.max_partitions; +NEW_CONNECTION; + show variable spanner.max_partitions; +NEW_CONNECTION; + show variable spanner.max_partitions; +NEW_CONNECTION; + + + +show variable spanner.max_partitions; +NEW_CONNECTION; +show variable spanner.max_partitions ; +NEW_CONNECTION; +show variable spanner.max_partitions ; +NEW_CONNECTION; +show variable spanner.max_partitions + +; +NEW_CONNECTION; +show variable spanner.max_partitions; +NEW_CONNECTION; +show variable spanner.max_partitions; +NEW_CONNECTION; +show +variable +spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-#'HIGH'; +foo show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority to 'HIGH'; +%show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'/; +_show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/'HIGH'; +&show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority to 'HIGH'; +$show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'\; +@show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to\'HIGH'; +!show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority to 'HIGH'; +*show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'?; +(show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to?'HIGH'; +)show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority to 'HIGH'; +-show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'-/; ++show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-/'HIGH'; +-#show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority to 'HIGH'; +/show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'/#; +\show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/#'HIGH'; +?show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority to 'HIGH'; +-/show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'HIGH'/-; +/#show variable spanner.max_partitions; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#spanner.max_partitions; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/-'HIGH'; +/-show variable spanner.max_partitions; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitions/-; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY TO 'MEDIUM'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-spanner.max_partitions; NEW_CONNECTION; -set spanner.rpc_priority to 'medium'; +set spanner.max_partitions = 1; NEW_CONNECTION; - set spanner.rpc_priority to 'MEDIUM'; +SET SPANNER.MAX_PARTITIONS = 1; NEW_CONNECTION; - set spanner.rpc_priority to 'MEDIUM'; +set spanner.max_partitions = 1; +NEW_CONNECTION; + set spanner.max_partitions = 1; +NEW_CONNECTION; + set spanner.max_partitions = 1; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM'; +set spanner.max_partitions = 1; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM' ; +set spanner.max_partitions = 1 ; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM' ; +set spanner.max_partitions = 1 ; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM' +set spanner.max_partitions = 1 ; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM'; +set spanner.max_partitions = 1; NEW_CONNECTION; -set spanner.rpc_priority to 'MEDIUM'; +set spanner.max_partitions = 1; NEW_CONNECTION; set -spanner.rpc_priority -to -'MEDIUM'; +spanner.max_partitions += +1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority to 'MEDIUM'; +foo set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM' bar; +set spanner.max_partitions = 1 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority to 'MEDIUM'; +%set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'%; +set spanner.max_partitions = 1%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to%'MEDIUM'; +set spanner.max_partitions =%1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority to 'MEDIUM'; +_set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'_; +set spanner.max_partitions = 1_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to_'MEDIUM'; +set spanner.max_partitions =_1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority to 'MEDIUM'; +&set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'&; +set spanner.max_partitions = 1&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to&'MEDIUM'; +set spanner.max_partitions =&1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority to 'MEDIUM'; +$set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'$; +set spanner.max_partitions = 1$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to$'MEDIUM'; +set spanner.max_partitions =$1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority to 'MEDIUM'; +@set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'@; +set spanner.max_partitions = 1@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to@'MEDIUM'; +set spanner.max_partitions =@1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority to 'MEDIUM'; +!set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'!; +set spanner.max_partitions = 1!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to!'MEDIUM'; +set spanner.max_partitions =!1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority to 'MEDIUM'; +*set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'*; +set spanner.max_partitions = 1*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to*'MEDIUM'; +set spanner.max_partitions =*1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority to 'MEDIUM'; +(set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'(; +set spanner.max_partitions = 1(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to('MEDIUM'; +set spanner.max_partitions =(1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority to 'MEDIUM'; +)set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'); +set spanner.max_partitions = 1); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to)'MEDIUM'; +set spanner.max_partitions =)1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority to 'MEDIUM'; +-set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'-; +set spanner.max_partitions = 1-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-'MEDIUM'; +set spanner.max_partitions =-1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority to 'MEDIUM'; ++set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'+; +set spanner.max_partitions = 1+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to+'MEDIUM'; +set spanner.max_partitions =+1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority to 'MEDIUM'; +-#set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'-#; +set spanner.max_partitions = 1-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-#'MEDIUM'; +set spanner.max_partitions =-#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority to 'MEDIUM'; +/set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'/; +set spanner.max_partitions = 1/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/'MEDIUM'; +set spanner.max_partitions =/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority to 'MEDIUM'; +\set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'\; +set spanner.max_partitions = 1\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to\'MEDIUM'; +set spanner.max_partitions =\1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority to 'MEDIUM'; +?set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'?; +set spanner.max_partitions = 1?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to?'MEDIUM'; +set spanner.max_partitions =?1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority to 'MEDIUM'; +-/set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'-/; +set spanner.max_partitions = 1-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-/'MEDIUM'; +set spanner.max_partitions =-/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority to 'MEDIUM'; +/#set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'/#; +set spanner.max_partitions = 1/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/#'MEDIUM'; +set spanner.max_partitions =/#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority to 'MEDIUM'; +/-set spanner.max_partitions = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'MEDIUM'/-; +set spanner.max_partitions = 1/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/-'MEDIUM'; +set spanner.max_partitions =/-1; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW'; +set spanner.max_partitions = 10; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY TO 'LOW'; +SET SPANNER.MAX_PARTITIONS = 10; NEW_CONNECTION; -set spanner.rpc_priority to 'low'; +set spanner.max_partitions = 10; NEW_CONNECTION; - set spanner.rpc_priority to 'LOW'; + set spanner.max_partitions = 10; NEW_CONNECTION; - set spanner.rpc_priority to 'LOW'; + set spanner.max_partitions = 10; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW'; +set spanner.max_partitions = 10; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW' ; +set spanner.max_partitions = 10 ; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW' ; +set spanner.max_partitions = 10 ; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW' +set spanner.max_partitions = 10 ; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW'; +set spanner.max_partitions = 10; NEW_CONNECTION; -set spanner.rpc_priority to 'LOW'; +set spanner.max_partitions = 10; NEW_CONNECTION; set -spanner.rpc_priority -to -'LOW'; +spanner.max_partitions += +10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority to 'LOW'; +foo set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW' bar; +set spanner.max_partitions = 10 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority to 'LOW'; +%set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'%; +set spanner.max_partitions = 10%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to%'LOW'; +set spanner.max_partitions =%10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority to 'LOW'; +_set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'_; +set spanner.max_partitions = 10_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to_'LOW'; +set spanner.max_partitions =_10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority to 'LOW'; +&set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'&; +set spanner.max_partitions = 10&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to&'LOW'; +set spanner.max_partitions =&10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority to 'LOW'; +$set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'$; +set spanner.max_partitions = 10$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to$'LOW'; +set spanner.max_partitions =$10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority to 'LOW'; +@set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'@; +set spanner.max_partitions = 10@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to@'LOW'; +set spanner.max_partitions =@10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority to 'LOW'; +!set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'!; +set spanner.max_partitions = 10!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to!'LOW'; +set spanner.max_partitions =!10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority to 'LOW'; +*set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'*; +set spanner.max_partitions = 10*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to*'LOW'; +set spanner.max_partitions =*10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority to 'LOW'; +(set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'(; +set spanner.max_partitions = 10(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to('LOW'; +set spanner.max_partitions =(10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority to 'LOW'; +)set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'); +set spanner.max_partitions = 10); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to)'LOW'; +set spanner.max_partitions =)10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority to 'LOW'; +-set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'-; +set spanner.max_partitions = 10-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-'LOW'; +set spanner.max_partitions =-10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority to 'LOW'; ++set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'+; +set spanner.max_partitions = 10+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to+'LOW'; +set spanner.max_partitions =+10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority to 'LOW'; +-#set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'-#; +set spanner.max_partitions = 10-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-#'LOW'; +set spanner.max_partitions =-#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority to 'LOW'; +/set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'/; +set spanner.max_partitions = 10/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/'LOW'; +set spanner.max_partitions =/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority to 'LOW'; +\set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'\; +set spanner.max_partitions = 10\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to\'LOW'; +set spanner.max_partitions =\10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority to 'LOW'; +?set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'?; +set spanner.max_partitions = 10?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to?'LOW'; +set spanner.max_partitions =?10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority to 'LOW'; +-/set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'-/; +set spanner.max_partitions = 10-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-/'LOW'; +set spanner.max_partitions =-/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority to 'LOW'; +/#set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'/#; +set spanner.max_partitions = 10/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/#'LOW'; +set spanner.max_partitions =/#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority to 'LOW'; +/-set spanner.max_partitions = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'LOW'/-; +set spanner.max_partitions = 10/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/-'LOW'; +set spanner.max_partitions =/-10; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL'; +set spanner.max_partitions to 5; NEW_CONNECTION; -SET SPANNER.RPC_PRIORITY TO 'NULL'; +SET SPANNER.MAX_PARTITIONS TO 5; NEW_CONNECTION; -set spanner.rpc_priority to 'null'; +set spanner.max_partitions to 5; NEW_CONNECTION; - set spanner.rpc_priority to 'NULL'; + set spanner.max_partitions to 5; NEW_CONNECTION; - set spanner.rpc_priority to 'NULL'; + set spanner.max_partitions to 5; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL'; +set spanner.max_partitions to 5; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL' ; +set spanner.max_partitions to 5 ; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL' ; +set spanner.max_partitions to 5 ; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL' +set spanner.max_partitions to 5 ; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL'; +set spanner.max_partitions to 5; NEW_CONNECTION; -set spanner.rpc_priority to 'NULL'; +set spanner.max_partitions to 5; NEW_CONNECTION; set -spanner.rpc_priority +spanner.max_partitions to -'NULL'; +5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.rpc_priority to 'NULL'; +foo set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL' bar; +set spanner.max_partitions to 5 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.rpc_priority to 'NULL'; +%set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'%; +set spanner.max_partitions to 5%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to%'NULL'; +set spanner.max_partitions to%5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.rpc_priority to 'NULL'; +_set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'_; +set spanner.max_partitions to 5_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to_'NULL'; +set spanner.max_partitions to_5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.rpc_priority to 'NULL'; +&set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'&; +set spanner.max_partitions to 5&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to&'NULL'; +set spanner.max_partitions to&5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.rpc_priority to 'NULL'; +$set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'$; +set spanner.max_partitions to 5$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to$'NULL'; +set spanner.max_partitions to$5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.rpc_priority to 'NULL'; +@set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'@; +set spanner.max_partitions to 5@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to@'NULL'; +set spanner.max_partitions to@5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.rpc_priority to 'NULL'; +!set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'!; +set spanner.max_partitions to 5!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to!'NULL'; +set spanner.max_partitions to!5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.rpc_priority to 'NULL'; +*set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'*; +set spanner.max_partitions to 5*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to*'NULL'; +set spanner.max_partitions to*5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.rpc_priority to 'NULL'; +(set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'(; +set spanner.max_partitions to 5(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to('NULL'; +set spanner.max_partitions to(5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.rpc_priority to 'NULL'; +)set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'); +set spanner.max_partitions to 5); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to)'NULL'; +set spanner.max_partitions to)5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.rpc_priority to 'NULL'; +-set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'-; +set spanner.max_partitions to 5-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-'NULL'; +set spanner.max_partitions to-5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.rpc_priority to 'NULL'; ++set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'+; +set spanner.max_partitions to 5+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to+'NULL'; +set spanner.max_partitions to+5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.rpc_priority to 'NULL'; +-#set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'-#; +set spanner.max_partitions to 5-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-#'NULL'; +set spanner.max_partitions to-#5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.rpc_priority to 'NULL'; +/set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'/; +set spanner.max_partitions to 5/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/'NULL'; +set spanner.max_partitions to/5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.rpc_priority to 'NULL'; +\set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'\; +set spanner.max_partitions to 5\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to\'NULL'; +set spanner.max_partitions to\5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.rpc_priority to 'NULL'; +?set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'?; +set spanner.max_partitions to 5?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to?'NULL'; +set spanner.max_partitions to?5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.rpc_priority to 'NULL'; +-/set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'-/; +set spanner.max_partitions to 5-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to-/'NULL'; +set spanner.max_partitions to-/5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.rpc_priority to 'NULL'; +/#set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'/#; +set spanner.max_partitions to 5/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/#'NULL'; +set spanner.max_partitions to/#5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.rpc_priority to 'NULL'; +/-set spanner.max_partitions to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to 'NULL'/-; +set spanner.max_partitions to 5/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.rpc_priority to/-'NULL'; +set spanner.max_partitions to/-5; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to 20; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT='ENABLED'; +SET SPANNER.MAX_PARTITIONS TO 20; NEW_CONNECTION; -set spanner.savepoint_support='enabled'; +set spanner.max_partitions to 20; NEW_CONNECTION; - set spanner.savepoint_support='ENABLED'; + set spanner.max_partitions to 20; NEW_CONNECTION; - set spanner.savepoint_support='ENABLED'; + set spanner.max_partitions to 20; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to 20; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED' ; +set spanner.max_partitions to 20 ; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED' ; +set spanner.max_partitions to 20 ; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED' +set spanner.max_partitions to 20 ; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to 20; NEW_CONNECTION; -set spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to 20; NEW_CONNECTION; set -spanner.savepoint_support='ENABLED'; +spanner.max_partitions +to +20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support='ENABLED'; +foo set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED' bar; +set spanner.max_partitions to 20 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support='ENABLED'; +%set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'%; +set spanner.max_partitions to 20%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to%20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support='ENABLED'; +_set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'_; +set spanner.max_partitions to 20_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to_20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support='ENABLED'; +&set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'&; +set spanner.max_partitions to 20&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to&20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support='ENABLED'; +$set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'$; +set spanner.max_partitions to 20$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to$20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support='ENABLED'; +@set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'@; +set spanner.max_partitions to 20@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to@20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support='ENABLED'; +!set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'!; +set spanner.max_partitions to 20!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to!20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support='ENABLED'; +*set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'*; +set spanner.max_partitions to 20*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to*20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support='ENABLED'; +(set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'(; +set spanner.max_partitions to 20(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to(20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support='ENABLED'; +)set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'); +set spanner.max_partitions to 20); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to)20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support='ENABLED'; +-set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'-; +set spanner.max_partitions to 20-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to-20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support='ENABLED'; ++set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'+; +set spanner.max_partitions to 20+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to+20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support='ENABLED'; +-#set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'-#; +set spanner.max_partitions to 20-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to-#20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support='ENABLED'; +/set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'/; +set spanner.max_partitions to 20/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to/20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support='ENABLED'; +\set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'\; +set spanner.max_partitions to 20\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to\20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support='ENABLED'; +?set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'?; +set spanner.max_partitions to 20?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to?20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support='ENABLED'; +-/set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'-/; +set spanner.max_partitions to 20-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to-/20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support='ENABLED'; +/#set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'/#; +set spanner.max_partitions to 20/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to/#20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support='ENABLED'; +/-set spanner.max_partitions to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='ENABLED'/-; +set spanner.max_partitions to 20/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.savepoint_support='ENABLED'; +set spanner.max_partitions to/-20; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show spanner.max_partitioned_parallelism; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT='FAIL_AFTER_ROLLBACK'; +SHOW SPANNER.MAX_PARTITIONED_PARALLELISM; NEW_CONNECTION; -set spanner.savepoint_support='fail_after_rollback'; +show spanner.max_partitioned_parallelism; NEW_CONNECTION; - set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; + show spanner.max_partitioned_parallelism; NEW_CONNECTION; - set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; + show spanner.max_partitioned_parallelism; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show spanner.max_partitioned_parallelism; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' ; +show spanner.max_partitioned_parallelism ; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' ; +show spanner.max_partitioned_parallelism ; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' +show spanner.max_partitioned_parallelism ; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show spanner.max_partitioned_parallelism; NEW_CONNECTION; -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show spanner.max_partitioned_parallelism; NEW_CONNECTION; -set -spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show +spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +foo show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK' bar; +%show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show%spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'%; +_show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show_spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +&show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'_; +show&spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +$show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show$spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'&; +@show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show@spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +!show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'$; +show!spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +*show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show*spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'@; +(show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show(spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +)show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'!; +show)spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show-spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'*; ++show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show+spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-#show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'(; +show-#spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +/show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show/spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'); +\show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show\spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +?show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-; +show?spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-/show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show-/spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'+; +/#show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +show/#spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +/-show spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show spanner.max_partitioned_parallelism/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-#; +show/-spanner.max_partitioned_parallelism; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +SHOW VARIABLE SPANNER.MAX_PARTITIONED_PARALLELISM; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; + show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; + show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; + + + +show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism ; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism ; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism + +; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +show +variable +spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +foo show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +%show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism%; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable%spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/; +_show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism_; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable_spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +&show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism&; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable&spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +$show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism$; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable$spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'\; +@show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism@; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable@spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +!show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism!; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable!spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +*show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism*; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable*spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'?; +(show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism(; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable(spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +)show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism); +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable)spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism-; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'-/; ++show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism+; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable+spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-#show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism-#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-#spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +/show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/#; +\show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism\; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable\spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +?show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism?; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable?spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +-/show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism-/; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable-/spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='FAIL_AFTER_ROLLBACK'/-; +/#show variable spanner.max_partitioned_parallelism; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism/#; +NEW_CONNECTION; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/#spanner.max_partitioned_parallelism; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.savepoint_support='FAIL_AFTER_ROLLBACK'; +/-show variable spanner.max_partitioned_parallelism; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable spanner.max_partitioned_parallelism/-; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT='DISABLED'; +@EXPECT EXCEPTION UNIMPLEMENTED +show variable/-spanner.max_partitioned_parallelism; NEW_CONNECTION; -set spanner.savepoint_support='disabled'; +set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; - set spanner.savepoint_support='DISABLED'; +SET SPANNER.MAX_PARTITIONED_PARALLELISM = 1; NEW_CONNECTION; - set spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism = 1; +NEW_CONNECTION; + set spanner.max_partitioned_parallelism = 1; +NEW_CONNECTION; + set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED' ; +set spanner.max_partitioned_parallelism = 1 ; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED' ; +set spanner.max_partitioned_parallelism = 1 ; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED' +set spanner.max_partitioned_parallelism = 1 ; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; -set spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; set -spanner.savepoint_support='DISABLED'; +spanner.max_partitioned_parallelism += +1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support='DISABLED'; +foo set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED' bar; +set spanner.max_partitioned_parallelism = 1 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support='DISABLED'; +%set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'%; +set spanner.max_partitioned_parallelism = 1%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =%1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support='DISABLED'; +_set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'_; +set spanner.max_partitioned_parallelism = 1_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =_1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support='DISABLED'; +&set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'&; +set spanner.max_partitioned_parallelism = 1&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =&1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support='DISABLED'; +$set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'$; +set spanner.max_partitioned_parallelism = 1$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =$1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support='DISABLED'; +@set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'@; +set spanner.max_partitioned_parallelism = 1@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =@1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support='DISABLED'; +!set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'!; +set spanner.max_partitioned_parallelism = 1!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =!1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support='DISABLED'; +*set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'*; +set spanner.max_partitioned_parallelism = 1*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =*1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support='DISABLED'; +(set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'(; +set spanner.max_partitioned_parallelism = 1(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =(1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support='DISABLED'; +)set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'); +set spanner.max_partitioned_parallelism = 1); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =)1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support='DISABLED'; +-set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'-; +set spanner.max_partitioned_parallelism = 1-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =-1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support='DISABLED'; ++set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'+; +set spanner.max_partitioned_parallelism = 1+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =+1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support='DISABLED'; +-#set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'-#; +set spanner.max_partitioned_parallelism = 1-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =-#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support='DISABLED'; +/set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'/; +set spanner.max_partitioned_parallelism = 1/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support='DISABLED'; +\set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'\; +set spanner.max_partitioned_parallelism = 1\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =\1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support='DISABLED'; +?set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'?; +set spanner.max_partitioned_parallelism = 1?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =?1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support='DISABLED'; +-/set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'-/; +set spanner.max_partitioned_parallelism = 1-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =-/1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support='DISABLED'; +/#set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'/#; +set spanner.max_partitioned_parallelism = 1/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =/#1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support='DISABLED'; +/-set spanner.max_partitioned_parallelism = 1; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support='DISABLED'/-; +set spanner.max_partitioned_parallelism = 1/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-spanner.savepoint_support='DISABLED'; +set spanner.max_partitioned_parallelism =/-1; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED'; +set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT TO 'ENABLED'; +SET SPANNER.MAX_PARTITIONED_PARALLELISM = 10; NEW_CONNECTION; -set spanner.savepoint_support to 'enabled'; +set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; - set spanner.savepoint_support to 'ENABLED'; + set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; - set spanner.savepoint_support to 'ENABLED'; + set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED'; +set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED' ; +set spanner.max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED' ; +set spanner.max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED' +set spanner.max_partitioned_parallelism = 10 ; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED'; +set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; -set spanner.savepoint_support to 'ENABLED'; +set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; set -spanner.savepoint_support -to -'ENABLED'; +spanner.max_partitioned_parallelism += +10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support to 'ENABLED'; +foo set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED' bar; +set spanner.max_partitioned_parallelism = 10 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support to 'ENABLED'; +%set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'%; +set spanner.max_partitioned_parallelism = 10%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to%'ENABLED'; +set spanner.max_partitioned_parallelism =%10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support to 'ENABLED'; +_set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'_; +set spanner.max_partitioned_parallelism = 10_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to_'ENABLED'; +set spanner.max_partitioned_parallelism =_10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support to 'ENABLED'; +&set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'&; +set spanner.max_partitioned_parallelism = 10&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to&'ENABLED'; +set spanner.max_partitioned_parallelism =&10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support to 'ENABLED'; +$set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'$; +set spanner.max_partitioned_parallelism = 10$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to$'ENABLED'; +set spanner.max_partitioned_parallelism =$10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support to 'ENABLED'; +@set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'@; +set spanner.max_partitioned_parallelism = 10@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to@'ENABLED'; +set spanner.max_partitioned_parallelism =@10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support to 'ENABLED'; +!set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'!; +set spanner.max_partitioned_parallelism = 10!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to!'ENABLED'; +set spanner.max_partitioned_parallelism =!10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support to 'ENABLED'; +*set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'*; +set spanner.max_partitioned_parallelism = 10*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to*'ENABLED'; +set spanner.max_partitioned_parallelism =*10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support to 'ENABLED'; +(set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'(; +set spanner.max_partitioned_parallelism = 10(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to('ENABLED'; +set spanner.max_partitioned_parallelism =(10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support to 'ENABLED'; +)set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'); +set spanner.max_partitioned_parallelism = 10); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to)'ENABLED'; +set spanner.max_partitioned_parallelism =)10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support to 'ENABLED'; +-set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'-; +set spanner.max_partitioned_parallelism = 10-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-'ENABLED'; +set spanner.max_partitioned_parallelism =-10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support to 'ENABLED'; ++set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'+; +set spanner.max_partitioned_parallelism = 10+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to+'ENABLED'; +set spanner.max_partitioned_parallelism =+10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support to 'ENABLED'; +-#set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'-#; +set spanner.max_partitioned_parallelism = 10-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-#'ENABLED'; +set spanner.max_partitioned_parallelism =-#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support to 'ENABLED'; +/set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'/; +set spanner.max_partitioned_parallelism = 10/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/'ENABLED'; +set spanner.max_partitioned_parallelism =/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support to 'ENABLED'; +\set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'\; +set spanner.max_partitioned_parallelism = 10\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to\'ENABLED'; +set spanner.max_partitioned_parallelism =\10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support to 'ENABLED'; +?set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'?; +set spanner.max_partitioned_parallelism = 10?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to?'ENABLED'; +set spanner.max_partitioned_parallelism =?10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support to 'ENABLED'; +-/set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'-/; +set spanner.max_partitioned_parallelism = 10-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-/'ENABLED'; +set spanner.max_partitioned_parallelism =-/10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support to 'ENABLED'; +/#set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'/#; +set spanner.max_partitioned_parallelism = 10/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/#'ENABLED'; +set spanner.max_partitioned_parallelism =/#10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support to 'ENABLED'; +/-set spanner.max_partitioned_parallelism = 10; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'ENABLED'/-; +set spanner.max_partitioned_parallelism = 10/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/-'ENABLED'; +set spanner.max_partitioned_parallelism =/-10; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT TO 'FAIL_AFTER_ROLLBACK'; +SET SPANNER.MAX_PARTITIONED_PARALLELISM TO 5; NEW_CONNECTION; -set spanner.savepoint_support to 'fail_after_rollback'; +set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; - set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; + set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; - set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; + set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' ; +set spanner.max_partitioned_parallelism to 5 ; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' ; +set spanner.max_partitioned_parallelism to 5 ; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' +set spanner.max_partitioned_parallelism to 5 ; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; set -spanner.savepoint_support +spanner.max_partitioned_parallelism to -'FAIL_AFTER_ROLLBACK'; +5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +foo set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK' bar; +set spanner.max_partitioned_parallelism to 5 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +%set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'%; +set spanner.max_partitioned_parallelism to 5%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to%'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to%5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +_set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'_; +set spanner.max_partitioned_parallelism to 5_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to_'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to_5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +&set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'&; +set spanner.max_partitioned_parallelism to 5&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to&'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to&5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +$set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'$; +set spanner.max_partitioned_parallelism to 5$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to$'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to$5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +@set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'@; +set spanner.max_partitioned_parallelism to 5@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to@'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to@5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +!set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'!; +set spanner.max_partitioned_parallelism to 5!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to!'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to!5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +*set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'*; +set spanner.max_partitioned_parallelism to 5*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to*'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to*5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +(set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'(; +set spanner.max_partitioned_parallelism to 5(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to('FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to(5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +)set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'); +set spanner.max_partitioned_parallelism to 5); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to)'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to)5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +-set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-; +set spanner.max_partitioned_parallelism to 5-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to-5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; ++set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'+; +set spanner.max_partitioned_parallelism to 5+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to+'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to+5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +-#set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-#; +set spanner.max_partitioned_parallelism to 5-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-#'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to-#5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +/set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/; +set spanner.max_partitioned_parallelism to 5/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to/5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +\set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'\; +set spanner.max_partitioned_parallelism to 5\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to\'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to\5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +?set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'?; +set spanner.max_partitioned_parallelism to 5?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to?'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to?5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +-/set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'-/; +set spanner.max_partitioned_parallelism to 5-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-/'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to-/5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +/#set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/#; +set spanner.max_partitioned_parallelism to 5/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/#'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to/#5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'; +/-set spanner.max_partitioned_parallelism to 5; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'FAIL_AFTER_ROLLBACK'/-; +set spanner.max_partitioned_parallelism to 5/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/-'FAIL_AFTER_ROLLBACK'; +set spanner.max_partitioned_parallelism to/-5; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED'; +set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; -SET SPANNER.SAVEPOINT_SUPPORT TO 'DISABLED'; +SET SPANNER.MAX_PARTITIONED_PARALLELISM TO 20; NEW_CONNECTION; -set spanner.savepoint_support to 'disabled'; +set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; - set spanner.savepoint_support to 'DISABLED'; + set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; - set spanner.savepoint_support to 'DISABLED'; + set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED'; +set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED' ; +set spanner.max_partitioned_parallelism to 20 ; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED' ; +set spanner.max_partitioned_parallelism to 20 ; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED' +set spanner.max_partitioned_parallelism to 20 ; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED'; +set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; -set spanner.savepoint_support to 'DISABLED'; +set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; set -spanner.savepoint_support +spanner.max_partitioned_parallelism to -'DISABLED'; +20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set spanner.savepoint_support to 'DISABLED'; +foo set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED' bar; +set spanner.max_partitioned_parallelism to 20 bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set spanner.savepoint_support to 'DISABLED'; +%set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'%; +set spanner.max_partitioned_parallelism to 20%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to%'DISABLED'; +set spanner.max_partitioned_parallelism to%20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set spanner.savepoint_support to 'DISABLED'; +_set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'_; +set spanner.max_partitioned_parallelism to 20_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to_'DISABLED'; +set spanner.max_partitioned_parallelism to_20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set spanner.savepoint_support to 'DISABLED'; +&set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'&; +set spanner.max_partitioned_parallelism to 20&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to&'DISABLED'; +set spanner.max_partitioned_parallelism to&20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set spanner.savepoint_support to 'DISABLED'; +$set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'$; +set spanner.max_partitioned_parallelism to 20$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to$'DISABLED'; +set spanner.max_partitioned_parallelism to$20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set spanner.savepoint_support to 'DISABLED'; +@set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'@; +set spanner.max_partitioned_parallelism to 20@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to@'DISABLED'; +set spanner.max_partitioned_parallelism to@20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set spanner.savepoint_support to 'DISABLED'; +!set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'!; +set spanner.max_partitioned_parallelism to 20!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to!'DISABLED'; +set spanner.max_partitioned_parallelism to!20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set spanner.savepoint_support to 'DISABLED'; +*set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'*; +set spanner.max_partitioned_parallelism to 20*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to*'DISABLED'; +set spanner.max_partitioned_parallelism to*20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set spanner.savepoint_support to 'DISABLED'; +(set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'(; +set spanner.max_partitioned_parallelism to 20(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to('DISABLED'; +set spanner.max_partitioned_parallelism to(20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set spanner.savepoint_support to 'DISABLED'; +)set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'); +set spanner.max_partitioned_parallelism to 20); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to)'DISABLED'; +set spanner.max_partitioned_parallelism to)20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set spanner.savepoint_support to 'DISABLED'; +-set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'-; +set spanner.max_partitioned_parallelism to 20-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-'DISABLED'; +set spanner.max_partitioned_parallelism to-20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set spanner.savepoint_support to 'DISABLED'; ++set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'+; +set spanner.max_partitioned_parallelism to 20+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to+'DISABLED'; +set spanner.max_partitioned_parallelism to+20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set spanner.savepoint_support to 'DISABLED'; +-#set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'-#; +set spanner.max_partitioned_parallelism to 20-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-#'DISABLED'; +set spanner.max_partitioned_parallelism to-#20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set spanner.savepoint_support to 'DISABLED'; +/set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'/; +set spanner.max_partitioned_parallelism to 20/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/'DISABLED'; +set spanner.max_partitioned_parallelism to/20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set spanner.savepoint_support to 'DISABLED'; +\set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'\; +set spanner.max_partitioned_parallelism to 20\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to\'DISABLED'; +set spanner.max_partitioned_parallelism to\20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set spanner.savepoint_support to 'DISABLED'; +?set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'?; +set spanner.max_partitioned_parallelism to 20?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to?'DISABLED'; +set spanner.max_partitioned_parallelism to?20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set spanner.savepoint_support to 'DISABLED'; +-/set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'-/; +set spanner.max_partitioned_parallelism to 20-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to-/'DISABLED'; +set spanner.max_partitioned_parallelism to-/20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set spanner.savepoint_support to 'DISABLED'; +/#set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'/#; +set spanner.max_partitioned_parallelism to 20/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/#'DISABLED'; +set spanner.max_partitioned_parallelism to/#20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set spanner.savepoint_support to 'DISABLED'; +/-set spanner.max_partitioned_parallelism to 20; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to 'DISABLED'/-; +set spanner.max_partitioned_parallelism to 20/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set spanner.savepoint_support to/-'DISABLED'; +set spanner.max_partitioned_parallelism to/-20; diff --git a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql index 09e88db7ae7..e59f0d8c52d 100644 --- a/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql +++ b/google-cloud-spanner/src/test/resources/com/google/cloud/spanner/connection/postgresql/ConnectionImplGeneratedSqlScriptTest.sql @@ -1,23 +1,23 @@ NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -26,125 +26,123 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -153,60 +151,58 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.019000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.019000000Z' +SET AUTOCOMMIT=FALSE; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:34.525000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:34.525000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.019000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.019000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:34.525000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -221,34 +217,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -257,8 +253,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -301,46 +297,45 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +COMMIT; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -351,36 +346,28 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -389,173 +376,123 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -564,78 +501,58 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.308000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.308000000Z' +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:35.024000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:35.024000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.308000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.308000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:35.024000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -650,48 +567,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -700,10 +603,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -746,62 +647,45 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -812,207 +696,324 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -COMMIT; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +ROLLBACK; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.540000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.540000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:35.564000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:35.564000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.540000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:35.564000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1027,34 +1028,55 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -NEW_CONNECTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1063,8 +1085,11 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1107,71 +1132,116 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -1180,125 +1250,195 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -1307,60 +1447,85 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:19.792000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:19.792000000Z' +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:36.103000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:36.103000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:19.792000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:19.792000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:36.103000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1375,34 +1540,55 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1411,8 +1597,11 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1455,46 +1644,69 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1505,217 +1717,208 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.042000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.042000000Z' +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:36.513000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:36.513000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.042000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:20.042000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:36.513000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -1730,34 +1933,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -1766,8 +1969,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1810,230 +2013,282 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.251000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.251000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:36.935000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.251000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:20.251000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:36.935000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null -SHOW VARIABLE SPANNER.COMMIT_RESPONSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2048,27 +2303,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2077,7 +2346,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2120,254 +2391,254 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.438000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.438000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:37.377000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.438000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:37.377000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2383,33 +2654,33 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2419,7 +2690,7 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2463,76 +2734,66 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; -BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2542,122 +2803,98 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -2667,57 +2904,48 @@ SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.632000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.632000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:37.759000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:37.759000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.632000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:37.759000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -2733,33 +2961,26 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -2769,7 +2990,6 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2813,44 +3033,36 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -2862,39 +3074,26 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2902,196 +3101,134 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -ROLLBACK; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -3099,86 +3236,59 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:20.826000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:20.826000000Z' +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.234000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:38.234000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:20.826000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.234000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -3192,56 +3302,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -3249,12 +3338,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3296,117 +3382,84 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3414,196 +3467,182 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -3611,86 +3650,77 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.025000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.025000000Z' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.635000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:38.635000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.025000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.635000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -3704,56 +3734,49 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +NEW_CONNECTION; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -3761,12 +3784,11 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3808,282 +3830,305 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; BEGIN TRANSACTION; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +NEW_CONNECTION; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.172000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.172000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:38.970000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.172000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:38.970000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4097,35 +4142,42 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -4133,9 +4185,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4177,283 +4230,255 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +START BATCH DDL; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.311000000Z'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:39.276000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.311000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:39.277000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4467,42 +4492,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -4510,10 +4528,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4555,255 +4572,378 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.448000000Z'; +COMMIT; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:39.677000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:39.677000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.448000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:39.677000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -4817,35 +4957,56 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -4853,9 +5014,12 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4897,220 +5061,279 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +COMMIT; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +BEGIN TRANSACTION; SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; -SET AUTOCOMMIT=FALSE; SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.553000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.553000000Z' +SET TRANSACTION READ ONLY; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:40.048000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:40.048000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.553000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:40.048000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -5124,28 +5347,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5153,8 +5383,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5196,243 +5427,267 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=TRUE; +SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.633000000Z'; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:40.370000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:40.370000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.633000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:40.370000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -5447,34 +5702,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5483,8 +5738,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5527,284 +5782,381 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -START BATCH DDL; +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; +SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; +SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.711000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.711000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:40.770000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:40.770000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.711000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:40.770000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -5819,41 +6171,55 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -5862,9 +6228,11 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5907,87 +6275,113 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -5997,150 +6391,166 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6152,9 +6562,10 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6166,17 +6577,18 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE @@ -6186,77 +6598,84 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:21.954000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:21.954000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:41.317000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:41.317000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:21.954000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:21.954000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:41.317000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -6272,47 +6691,54 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6322,9 +6748,10 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6368,61 +6795,67 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -6433,137 +6866,138 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -6575,68 +7009,68 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READONLY=FALSE; +SET SPANNER.READONLY=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.094000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.094000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:41.658000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:41.658000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.094000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:41.658000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -6652,33 +7086,33 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -6688,7 +7122,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -6732,193 +7166,206 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT UPDATE_COUNT 1 -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -6929,76 +7376,76 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.229000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.229000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.031000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.229000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.229000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.031000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -7013,34 +7460,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -7049,8 +7503,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7093,200 +7548,190 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7297,76 +7742,65 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.356000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.356000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.424000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.356000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.356000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.424000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -7381,34 +7815,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -7417,8 +7851,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7461,81 +7895,67 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -BEGIN TRANSACTION; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -7544,130 +7964,83 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7678,9 +8051,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7691,16 +8062,11 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -7709,69 +8075,49 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.483000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.483000000Z' +SET AUTOCOMMIT=FALSE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:42.775000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:42.775000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.483000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.483000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:42.775000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -7786,41 +8132,27 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -7829,9 +8161,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7874,54 +8204,36 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -7931,232 +8243,201 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' +START BATCH DDL; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.600000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.600000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:43.084000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.600000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.600000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:43.084000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -8172,33 +8453,33 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -8208,7 +8489,7 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8252,242 +8533,283 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; -SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT UPDATE_COUNT 1 +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; -@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' -SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.688000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.688000000Z' +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:43.420000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:43.420000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.688000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-06-02T14:28:22.688000000Z' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:43.420000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' -SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -8503,26 +8825,40 @@ SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -8532,6 +8868,8 @@ SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8575,66 +8913,86 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE @@ -8644,103 +9002,150 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -8752,7 +9157,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -8764,12 +9171,17 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE @@ -8779,57 +9191,77 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.778000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.778000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:43.880000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:43.880000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.778000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:43.880000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:43.880000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -8845,33 +9277,47 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -8881,7 +9327,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -8925,43 +9373,61 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @@ -8972,198 +9438,138 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -9174,95 +9580,69 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READONLY=FALSE; -@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE -SHOW VARIABLE SPANNER.READONLY; -SET SPANNER.READONLY=TRUE; -@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE -SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.886000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:22.886000000Z' +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:44.216000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:44.216000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.886000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:44.216000000Z'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -9277,48 +9657,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -9327,10 +9693,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9373,303 +9737,272 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:22.997000000Z'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:44.617000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:44.617000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:22.997000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:44.617000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:44.617000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -9685,40 +10018,33 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -9728,8 +10054,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -9773,254 +10098,280 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.088000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:45.077000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:45.077000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.088000000Z'; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:45.077000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:45.077000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -10035,34 +10386,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -10071,8 +10422,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10115,83 +10466,81 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -10200,167 +10549,130 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10371,11 +10683,9 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -10386,19 +10696,16 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -10407,85 +10714,69 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.196000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.196000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:45.593000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:45.593000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.196000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:45.593000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:45.593000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -10500,55 +10791,41 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -10557,11 +10834,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10604,68 +10879,54 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -10675,207 +10936,232 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +START BATCH DML; +@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.284000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.284000000Z' +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:46.040000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:46.040000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.284000000Z'; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:46.040000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:46.040000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -10890,34 +11176,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -10926,8 +11212,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10970,71 +11256,73 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11043,104 +11331,88 @@ SET AUTOCOMMIT=TRUE; SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; +SET SPANNER.AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','TRANSACTIONAL' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +@EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE','PARTITIONED_NON_ATOMIC' +SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11151,8 +11423,7 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -11163,13 +11434,12 @@ UPDATE foo SET bar=1; START BATCH DML; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -11178,58 +11448,51 @@ SET SPANNER.READONLY=TRUE; SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.370000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.370000000Z' +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:46.465000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:46.465000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.370000000Z'; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:46.465000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:46.465000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -11244,34 +11507,27 @@ SET SPANNER.OPTIMIZER_VERSION=''; SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -11280,8 +11536,7 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11324,44 +11579,38 @@ SET STATEMENT_TIMEOUT='0ns'; SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -11371,40 +11620,27 @@ CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); BEGIN TRANSACTION; NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -11412,206 +11648,126 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT UPDATE_COUNT 1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -11619,86 +11775,61 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.515000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.515000000Z' +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:46.867000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:46.867000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.515000000Z'; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:46.867000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:46.867000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; -NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; -SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; +NEW_CONNECTION; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -11712,56 +11843,35 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -11769,12 +11879,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11816,113 +11923,85 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -ROLLBACK; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET AUTOCOMMIT=FALSE; @@ -11932,204 +12011,172 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READONLY=FALSE; @@ -12139,84 +12186,77 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.687000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.687000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:47.321000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:47.321000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.687000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:47.321000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:47.321000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_VERSION='1'; @@ -12232,54 +12272,47 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP' +@EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @@ -12289,10 +12322,9 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; SET STATEMENT_TIMEOUT='1s'; @@ -12336,283 +12368,273 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET AUTOCOMMIT=TRUE; -NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; SET AUTOCOMMIT=FALSE; +NEW_CONNECTION; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READONLY=TRUE; -NEW_CONNECTION; SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +NEW_CONNECTION; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.800000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:23.800000000Z' +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:47.748000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:47.748000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.800000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:47.748000000Z'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -12627,34 +12649,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -12663,8 +12685,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -12707,286 +12729,260 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:23.909000000Z'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:48.176000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:48.176000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:23.909000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:48.176000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:48.176000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -13001,41 +12997,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13044,9 +13033,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13089,259 +13077,267 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE +SHOW VARIABLE AUTOCOMMIT; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE +SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null +@EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP' SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; -@EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=FALSE; +@EXPECT RESULT_SET 'SPANNER.READONLY',FALSE +SHOW VARIABLE SPANNER.READONLY; SET SPANNER.READONLY=TRUE; +@EXPECT RESULT_SET 'SPANNER.READONLY',TRUE +SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='STRONG'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:24.028000000Z'; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:48.611000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:48.611000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:24.028000000Z'; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:48.611000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:48.611000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' @@ -13356,34 +13352,34 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' @@ -13392,8 +13388,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' @@ -13436,68 +13432,75 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -13505,110 +13508,102 @@ SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'AUTOCOMMIT',TRUE SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT UPDATE_COUNT 1 +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.AUTOCOMMIT_DML_MODE' SHOW VARIABLE SPANNER.AUTOCOMMIT_DML_MODE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.READ_TIMESTAMP',null SHOW VARIABLE SPANNER.READ_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -UPDATE foo SET bar=1; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -UPDATE foo SET bar=1; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.READONLY=FALSE; @EXPECT RESULT_SET 'SPANNER.READONLY',FALSE SHOW VARIABLE SPANNER.READONLY; @@ -13616,50 +13611,52 @@ SET SPANNER.READONLY=TRUE; @EXPECT RESULT_SET 'SPANNER.READONLY',TRUE SHOW VARIABLE SPANNER.READONLY; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='STRONG'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','STRONG' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-06-02T14:28:24.119000000Z'; -@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-06-02T14:28:24.119000000Z' +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='READ_TIMESTAMP 2023-08-04T10:58:49.017000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','READ_TIMESTAMP 2023-08-04T10:58:49.017000000Z' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-06-02T14:28:24.119000000Z'; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SET SPANNER.READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2023-08-04T10:58:49.017000000Z'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2023-08-04T10:58:49.017000000Z' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 1s'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 1s' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='MAX_STALENESS 100ms'; +@EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','MAX_STALENESS 100ms' +SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.READ_ONLY_STALENESS='EXACT_STALENESS 100us'; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS','EXACT_STALENESS 100us' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_RESPONSE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','1' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; @@ -13673,28 +13670,28 @@ SET SPANNER.OPTIMIZER_VERSION=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_VERSION','' SHOW VARIABLE SPANNER.OPTIMIZER_VERSION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.COMMIT_TIMESTAMP',null SHOW VARIABLE SPANNER.COMMIT_TIMESTAMP; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE='custom-package'; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','custom-package' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; @@ -13702,8 +13699,8 @@ SET SPANNER.OPTIMIZER_STATISTICS_PACKAGE=''; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE','' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -13745,44 +13742,47 @@ SET STATEMENT_TIMEOUT='0ns'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','0' SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.READ_ONLY_STALENESS' SHOW VARIABLE SPANNER.READ_ONLY_STALENESS; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT RESULT_SET 'SPANNER.OPTIMIZER_STATISTICS_PACKAGE' SHOW VARIABLE SPANNER.OPTIMIZER_STATISTICS_PACKAGE; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION SET SPANNER.TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; -SET SPANNER.READONLY=FALSE; -SET AUTOCOMMIT=FALSE; +SET SPANNER.READONLY=TRUE; +SET AUTOCOMMIT=TRUE; From 1658a51e114a8d4753d54eb018cb04216922a108 Mon Sep 17 00:00:00 2001 From: Burke Davison <40617934+burkedavison@users.noreply.github.com> Date: Fri, 4 Aug 2023 19:41:34 +0000 Subject: [PATCH 18/18] Batch read connection api native adjustments (#2569) * chore: add ClientSideStatementPartitionExecutor to SpannerFeature * chore: wrap AbstractStatementParser static initialization in try/catch * chore: add ClientSideStatementRunPartitionExecutor to SpannerFeature * chore: add ClientSideStatementRunPartitionedQueryExecutor to SpannerFeature * chore: lint formatting --- .../connection/AbstractStatementParser.java | 32 ++++++++++++------- .../spanner/nativeimage/SpannerFeature.java | 17 ++++++++++ 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java index 0d9c431e171..11549fbfc59 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractStatementParser.java @@ -34,6 +34,8 @@ import java.util.Objects; import java.util.Set; import java.util.concurrent.Callable; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Internal class for the Spanner Connection API. @@ -91,8 +93,7 @@ public static AbstractStatementParser getInstance(Dialect dialect) { */ /** Begins a transaction. */ - static final ParsedStatement BEGIN_STATEMENT = - AbstractStatementParser.getInstance(Dialect.GOOGLE_STANDARD_SQL).parse(Statement.of("BEGIN")); + static final ParsedStatement BEGIN_STATEMENT; /** * Create a COMMIT statement to use with the {@link #commit()} method to allow it to be cancelled, @@ -104,14 +105,10 @@ public static AbstractStatementParser getInstance(Dialect dialect) { * #commit()} method is called directly, we do not have a {@link ParsedStatement}, and the method * uses this statement instead in order to use the same logic as the other statements. */ - static final ParsedStatement COMMIT_STATEMENT = - AbstractStatementParser.getInstance(Dialect.GOOGLE_STANDARD_SQL) - .parse(Statement.of("COMMIT")); + static final ParsedStatement COMMIT_STATEMENT; /** The {@link Statement} and {@link Callable} for rollbacks */ - static final ParsedStatement ROLLBACK_STATEMENT = - AbstractStatementParser.getInstance(Dialect.GOOGLE_STANDARD_SQL) - .parse(Statement.of("ROLLBACK")); + static final ParsedStatement ROLLBACK_STATEMENT; /** * Create a RUN BATCH statement to use with the {@link #executeBatchUpdate(Iterable)} method to @@ -124,9 +121,22 @@ public static AbstractStatementParser getInstance(Dialect dialect) { * and the method uses this statement instead in order to use the same logic as the other * statements. */ - static final ParsedStatement RUN_BATCH_STATEMENT = - AbstractStatementParser.getInstance(Dialect.GOOGLE_STANDARD_SQL) - .parse(Statement.of("RUN BATCH")); + static final ParsedStatement RUN_BATCH_STATEMENT; + + static { + try { + BEGIN_STATEMENT = getInstance(Dialect.GOOGLE_STANDARD_SQL).parse(Statement.of("BEGIN")); + COMMIT_STATEMENT = getInstance(Dialect.GOOGLE_STANDARD_SQL).parse(Statement.of("COMMIT")); + ROLLBACK_STATEMENT = getInstance(Dialect.GOOGLE_STANDARD_SQL).parse(Statement.of("ROLLBACK")); + RUN_BATCH_STATEMENT = + getInstance(Dialect.GOOGLE_STANDARD_SQL).parse(Statement.of("RUN BATCH")); + + } catch (Throwable ex) { + Logger logger = Logger.getLogger(AbstractStatementParser.class.getName()); + logger.log(Level.SEVERE, "Static initialization failure.", ex); + throw ex; + } + } /** The type of statement that has been recognized by the parser. */ @InternalApi diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/nativeimage/SpannerFeature.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/nativeimage/SpannerFeature.java index 666b75bb245..3a1e042b3d0 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/nativeimage/SpannerFeature.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/nativeimage/SpannerFeature.java @@ -43,6 +43,12 @@ final class SpannerFeature implements Feature { "com.google.cloud.spanner.connection.ClientSideStatementPgBeginExecutor"; private static final String CLIENT_SIDE_STATEMENT_EXPLAIN_EXECUTOR = "com.google.cloud.spanner.connection.ClientSideStatementExplainExecutor"; + private static final String CLIENT_SIDE_STATEMENT_PARTITION_EXECUTOR = + "com.google.cloud.spanner.connection.ClientSideStatementPartitionExecutor"; + private static final String CLIENT_SIDE_STATEMENT_RUN_PARTITION_EXECUTOR = + "com.google.cloud.spanner.connection.ClientSideStatementRunPartitionExecutor"; + private static final String CLIENT_SIDE_STATEMENT_RUN_PARTITIONED_QUERY_EXECUTOR = + "com.google.cloud.spanner.connection.ClientSideStatementRunPartitionedQueryExecutor"; private static final String ABSTRACT_STATEMENT_PARSER = "com.google.cloud.spanner.connection.AbstractStatementParser"; private static final String STATEMENT_PARSER = @@ -70,6 +76,17 @@ public void beforeAnalysis(BeforeAnalysisAccess access) { if (access.findClassByName(CLIENT_SIDE_STATEMENT_SET_EXECUTOR) != null) { NativeImageUtils.registerClassForReflection(access, CLIENT_SIDE_STATEMENT_SET_EXECUTOR); } + if (access.findClassByName(CLIENT_SIDE_STATEMENT_PARTITION_EXECUTOR) != null) { + NativeImageUtils.registerClassForReflection(access, CLIENT_SIDE_STATEMENT_PARTITION_EXECUTOR); + } + if (access.findClassByName(CLIENT_SIDE_STATEMENT_RUN_PARTITION_EXECUTOR) != null) { + NativeImageUtils.registerClassForReflection( + access, CLIENT_SIDE_STATEMENT_RUN_PARTITION_EXECUTOR); + } + if (access.findClassByName(CLIENT_SIDE_STATEMENT_RUN_PARTITIONED_QUERY_EXECUTOR) != null) { + NativeImageUtils.registerClassForReflection( + access, CLIENT_SIDE_STATEMENT_RUN_PARTITIONED_QUERY_EXECUTOR); + } if (access.findClassByName(CLIENT_SIDE_VALUE_CONVERTER) != null) { NativeImageUtils.registerClassHierarchyForReflection(access, CLIENT_SIDE_VALUE_CONVERTER); }